lxml changelog
==============
+3.2.0 (2013-04-28)
+==================
+
+Features added
+--------------
+
+Bugs fixed
+----------
+
+* LP#690319: Leading whitespace could change the behaviour of the string
+ parsing functions in ``lxml.html``.
+
+* LP#599318: The string parsing functions in ``lxml.html`` are more robust
+ in the face of uncommon HTML content like framesets or missing body tags.
+ Patch by Stefan Seelmann.
+
+* LP#712941: I/O errors while trying to access files with paths that contain
+ non-ASCII characters could raise ``UnicodeDecodeError`` instead of properly
+ reporting the ``IOError``.
+
+* LP#673205: Parsing from in-memory strings disabled network access in the
+ default parser and made subsequent attempts to parse from a URL fail.
+
+* LP#971754: lxml.html.clean appends 'nofollow' to 'rel' attributes instead
+ of overwriting the current value.
+
+* LP#715687: lxml.html.clean no longer discards scripts that are explicitly
+ allowed by the user provided whitelist. Patch by Christine Koppelt.
+
+Other changes
+-------------
+
+
3.1.2 (2013-04-12)
==================
Metadata-Version: 1.1
Name: lxml
-Version: 3.1.2
+Version: 3.2.0
Summary: Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API.
Home-page: http://lxml.de/
Author: lxml dev team
Author-email: lxml-dev@lxml.de
License: UNKNOWN
-Download-URL: http://pypi.python.org/packages/source/l/lxml/lxml-3.1.2.tar.gz
+Download-URL: http://pypi.python.org/packages/source/l/lxml/lxml-3.2.0.tar.gz
Description: lxml is a Pythonic, mature binding for the libxml2 and libxslt libraries. It
provides safe and convenient access to these libraries using the ElementTree
API.
After an official release of a new stable series, bug fixes may become
available at
- https://github.com/lxml/lxml/tree/lxml-3.1 .
- Running ``easy_install lxml==3.1bugfix`` will install
+ https://github.com/lxml/lxml/tree/lxml-3.2 .
+ Running ``easy_install lxml==3.2bugfix`` will install
the unreleased branch state from
- https://github.com/lxml/lxml/tarball/lxml-3.1#egg=lxml-3.1bugfix
+ https://github.com/lxml/lxml/tarball/lxml-3.2#egg=lxml-3.2bugfix
as soon as a maintenance branch has been established. Note that this
requires Cython to be installed at an appropriate version for the build.
- 3.1.2 (2013-04-12)
+ 3.2.0 (2013-04-28)
==================
Features added
Bugs fixed
----------
- * LP#1136509: Passing attributes through the namespace-unaware API of
- the sax bridge (i.e. the ``handler.startElement()`` method) failed
- with a ``TypeError``. Patch by Mike Bayer.
+ * LP#690319: Leading whitespace could change the behaviour of the string
+ parsing functions in ``lxml.html``.
- * LP#1123074: Fix serialisation error in XSLT output when converting
- the result tree to a Unicode string.
+ * LP#599318: The string parsing functions in ``lxml.html`` are more robust
+ in the face of uncommon HTML content like framesets or missing body tags.
+ Patch by Stefan Seelmann.
- * GH#105: Replace illegal usage of ``xmlBufLength()`` in libxml2 2.9.0
- by properly exported API function ``xmlBufUse()``.
+ * LP#712941: I/O errors while trying to access files with paths that contain
+ non-ASCII characters could raise ``UnicodeDecodeError`` instead of properly
+ reporting the ``IOError``.
+
+ * LP#673205: Parsing from in-memory strings disabled network access in the
+ default parser and made subsequent attempts to parse from a URL fail.
+
+ * LP#971754: lxml.html.clean appends 'nofollow' to 'rel' attributes instead
+ of overwriting the current value.
+
+ * LP#715687: lxml.html.clean no longer discards scripts that are explicitly
+ allowed by the user provided whitelist. Patch by Christine Koppelt.
Other changes
-------------
Support the project
-------------------
-lxml has been downloaded from the Python Package Index
-more than five million times and is also available directly
-in many package distributions e.g. for Linux or MacOS-X.
+lxml has been downloaded from the `Python Package Index`_ more than
+two million times and is also available directly in many package
+distributions, e.g. for Linux or MacOS-X.
-Most people who use lxml do so because they like using it.
-If you want to show us that you like it, please blog about
-your experience with it, link to the project website,
-or send us a flattr.
-
-.. class:: center
+.. _`Python Package Index`: https://pypi.python.org/pypi/lxml
- |FlattrLink|_
-
-.. _FlattrLink: https://flattr.com/thing/268156/lxml-The-Python-XML-Toolkit
+Most people who use lxml do so because they like using it.
+You can show us that you like it by blogging about your experience
+with it and linking to the project website.
-However, if you are using lxml for your work and feel like giving a bit
-of your own benefit back to support the project, consider sending us
+If you are using lxml for your work and feel like giving a bit of
+your own benefit back to support the project, consider sending us
money through PayPal that we can use for fixing bugs in the software
and improving its features and documentation. Please read the Legal
Notice below, at the bottom of this page. Thank you for your support.
.. _Donate: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=R56JE3VCPDA9N
-Note that Flattr keeps 10% of the money for itself, so do not send
-any larger amounts through Flattr. Use PayPal for donations instead,
-or `contact Stefan Behnel`_ for other ways to support the lxml project,
-as well as commercial consulting, customisations and trainings on lxml
-and fast Python XML processing.
+Alternatively, if you prefer expressing your appreciation in a monthy
+dose of pennies rather than a dedicated donation, you can also use
+Flattr to do so.
+
+.. class:: center
+
+ |FlattrLink|_
+
+.. _FlattrLink: https://flattr.com/thing/268156/lxml-The-Python-XML-Toolkit
+Note that Flattr keeps 10% of the transactions for itself, which is money
+you pay that will not reach us. Do not send any larger amounts through
+Flattr. Use PayPal for donations instead, or `contact Stefan Behnel`_ for
+other ways to support the lxml project, as well as commercial consulting,
+customisations and trainings on lxml and fast Python XML processing.
.. |Donate| image:: https://github.com/lxml/lxml/raw/master/doc/html/paypal_btn_donateCC_LG.gif
:width: 160
</head>
<body>
<div class="document" id="lxml-faq-frequently-asked-questions">
-<div class="sidemenu"><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#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-sources">Building lxml from 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#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">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#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#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">Building an egg</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 3 1 2-menu"><li class="menu title"><a href="changes-3.1.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="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">lxml FAQ - Frequently Asked Questions</h1>
+<div class="sidemenu"><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#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-sources">Building lxml from 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#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">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#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#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">Building an egg</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 3 2 0-menu"><li class="menu title"><a href="changes-3.2.0.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="http://lxml.de/sitemap.html">Sitemap</a></li></ul></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: 2013-04-12.
+Generated on: 2013-04-28.
</div>
</body>
</head>
<body>
<div class="document" id="apis-specific-to-lxml-etree">
-<div class="sidemenu"><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#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-sources">Building lxml from 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#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">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#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#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">Building an egg</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 3 1 2-menu"><li class="menu title"><a href="changes-3.1.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="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">APIs specific to lxml.etree</h1>
+<div class="sidemenu"><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#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-sources">Building lxml from 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#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">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#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#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">Building an egg</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 3 2 0-menu"><li class="menu title"><a href="changes-3.2.0.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="http://lxml.de/sitemap.html">Sitemap</a></li></ul></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: 2013-04-12.
+Generated on: 2013-04-28.
</div>
</body>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
lxml.etree.fromstring lxml.etree-module.html#fromstring
lxml.html lxml.html-module.html
lxml.html._css_import_re lxml.html-module.html#_css_import_re
+lxml.html._looks_like_full_html_unicode lxml.html-module.html#_looks_like_full_html_unicode
lxml.html._css_url_re lxml.html-module.html#_css_url_re
lxml.html.parse lxml.html-module.html#parse
lxml.html._nons lxml.html-module.html#_nons
lxml.html.XHTML_NAMESPACE lxml.html-module.html#XHTML_NAMESPACE
lxml.html._id_xpath lxml.html-module.html#_id_xpath
lxml.html.make_links_absolute lxml.html-module.html#make_links_absolute
-lxml.html.resolve_base_href lxml.html-module.html#resolve_base_href
+lxml.html._looks_like_full_html_bytes lxml.html-module.html#_looks_like_full_html_bytes
lxml.html.__bytes_replace_meta_content_type lxml.html-module.html#__bytes_replace_meta_content_type
lxml.html.rewrite_links lxml.html-module.html#rewrite_links
lxml.html.fragment_fromstring lxml.html-module.html#fragment_fromstring
lxml.html.open_in_browser lxml.html-module.html#open_in_browser
lxml.html.fromstring lxml.html-module.html#fromstring
lxml.html._label_xpath lxml.html-module.html#_label_xpath
+lxml.html.resolve_base_href lxml.html-module.html#resolve_base_href
lxml.html._transform_result lxml.html-module.html#_transform_result
lxml.html.open_http_urllib lxml.html-module.html#open_http_urllib
lxml.html.xhtml_to_html lxml.html-module.html#xhtml_to_html
lxml.tests.common_imports.CET_VERSION lxml.tests.common_imports-module.html#CET_VERSION
lxml.tests.common_imports._fix_traceback lxml.tests.common_imports-module.html#_fix_traceback
lxml.tests.common_imports.readFileInTestDir lxml.tests.common_imports-module.html#readFileInTestDir
+lxml.tests.dummy_http_server lxml.tests.dummy_http_server-module.html
+lxml.tests.dummy_http_server.build_web_server lxml.tests.dummy_http_server-module.html#build_web_server
+lxml.tests.dummy_http_server.webserver lxml.tests.dummy_http_server-module.html#webserver
+lxml.tests.dummy_http_server.__package__ lxml.tests.dummy_http_server-module.html#__package__
lxml.tests.test_builder lxml.tests.test_builder-module.html
lxml.tests.test_builder.__package__ lxml.tests.test_builder-module.html#__package__
lxml.tests.test_builder._bytes lxml.tests.common_imports-module.html#_bytes
lxml.tests.test_htmlparser._bytes lxml.tests.common_imports-module.html#_bytes
lxml.tests.test_htmlparser.test_suite lxml.tests.test_htmlparser-module.html#test_suite
lxml.tests.test_htmlparser.this_dir lxml.tests.test_htmlparser-module.html#this_dir
+lxml.tests.test_http_io lxml.tests.test_http_io-module.html
+lxml.tests.test_http_io.webserver lxml.tests.dummy_http_server-module.html#webserver
+lxml.tests.test_http_io._bytes lxml.tests.common_imports-module.html#_bytes
+lxml.tests.test_http_io.__package__ lxml.tests.test_http_io-module.html#__package__
+lxml.tests.test_http_io.this_dir lxml.tests.test_http_io-module.html#this_dir
+lxml.tests.test_http_io.test_suite lxml.tests.test_http_io-module.html#test_suite
lxml.tests.test_incremental_xmlfile lxml.tests.test_incremental_xmlfile-module.html
lxml.tests.test_incremental_xmlfile.test_suite lxml.tests.test_incremental_xmlfile-module.html#test_suite
lxml.tests.test_incremental_xmlfile.this_dir lxml.tests.test_incremental_xmlfile-module.html#this_dir
lxml.tests.common_imports.SillyFileLike lxml.tests.common_imports.SillyFileLike-class.html
lxml.tests.common_imports.SillyFileLike.read lxml.tests.common_imports.SillyFileLike-class.html#read
lxml.tests.common_imports.SillyFileLike.__init__ lxml.tests.common_imports.SillyFileLike-class.html#__init__
+lxml.tests.dummy_http_server.HTTPRequestCollector lxml.tests.dummy_http_server.HTTPRequestCollector-class.html
+lxml.tests.dummy_http_server.HTTPRequestCollector.__call__ lxml.tests.dummy_http_server.HTTPRequestCollector-class.html#__call__
+lxml.tests.dummy_http_server.HTTPRequestCollector.__init__ lxml.tests.dummy_http_server.HTTPRequestCollector-class.html#__init__
+lxml.tests.dummy_http_server.WebServer lxml.tests.dummy_http_server.WebServer-class.html
+lxml.tests.dummy_http_server._RequestHandler lxml.tests.dummy_http_server._RequestHandler-class.html
+lxml.tests.dummy_http_server._RequestHandler.log_message lxml.tests.dummy_http_server._RequestHandler-class.html#log_message
+BaseHTTPServer.BaseHTTPRequestHandler.MessageClass mimetools.Message-class.html
+lxml.tests.dummy_http_server._RequestHandler.get_stderr lxml.tests.dummy_http_server._RequestHandler-class.html#get_stderr
lxml.tests.test_builder.BuilderTestCase lxml.tests.test_builder.BuilderTestCase-class.html
lxml.tests.test_builder.BuilderTestCase.etree lxml.etree-module.html
lxml.tests.common_imports.HelperTestCase.tearDown lxml.tests.common_imports.HelperTestCase-class.html#tearDown
lxml.tests.test_htmlparser.HtmlParserTestCase.test_html_iterparse_file lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_iterparse_file
lxml.tests.common_imports.HelperTestCase.assertFalse lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
lxml.tests.test_htmlparser.HtmlParserTestCase.test_html_element_name_space lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_element_name_space
+lxml.tests.test_http_io.HttpIOTestCase lxml.tests.test_http_io.HttpIOTestCase-class.html
+lxml.tests.test_http_io.HttpIOTestCase.etree lxml.etree-module.html
+lxml.tests.common_imports.HelperTestCase.tearDown lxml.tests.common_imports.HelperTestCase-class.html#tearDown
+lxml.tests.test_http_io.HttpIOTestCase._parse_from_http lxml.tests.test_http_io.HttpIOTestCase-class.html#_parse_from_http
+lxml.tests.test_http_io.HttpIOTestCase.test_http_client lxml.tests.test_http_io.HttpIOTestCase-class.html#test_http_client
+lxml.tests.test_http_io.HttpIOTestCase.test_network_dtd lxml.tests.test_http_io.HttpIOTestCase-class.html#test_network_dtd
+lxml.tests.common_imports.HelperTestCase._rootstring lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
+lxml.tests.test_http_io.HttpIOTestCase.test_http_client_404 lxml.tests.test_http_io.HttpIOTestCase-class.html#test_http_client_404
+lxml.tests.common_imports.HelperTestCase.parse lxml.tests.common_imports.HelperTestCase-class.html#parse
+lxml.tests.test_http_io.HttpIOTestCase.test_http_client_gzip lxml.tests.test_http_io.HttpIOTestCase-class.html#test_http_client_gzip
+unittest.case.TestCase.failureException exceptions.AssertionError-class.html
+lxml.tests.common_imports.HelperTestCase.assertFalse lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
+lxml.tests.test_http_io.HttpIOTestCase.test_parser_input_mix lxml.tests.test_http_io.HttpIOTestCase-class.html#test_parser_input_mix
lxml.tests.test_incremental_xmlfile.BytesIOXmlFileTestCase lxml.tests.test_incremental_xmlfile.BytesIOXmlFileTestCase-class.html
lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase._parse_file lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#_parse_file
lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase._file lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#_file
lxml.tests.test_io._IOTestCaseBase.test_tree_io_latin1 lxml.tests.test_io._IOTestCaseBase-class.html#test_tree_io_latin1
lxml.tests.test_io._IOTestCaseBase.setUp lxml.tests.test_io._IOTestCaseBase-class.html#setUp
lxml.tests.test_io._IOTestCaseBase.test_class_parse_unamed_fileobject lxml.tests.test_io._IOTestCaseBase-class.html#test_class_parse_unamed_fileobject
+lxml.tests.test_io._IOTestCaseBase.test_etree_parse_io_error lxml.tests.test_io._IOTestCaseBase-class.html#test_etree_parse_io_error
lxml.tests.test_io._IOTestCaseBase.test_module_parse_fileobject_error lxml.tests.test_io._IOTestCaseBase-class.html#test_module_parse_fileobject_error
lxml.tests.test_io._IOTestCaseBase.test_module_parse_large_fileobject lxml.tests.test_io._IOTestCaseBase-class.html#test_module_parse_large_fileobject
lxml.tests.common_imports.HelperTestCase._rootstring lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
lxml.tests.test_io._IOTestCaseBase.test_tree_io_latin1 lxml.tests.test_io._IOTestCaseBase-class.html#test_tree_io_latin1
lxml.tests.test_io._IOTestCaseBase.setUp lxml.tests.test_io._IOTestCaseBase-class.html#setUp
lxml.tests.test_io._IOTestCaseBase.test_class_parse_unamed_fileobject lxml.tests.test_io._IOTestCaseBase-class.html#test_class_parse_unamed_fileobject
+lxml.tests.test_io._IOTestCaseBase.test_etree_parse_io_error lxml.tests.test_io._IOTestCaseBase-class.html#test_etree_parse_io_error
lxml.tests.test_io._IOTestCaseBase.test_module_parse_fileobject_error lxml.tests.test_io._IOTestCaseBase-class.html#test_module_parse_fileobject_error
lxml.tests.test_io._IOTestCaseBase.test_module_parse_large_fileobject lxml.tests.test_io._IOTestCaseBase-class.html#test_module_parse_large_fileobject
lxml.tests.common_imports.HelperTestCase._rootstring lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
lxml.tests.test_io._IOTestCaseBase.test_tree_io_latin1 lxml.tests.test_io._IOTestCaseBase-class.html#test_tree_io_latin1
lxml.tests.test_io._IOTestCaseBase.setUp lxml.tests.test_io._IOTestCaseBase-class.html#setUp
lxml.tests.test_io._IOTestCaseBase.test_class_parse_unamed_fileobject lxml.tests.test_io._IOTestCaseBase-class.html#test_class_parse_unamed_fileobject
+lxml.tests.test_io._IOTestCaseBase.test_etree_parse_io_error lxml.tests.test_io._IOTestCaseBase-class.html#test_etree_parse_io_error
lxml.tests.test_io._IOTestCaseBase.test_module_parse_fileobject_error lxml.tests.test_io._IOTestCaseBase-class.html#test_module_parse_fileobject_error
lxml.tests.test_io._IOTestCaseBase.test_module_parse_large_fileobject lxml.tests.test_io._IOTestCaseBase-class.html#test_module_parse_large_fileobject
lxml.tests.common_imports.HelperTestCase._rootstring lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
lxml.tests.common_imports.HelperTestCase.parse lxml.tests.common_imports.HelperTestCase-class.html#parse
unittest.case.TestCase.failureException exceptions.AssertionError-class.html
lxml.tests.common_imports.HelperTestCase.assertFalse lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
+mimetools.Message mimetools.Message-class.html
+mimetools.Message.getmaintype mimetools.Message-class.html#getmaintype
+mimetools.Message.getsubtype mimetools.Message-class.html#getsubtype
+mimetools.Message.parseplist mimetools.Message-class.html#parseplist
+mimetools.Message.__init__ mimetools.Message-class.html#__init__
+mimetools.Message.getparamnames mimetools.Message-class.html#getparamnames
+mimetools.Message.getencoding mimetools.Message-class.html#getencoding
+mimetools.Message.getparam mimetools.Message-class.html#getparam
+mimetools.Message.parsetype mimetools.Message-class.html#parsetype
+mimetools.Message.getplist mimetools.Message-class.html#getplist
+mimetools.Message.gettype mimetools.Message-class.html#gettype
str str-class.html
str.upper str-class.html#upper
str.__getslice__ str-class.html#__getslice__
</li>
<li> <strong class="uidlink"><i>unreachable</i></strong>
</li>
+ <li> <strong class="uidlink">SocketServer.BaseRequestHandler</strong>:
+ <em class="summary">Base class for request handler classes.</em>
+ <ul>
+ <li> <strong class="uidlink">SocketServer.StreamRequestHandler</strong>:
+ <em class="summary">Define self.rfile and self.wfile for stream sockets.</em>
+ <ul>
+ <li> <strong class="uidlink">BaseHTTPServer.BaseHTTPRequestHandler</strong>:
+ <em class="summary">HTTP request handler base class.</em>
+ <ul>
+ <li> <strong class="uidlink">wsgiref.simple_server.WSGIRequestHandler</strong>
+ <ul>
+ <li> <strong class="uidlink"><a href="lxml.tests.dummy_http_server._RequestHandler-class.html" onclick="show_private();">lxml.tests.dummy_http_server._RequestHandler</a></strong>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li> <strong class="uidlink">SocketServer.BaseServer</strong>:
+ <em class="summary">Base class for server classes.</em>
+ <ul>
+ <li> <strong class="uidlink">SocketServer.TCPServer</strong>:
+ <em class="summary">Base class for various socket-based server classes.</em>
+ <ul>
+ <li> <strong class="uidlink">BaseHTTPServer.HTTPServer</strong>
+ <ul>
+ <li> <strong class="uidlink">wsgiref.simple_server.WSGIServer</strong>:
+ <em class="summary">BaseHTTPServer that implements the Python WSGI protocol</em>
+ <ul>
+ <li> <strong class="uidlink"><a href="lxml.tests.dummy_http_server.WebServer-class.html">lxml.tests.dummy_http_server.WebServer</a></strong>:
+ <em class="summary">A web server that starts a new thread for each request.</em>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </li>
<li> <strong class="uidlink">xml.sax.handler.ContentHandler</strong>:
<em class="summary">Interface for receiving logical document content events.</em>
<ul>
<li> <strong class="uidlink"><a href="lxml.tests.common_imports.LargeFileLike-class.html">lxml.tests.common_imports.LargeFileLike</a></strong>
<ul>
<li> <strong class="uidlink"><a href="lxml.tests.common_imports.LargeFileLikeUnicode-class.html">lxml.tests.common_imports.LargeFileLikeUnicode</a></strong>
+ </li>
+ </ul>
+ </li>
+ <li> <strong class="uidlink">rfc822.Message</strong>:
+ <em class="summary">Represents a single RFC 2822-compliant message.</em>
+ <ul>
+ <li> <strong class="uidlink"><a href="mimetools.Message-class.html">mimetools.Message</a></strong>:
+ <em class="summary">A derived class of rfc822.Message that knows about MIME headers and
+contains some hooks for decoding encoded and multipart messages.</em>
</li>
</ul>
</li>
</li>
<li> <strong class="uidlink"><a href="lxml.tests.common_imports.SillyFileLike-class.html">lxml.tests.common_imports.SillyFileLike</a></strong>
</li>
+ <li> <strong class="uidlink">SocketServer.ThreadingMixIn</strong>:
+ <em class="summary">Mix-in class to handle each request in a new thread.</em>
+ <ul>
+ <li> <strong class="uidlink"><a href="lxml.tests.dummy_http_server.WebServer-class.html">lxml.tests.dummy_http_server.WebServer</a></strong>:
+ <em class="summary">A web server that starts a new thread for each request.</em>
+ </li>
+ </ul>
+ </li>
<li> <strong class="uidlink">html5lib.XHTMLParser</strong>
</li>
<li> <strong class="uidlink">object</strong>:
<li> <strong class="uidlink"><a href="lxml.etree.ErrorTypes-class.html">lxml.etree.ErrorTypes</a></strong>:
<em class="summary">Libxml2 error types</em>
</li>
+ <li> <strong class="uidlink"><a href="lxml.tests.dummy_http_server.HTTPRequestCollector-class.html">lxml.tests.dummy_http_server.HTTPRequestCollector</a></strong>
+ </li>
<li> <strong class="uidlink"><a href="lxml.html.HtmlMixin-class.html">lxml.html.HtmlMixin</a></strong>
<ul>
<li> <strong class="uidlink"><a href="lxml.html.HtmlComment-class.html">lxml.html.HtmlComment</a></strong>
<li> <strong class="uidlink"><a href="lxml.objectify.PyType-class.html">lxml.objectify.PyType</a></strong>:
<em class="summary">PyType(self, name, type_check, type_class, stringify=None)
User defined type.</em>
- </li>
- <li> <strong class="uidlink"><a href="xml.etree.ElementTree.QName-class.html">xml.etree.ElementTree.QName</a></strong>
</li>
<li> <strong class="uidlink"><a href="lxml.etree.QName-class.html">lxml.etree.QName</a></strong>:
<em class="summary">QName(text_or_uri_or_element, tag=None)</em>
</li>
+ <li> <strong class="uidlink"><a href="xml.etree.ElementTree.QName-class.html">xml.etree.ElementTree.QName</a></strong>
+ </li>
<li> <strong class="uidlink"><a href="lxml.etree.RelaxNGErrorTypes-class.html">lxml.etree.RelaxNGErrorTypes</a></strong>:
<em class="summary">Libxml2 RelaxNG error types</em>
</li>
<li> <strong class="uidlink"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">lxml.tests.test_htmlparser.HtmlParserTestCase</a></strong>:
<em class="summary">HTML parser test cases</em>
</li>
+ <li> <strong class="uidlink"><a href="lxml.tests.test_http_io.HttpIOTestCase-class.html">lxml.tests.test_http_io.HttpIOTestCase</a></strong>
+ </li>
<li> <strong class="uidlink"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">lxml.tests.test_objectify.ObjectifyTestCase</a></strong>:
<em class="summary">Test cases for lxml.objectify</em>
</li>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<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.html.defs-module.html#block_tags">block_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.builder-module.html">builder</a><br />
-<span class="index-where">(in <a href="lxml-module.html">lxml</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.dummy_http_server-module.html#build_web_server">build_web_server()</a><br />
+<span class="index-where">(in <a href="lxml.tests.dummy_http_server-module.html">lxml.tests.dummy_http_server</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.html.HtmlMixin-class.html#base_url">base_url</a><br />
<span class="index-where">(in <a href="lxml.html.HtmlMixin-class.html">HtmlMixin</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.html.builder-module.html#BLOCKQUOTE">BLOCKQUOTE</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.html.builder-module.html">builder</a><br />
-<span class="index-where">(in <a href="lxml.html-module.html">lxml.html</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.builder-module.html">builder</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.html.builder-module.html#BASEFONT">BASEFONT</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_nsclasses.ETreeNamespaceClassesTestCase.bluff_class-class.html#bluff">bluff()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.bluff_class-class.html">bluff_class</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_builder.BuilderTestCase-class.html">BuilderTestCase</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.html.builder-module.html">builder</a><br />
+<span class="index-where">(in <a href="lxml.html-module.html">lxml.html</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.html-module.html#basestring">basestring</a><br />
<span class="index-where">(in <a href="lxml.html-module.html">lxml.html</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.bluff_class-class.html">bluff_class</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_io._IOTestCaseBase-class.html#buildNodes">buildNodes()</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_builder.BuilderTestCase-class.html">BuilderTestCase</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.html.clean-module.html#basestring">basestring</a><br />
<span class="index-where">(in <a href="lxml.html.clean-module.html">lxml.html.clean</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.html.HtmlMixin-class.html#body">body</a><br />
<span class="index-where">(in <a href="lxml.html.HtmlMixin-class.html">HtmlMixin</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.builder-module.html#BUTTON">BUTTON</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_io._IOTestCaseBase-class.html#buildNodes">buildNodes()</a><br />
+<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.html.builder-module.html#BDO">BDO</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.html.builder-module.html#BODY">BODY</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_incremental_xmlfile.BytesIOXmlFileTestCase-class.html">BytesIOXmlFileTestCase</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.html.builder-module.html#BUTTON">BUTTON</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.html.builder-module.html#BIG">BIG</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_xpathevaluator-module.html#booleanTest">booleanTest()</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"> </td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile.BytesIOXmlFileTestCase-class.html">BytesIOXmlFileTestCase</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.html.formfill.DefaultErrorCreator-class.html#block_inside">block_inside</a><br />
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td width="33%" class="link-index"><a href="lxml.etree.TreeBuilder-class.html#data">data()</a><br />
<span class="index-where">(in <a href="lxml.etree.TreeBuilder-class.html">TreeBuilder</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.doctestcompare-module.html">doctestcompare</a><br />
-<span class="index-where">(in <a href="lxml-module.html">lxml</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#DTD_LOAD_ERROR">DTD_LOAD_ERROR</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.DocInfo-class.html#doctype">doctype</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.etree.ErrorTypes-class.html#DTD_MIXED_CORRUPT">DTD_MIXED_CORRUPT</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.objectify-module.html#DataElement">DataElement()</a><br />
<span class="index-where">(in <a href="lxml.objectify-module.html">lxml.objectify</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.DocInfo-class.html#doctype">doctype</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.etree.ErrorTypes-class.html#DTD_MISSING_ATTRIBUTE">DTD_MISSING_ATTRIBUTE</a><br />
+<td width="33%" class="link-index"><a href="lxml.html.html5parser-module.html#document_fromstring">document_fromstring()</a><br />
+<span class="index-where">(in <a href="lxml.html.html5parser-module.html">lxml.html.html5parser</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#DTD_MULTIPLE_ID">DTD_MULTIPLE_ID</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.etree.ErrorDomains-class.html#DATATYPE">DATATYPE</a><br />
<span class="index-where">(in <a href="lxml.etree.ErrorDomains-class.html">ErrorDomains</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.html5parser-module.html#document_fromstring">document_fromstring()</a><br />
-<span class="index-where">(in <a href="lxml.html.html5parser-module.html">lxml.html.html5parser</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#DTD_MIXED_CORRUPT">DTD_MIXED_CORRUPT</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.DocumentInvalid-class.html">DocumentInvalid</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.etree.ErrorTypes-class.html#DTD_NO_DOC">DTD_NO_DOC</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.html.builder-module.html#DD">DD</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.etree.DocumentInvalid-class.html">DocumentInvalid</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.etree.ErrorTypes-class.html#DTD_MULTIPLE_ID">DTD_MULTIPLE_ID</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree._LogEntry-class.html#domain">domain</a><br />
+<span class="index-where">(in <a href="lxml.etree._LogEntry-class.html" onclick="show_private();">_LogEntry</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#DTD_NO_DTD">DTD_NO_DTD</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.objectify-module.html#deannotate">deannotate()</a><br />
<span class="index-where">(in <a href="lxml.objectify-module.html">lxml.objectify</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree._LogEntry-class.html#domain">domain</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree._LogEntry-class.html#domain_name">domain_name</a><br />
<span class="index-where">(in <a href="lxml.etree._LogEntry-class.html" onclick="show_private();">_LogEntry</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#DTD_NO_DOC">DTD_NO_DOC</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#DTD_NO_ELEM_NAME">DTD_NO_ELEM_NAME</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.etree-module.html#DEBUG">DEBUG</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.etree._LogEntry-class.html#domain_name">domain_name</a><br />
-<span class="index-where">(in <a href="lxml.etree._LogEntry-class.html" onclick="show_private();">_LogEntry</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#DTD_NO_DTD">DTD_NO_DTD</a><br />
+<td width="33%" class="link-index"><a href="lxml.html.HtmlMixin-class.html#drop_tag">drop_tag()</a><br />
+<span class="index-where">(in <a href="lxml.html.HtmlMixin-class.html">HtmlMixin</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#DTD_NO_PREFIX">DTD_NO_PREFIX</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_nsclasses.ETreeNamespaceClassesTestCase.default_class-class.html">default_class</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.html.HtmlMixin-class.html#drop_tag">drop_tag()</a><br />
+<td width="33%" class="link-index"><a href="lxml.html.HtmlMixin-class.html#drop_tree">drop_tree()</a><br />
<span class="index-where">(in <a href="lxml.html.HtmlMixin-class.html">HtmlMixin</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#DTD_NO_ELEM_NAME">DTD_NO_ELEM_NAME</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#DTD_NO_ROOT">DTD_NO_ROOT</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.html.formfill-module.html#default_error_creator">default_error_creator</a><br />
<span class="index-where">(in <a href="lxml.html.formfill-module.html">lxml.html.formfill</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.HtmlMixin-class.html#drop_tree">drop_tree()</a><br />
-<span class="index-where">(in <a href="lxml.html.HtmlMixin-class.html">HtmlMixin</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#DTD_NO_PREFIX">DTD_NO_PREFIX</a><br />
+<td width="33%" class="link-index"><a href="lxml.html.builder-module.html#DT">DT</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.etree.ErrorTypes-class.html#DTD_NOT_EMPTY">DTD_NOT_EMPTY</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.ElementInclude-module.html#default_loader">default_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.html.builder-module.html#DT">DT</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.etree.ErrorTypes-class.html#DTD_NO_ROOT">DTD_NO_ROOT</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.DTD-class.html">DTD</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.etree.ErrorTypes-class.html#DTD_NOT_PCDATA">DTD_NOT_PCDATA</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.html.diff-module.html#default_markup">default_markup()</a><br />
<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.etree.DTD-class.html">DTD</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.etree.ErrorTypes-class.html#DTD_NOT_EMPTY">DTD_NOT_EMPTY</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorDomains-class.html#DTD">DTD</a><br />
+<span class="index-where">(in <a href="lxml.etree.ErrorDomains-class.html">ErrorDomains</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#DTD_NOT_STANDALONE">DTD_NOT_STANDALONE</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.html.formfill.DefaultErrorCreator-class.html#default_message">default_message</a><br />
<span class="index-where">(in <a href="lxml.html.formfill.DefaultErrorCreator-class.html">DefaultErrorCreator</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorDomains-class.html#DTD">DTD</a><br />
-<span class="index-where">(in <a href="lxml.etree.ErrorDomains-class.html">ErrorDomains</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#DTD_NOT_PCDATA">DTD_NOT_PCDATA</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#DTD_ATTRIBUTE_DEFAULT">DTD_ATTRIBUTE_DEFAULT</a><br />
+<span class="index-where">(in <a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#DTD_NOTATION_REDEFINED">DTD_NOTATION_REDEFINED</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-module.html#DEFAULT_NSMAP">DEFAULT_NSMAP</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.etree.ErrorTypes-class.html#DTD_ATTRIBUTE_DEFAULT">DTD_ATTRIBUTE_DEFAULT</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#DTD_ATTRIBUTE_REDEFINED">DTD_ATTRIBUTE_REDEFINED</a><br />
<span class="index-where">(in <a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#DTD_NOT_STANDALONE">DTD_NOT_STANDALONE</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#DTD_NOTATION_VALUE">DTD_NOTATION_VALUE</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.html.formfill.DefaultErrorCreator-class.html">DefaultErrorCreator</a><br />
<span class="index-where">(in <a href="lxml.html.formfill-module.html">lxml.html.formfill</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#DTD_ATTRIBUTE_REDEFINED">DTD_ATTRIBUTE_REDEFINED</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#DTD_ATTRIBUTE_VALUE">DTD_ATTRIBUTE_VALUE</a><br />
<span class="index-where">(in <a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#DTD_NOTATION_REDEFINED">DTD_NOTATION_REDEFINED</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#DTD_ROOT_NAME">DTD_ROOT_NAME</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.html.defs-module.html">defs</a><br />
<span class="index-where">(in <a href="lxml.html-module.html">lxml.html</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#DTD_ATTRIBUTE_VALUE">DTD_ATTRIBUTE_VALUE</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#DTD_CONTENT_ERROR">DTD_CONTENT_ERROR</a><br />
<span class="index-where">(in <a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#DTD_NOTATION_VALUE">DTD_NOTATION_VALUE</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#DTD_STANDALONE_DEFAULTED">DTD_STANDALONE_DEFAULTED</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.html.builder-module.html#DEL">DEL</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.etree.ErrorTypes-class.html#DTD_CONTENT_ERROR">DTD_CONTENT_ERROR</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#DTD_CONTENT_MODEL">DTD_CONTENT_MODEL</a><br />
<span class="index-where">(in <a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#DTD_ROOT_NAME">DTD_ROOT_NAME</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#DTD_STANDALONE_WHITE_SPACE">DTD_STANDALONE_WHITE_SPACE</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.html.diff.DEL_END-class.html">DEL_END</a><br />
<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.etree.ErrorTypes-class.html#DTD_CONTENT_MODEL">DTD_CONTENT_MODEL</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#DTD_CONTENT_NOT_DETERMINIST">DTD_CONTENT_NOT_DETERMINIST</a><br />
<span class="index-where">(in <a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#DTD_STANDALONE_DEFAULTED">DTD_STANDALONE_DEFAULTED</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#DTD_UNKNOWN_ATTRIBUTE">DTD_UNKNOWN_ATTRIBUTE</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.html.diff.DEL_START-class.html">DEL_START</a><br />
<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.etree.ErrorTypes-class.html#DTD_CONTENT_NOT_DETERMINIST">DTD_CONTENT_NOT_DETERMINIST</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#DTD_DIFFERENT_PREFIX">DTD_DIFFERENT_PREFIX</a><br />
<span class="index-where">(in <a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#DTD_STANDALONE_WHITE_SPACE">DTD_STANDALONE_WHITE_SPACE</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#DTD_UNKNOWN_ELEM">DTD_UNKNOWN_ELEM</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.etree.XSLTAccessControl-class.html#DENY_ALL">DENY_ALL</a><br />
<span class="index-where">(in <a href="lxml.etree.XSLTAccessControl-class.html">XSLTAccessControl</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#DTD_DIFFERENT_PREFIX">DTD_DIFFERENT_PREFIX</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#DTD_DUP_TOKEN">DTD_DUP_TOKEN</a><br />
<span class="index-where">(in <a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#DTD_UNKNOWN_ATTRIBUTE">DTD_UNKNOWN_ATTRIBUTE</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#DTD_UNKNOWN_ENTITY">DTD_UNKNOWN_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.etree.XSLTAccessControl-class.html#DENY_WRITE">DENY_WRITE</a><br />
<span class="index-where">(in <a href="lxml.etree.XSLTAccessControl-class.html">XSLTAccessControl</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#DTD_DUP_TOKEN">DTD_DUP_TOKEN</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#DTD_ELEM_DEFAULT_NAMESPACE">DTD_ELEM_DEFAULT_NAMESPACE</a><br />
<span class="index-where">(in <a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#DTD_UNKNOWN_ELEM">DTD_UNKNOWN_ELEM</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#DTD_UNKNOWN_ID">DTD_UNKNOWN_ID</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.html.defs-module.html#deprecated_tags">deprecated_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.etree.ErrorTypes-class.html#DTD_ELEM_DEFAULT_NAMESPACE">DTD_ELEM_DEFAULT_NAMESPACE</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#DTD_ELEM_NAMESPACE">DTD_ELEM_NAMESPACE</a><br />
<span class="index-where">(in <a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#DTD_UNKNOWN_ENTITY">DTD_UNKNOWN_ENTITY</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#DTD_UNKNOWN_NOTATION">DTD_UNKNOWN_NOTATION</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.objectify.ObjectifiedElement-class.html#descendantpaths">descendantpaths()</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.ErrorTypes-class.html#DTD_ELEM_NAMESPACE">DTD_ELEM_NAMESPACE</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#DTD_ELEM_REDEFINED">DTD_ELEM_REDEFINED</a><br />
<span class="index-where">(in <a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#DTD_UNKNOWN_ID">DTD_UNKNOWN_ID</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#DTD_XMLID_TYPE">DTD_XMLID_TYPE</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.html.builder-module.html#DFN">DFN</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.etree.ErrorTypes-class.html#DTD_ELEM_REDEFINED">DTD_ELEM_REDEFINED</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#DTD_EMPTY_NOTATION">DTD_EMPTY_NOTATION</a><br />
<span class="index-where">(in <a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#DTD_UNKNOWN_NOTATION">DTD_UNKNOWN_NOTATION</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#DTD_XMLID_VALUE">DTD_XMLID_VALUE</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.html.diff-module.html">diff</a><br />
<span class="index-where">(in <a href="lxml.html-module.html">lxml.html</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#DTD_EMPTY_NOTATION">DTD_EMPTY_NOTATION</a><br />
-<span class="index-where">(in <a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#DTD_XMLID_TYPE">DTD_XMLID_TYPE</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#DTD_ENTITY_TYPE">DTD_ENTITY_TYPE</a><br />
<span class="index-where">(in <a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.DTDError-class.html">DTDError</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.html.builder-module.html#DIR">DIR</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.etree.ErrorTypes-class.html#DTD_ENTITY_TYPE">DTD_ENTITY_TYPE</a><br />
-<span class="index-where">(in <a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#DTD_XMLID_VALUE">DTD_XMLID_VALUE</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#DTD_ID_FIXED">DTD_ID_FIXED</a><br />
<span class="index-where">(in <a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.DTDParseError-class.html">DTDParseError</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.html.builder-module.html#DIV">DIV</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.etree.ErrorTypes-class.html#DTD_ID_FIXED">DTD_ID_FIXED</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#DTD_ID_REDEFINED">DTD_ID_REDEFINED</a><br />
<span class="index-where">(in <a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.DTDError-class.html">DTDError</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.DTDValidateError-class.html">DTDValidateError</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.html.builder-module.html#DL">DL</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.etree.ErrorTypes-class.html#DTD_ID_REDEFINED">DTD_ID_REDEFINED</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#DTD_ID_SUBSET">DTD_ID_SUBSET</a><br />
<span class="index-where">(in <a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.DTDParseError-class.html">DTDParseError</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.dummy_http_server-module.html">dummy_http_server</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.etree.DocInfo-class.html">DocInfo</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.etree.ErrorTypes-class.html#DTD_ID_SUBSET">DTD_ID_SUBSET</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#DTD_INVALID_CHILD">DTD_INVALID_CHILD</a><br />
<span class="index-where">(in <a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.DTDValidateError-class.html">DTDValidateError</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree-module.html#dump">dump()</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._ElementTree-class.html#docinfo">docinfo</a><br />
<span class="index-where">(in <a href="lxml.etree._ElementTree-class.html" onclick="show_private();">_ElementTree</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#DTD_INVALID_CHILD">DTD_INVALID_CHILD</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#DTD_INVALID_DEFAULT">DTD_INVALID_DEFAULT</a><br />
<span class="index-where">(in <a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree-module.html#dump">dump()</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.objectify-module.html#dump">dump()</a><br />
+<span class="index-where">(in <a href="lxml.objectify-module.html">lxml.objectify</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.tests.common_imports-module.html#doctest_parser">doctest_parser</a><br />
<span class="index-where">(in <a href="lxml.tests.common_imports-module.html">lxml.tests.common_imports</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#DTD_INVALID_DEFAULT">DTD_INVALID_DEFAULT</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#DTD_LOAD_ERROR">DTD_LOAD_ERROR</a><br />
<span class="index-where">(in <a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.objectify-module.html#dump">dump()</a><br />
-<span class="index-where">(in <a href="lxml.objectify-module.html">lxml.objectify</a>)</span></td>
+<td width="33%" class="link-index"> </td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="lxml.doctestcompare-module.html">doctestcompare</a><br />
+<span class="index-where">(in <a href="lxml-module.html">lxml</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#DTD_MISSING_ATTRIBUTE">DTD_MISSING_ATTRIBUTE</a><br />
+<span class="index-where">(in <a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
+<td width="33%" class="link-index"> </td>
</tr>
</table>
</td></tr>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</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.defs-module.html#general_block_tags">general_block_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-module.html#get_include">get_include()</a><br />
-<span class="index-where">(in <a href="lxml-module.html">lxml</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#getparent">getparent()</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.etree._Attrib-class.html#get">get()</a><br />
-<span class="index-where">(in <a href="lxml.etree._Attrib-class.html" onclick="show_private();">_Attrib</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.html.diff.InsensitiveSequenceMatcher-class.html#get_matching_blocks">get_matching_blocks()</a><br />
<span class="index-where">(in <a href="lxml.html.diff.InsensitiveSequenceMatcher-class.html" onclick="show_private();">InsensitiveSequenceMatcher</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.etree._ElementStringResult-class.html#getparent">getparent()</a><br />
<span class="index-where">(in <a href="lxml.etree._ElementStringResult-class.html" onclick="show_private();">_ElementStringResult</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#get">get()</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.etree._Attrib-class.html#get">get()</a><br />
+<span class="index-where">(in <a href="lxml.etree._Attrib-class.html" onclick="show_private();">_Attrib</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.etree.ElementNamespaceClassLookup-class.html#get_namespace">get_namespace()</a><br />
<span class="index-where">(in <a href="lxml.etree.ElementNamespaceClassLookup-class.html">ElementNamespaceClassLookup</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.etree._ElementUnicodeResult-class.html#getparent">getparent()</a><br />
<span class="index-where">(in <a href="lxml.etree._ElementUnicodeResult-class.html" onclick="show_private();">_ElementUnicodeResult</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.etree._IDDict-class.html#get">get()</a><br />
-<span class="index-where">(in <a href="lxml.etree._IDDict-class.html" onclick="show_private();">_IDDict</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#get">get()</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.doctestcompare.LXMLOutputChecker-class.html#get_parser">get_parser()</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.etree._ElementTree-class.html#getpath">getpath()</a><br />
<span class="index-where">(in <a href="lxml.etree._ElementTree-class.html" onclick="show_private();">_ElementTree</a>)</span></td>
</tr>
<tr>
+<td width="33%" class="link-index"><a href="lxml.etree._IDDict-class.html#get">get()</a><br />
+<span class="index-where">(in <a href="lxml.etree._IDDict-class.html" onclick="show_private();">_IDDict</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.dummy_http_server._RequestHandler-class.html#get_stderr">get_stderr()</a><br />
+<span class="index-where">(in <a href="lxml.tests.dummy_http_server._RequestHandler-class.html" onclick="show_private();">_RequestHandler</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#getprevious">getprevious()</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.etree._ProcessingInstruction-class.html#get">get()</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.etree._Element-class.html#getchildren">getchildren()</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.etree._Element-class.html#getprevious">getprevious()</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.objectify-module.html#getRegisteredTypes">getRegisteredTypes()</a><br />
+<span class="index-where">(in <a href="lxml.objectify-module.html">lxml.objectify</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.doctestcompare.LHTMLOutputChecker-class.html#get_default_parser">get_default_parser()</a><br />
<span class="index-where">(in <a href="lxml.doctestcompare.LHTMLOutputChecker-class.html">LHTMLOutputChecker</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.objectify.ObjectifiedElement-class.html#getchildren">getchildren()</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.objectify-module.html#getRegisteredTypes">getRegisteredTypes()</a><br />
-<span class="index-where">(in <a href="lxml.objectify-module.html">lxml.objectify</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._ElementTree-class.html#getroot">getroot()</a><br />
+<span class="index-where">(in <a href="lxml.etree._ElementTree-class.html" onclick="show_private();">_ElementTree</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.doctestcompare.LXMLOutputChecker-class.html#get_default_parser">get_default_parser()</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.etree._Element-class.html#getiterator">getiterator()</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.etree._ElementTree-class.html#getroot">getroot()</a><br />
-<span class="index-where">(in <a href="lxml.etree._ElementTree-class.html" onclick="show_private();">_ElementTree</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#getroottree">getroottree()</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.etree-module.html#get_default_parser">get_default_parser()</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.etree._ElementTree-class.html#getiterator">getiterator()</a><br />
<span class="index-where">(in <a href="lxml.etree._ElementTree-class.html" onclick="show_private();">_ElementTree</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#getroottree">getroottree()</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_io._IOTestCaseBase-class.html#getTestFilePath">getTestFilePath()</a><br />
+<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.html.HtmlMixin-class.html#get_element_by_id">get_element_by_id()</a><br />
<span class="index-where">(in <a href="lxml.html.HtmlMixin-class.html">HtmlMixin</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#getnext">getnext()</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_io._IOTestCaseBase-class.html#getTestFilePath">getTestFilePath()</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"> </td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="lxml-module.html#get_include">get_include()</a><br />
+<span class="index-where">(in <a href="lxml-module.html">lxml</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#getparent">getparent()</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"> </td>
</tr>
</table>
</td></tr>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</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#H1">H1</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.html.diff.token-class.html#hide_when_equal">hide_when_equal</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_htmlparser.HtmlParserTestCase-class.html#html_str">html_str</a><br />
-<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.html.builder-module.html#H2">H2</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.html.clean.Cleaner-class.html#host_whitelist">host_whitelist</a><br />
<span class="index-where">(in <a href="lxml.html.clean.Cleaner-class.html">Cleaner</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#html_str_pretty">html_str_pretty</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.ErrorTypes-class.html#HTML_STRUCURE_ERROR">HTML_STRUCURE_ERROR</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.html.builder-module.html#H3">H3</a><br />
+<td width="33%" class="link-index"><a href="lxml.html.builder-module.html#H2">H2</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.html.builder-module.html#HR">HR</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.etree.ErrorTypes-class.html#HTML_STRUCURE_ERROR">HTML_STRUCURE_ERROR</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#HTML_UNKNOWN_TAG">HTML_UNKNOWN_TAG</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.html.builder-module.html#H4">H4</a><br />
+<td width="33%" class="link-index"><a href="lxml.html.builder-module.html#H3">H3</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.html.diff.href_token-class.html">href_token</a><br />
<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.etree.ErrorTypes-class.html#HTML_UNKNOWN_TAG">HTML_UNKNOWN_TAG</a><br />
-<span class="index-where">(in <a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.HtmlComment-class.html">HtmlComment</a></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.html.builder-module.html#H5">H5</a><br />
+<td width="33%" class="link-index"><a href="lxml.html.builder-module.html#H4">H4</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.etree.ErrorDomains-class.html#HTML">HTML</a><br />
<span class="index-where">(in <a href="lxml.etree.ErrorDomains-class.html">ErrorDomains</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.HtmlComment-class.html">HtmlComment</a></td>
+<td width="33%" class="link-index"><a href="lxml.html.diff-module.html#htmldiff">htmldiff()</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.html.builder-module.html#H6">H6</a><br />
+<td width="33%" class="link-index"><a href="lxml.html.builder-module.html#H5">H5</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.html-module.html">html</a><br />
<span class="index-where">(in <a href="lxml-module.html">lxml</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.diff-module.html#htmldiff">htmldiff()</a><br />
+<td width="33%" class="link-index"><a href="lxml.html.diff-module.html#htmldiff_tokens">htmldiff_tokens()</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_threading.ThreadPipelineTestCase.ParseAndExtendWorker-class.html#handle">handle()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker-class.html">ParseAndExtendWorker</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.builder-module.html#H6">H6</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.html.builder-module.html#HTML">HTML</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.html.diff-module.html#htmldiff_tokens">htmldiff_tokens()</a><br />
-<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.html.HtmlElement-class.html">HtmlElement</a></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker-class.html#handle">handle()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker-class.html">ParseWorker</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker-class.html#handle">handle()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker-class.html">ParseAndExtendWorker</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_css-module.html#HTML">HTML</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.html.HtmlElement-class.html">HtmlElement</a></td>
+<td width="33%" class="link-index"><a href="lxml.html.HtmlElementClassLookup-class.html">HtmlElementClassLookup</a></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker-class.html#handle">handle()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker-class.html">ReverseWorker</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker-class.html#handle">handle()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker-class.html">ParseWorker</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.etree-module.html#HTML">HTML()</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.html.HtmlElementClassLookup-class.html">HtmlElementClassLookup</a></td>
+<td width="33%" class="link-index"><a href="lxml.html.HtmlEntity-class.html">HtmlEntity</a></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker-class.html#handle">handle()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker-class.html">RotateWorker</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker-class.html#handle">handle()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker-class.html">ReverseWorker</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.html.diff.href_token-class.html#html">html()</a><br />
<span class="index-where">(in <a href="lxml.html.diff.href_token-class.html" onclick="show_private();">href_token</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.HtmlEntity-class.html">HtmlEntity</a></td>
+<td width="33%" class="link-index"><a href="lxml.html.HtmlMixin-class.html">HtmlMixin</a></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker-class.html#handle">handle()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker-class.html">SerialiseWorker</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker-class.html#handle">handle()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker-class.html">RotateWorker</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.html.diff.tag_token-class.html#html">html()</a><br />
<span class="index-where">(in <a href="lxml.html.diff.tag_token-class.html" onclick="show_private();">tag_token</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.HtmlMixin-class.html">HtmlMixin</a></td>
+<td width="33%" class="link-index"><a href="lxml.etree.HTMLParser-class.html">HTMLParser</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.html.soupparser-module.html#handle_entities">handle_entities()</a><br />
-<span class="index-where">(in <a href="lxml.html.soupparser-module.html">lxml.html.soupparser</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker-class.html#handle">handle()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker-class.html">SerialiseWorker</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.html.diff.token-class.html#html">html()</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.etree.HTMLParser-class.html">HTMLParser</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.html.HTMLParser-class.html">HTMLParser</a></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.etree._Attrib-class.html#has_key">has_key()</a><br />
-<span class="index-where">(in <a href="lxml.etree._Attrib-class.html" onclick="show_private();">_Attrib</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.soupparser-module.html#handle_entities">handle_entities()</a><br />
+<span class="index-where">(in <a href="lxml.html.soupparser-module.html">lxml.html.soupparser</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.html.html5parser-module.html">html5parser</a><br />
<span class="index-where">(in <a href="lxml.html-module.html">lxml.html</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.HTMLParser-class.html">HTMLParser</a></td>
+<td width="33%" class="link-index"><a href="lxml.html.html5parser.HTMLParser-class.html">HTMLParser</a><br />
+<span class="index-where">(in <a href="lxml.html.html5parser-module.html">lxml.html.html5parser</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.etree._IDDict-class.html#has_key">has_key()</a><br />
-<span class="index-where">(in <a href="lxml.etree._IDDict-class.html" onclick="show_private();">_IDDict</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._Attrib-class.html#has_key">has_key()</a><br />
+<span class="index-where">(in <a href="lxml.etree._Attrib-class.html" onclick="show_private();">_Attrib</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.html.diff-module.html#html_annotate">html_annotate()</a><br />
<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.html.html5parser.HTMLParser-class.html">HTMLParser</a><br />
-<span class="index-where">(in <a href="lxml.html.html5parser-module.html">lxml.html.html5parser</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</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.objectify.ObjectPath-class.html#hasattr">hasattr()</a><br />
-<span class="index-where">(in <a href="lxml.objectify.ObjectPath-class.html">ObjectPath</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._IDDict-class.html#has_key">has_key()</a><br />
+<span class="index-where">(in <a href="lxml.etree._IDDict-class.html" onclick="show_private();">_IDDict</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.html.diff-module.html#html_annotate_merge_annotations">html_annotate_merge_annotations()</a><br />
<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_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</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.html.HtmlProcessingInstruction-class.html">HtmlProcessingInstruction</a></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.html.HtmlMixin-class.html#head">head</a><br />
-<span class="index-where">(in <a href="lxml.html.HtmlMixin-class.html">HtmlMixin</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.objectify.ObjectPath-class.html#hasattr">hasattr()</a><br />
+<span class="index-where">(in <a href="lxml.objectify.ObjectPath-class.html">ObjectPath</a>)</span></td>
<td width="33%" class="link-index"><a href="xml.etree.ElementTree-module.html#HTML_EMPTY">HTML_EMPTY</a><br />
<span class="index-where">(in <a href="xml.etree.ElementTree-module.html">xml.etree.ElementTree</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.HtmlProcessingInstruction-class.html">HtmlProcessingInstruction</a></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorDomains-class.html#HTTP">HTTP</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.html.builder-module.html#HEAD">HEAD</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.html.HtmlMixin-class.html#head">head</a><br />
+<span class="index-where">(in <a href="lxml.html.HtmlMixin-class.html">HtmlMixin</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.doctestcompare.LXMLOutputChecker-class.html#html_empty_tag">html_empty_tag()</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.etree.ErrorDomains-class.html#HTTP">HTTP</a><br />
-<span class="index-where">(in <a href="lxml.etree.ErrorDomains-class.html">ErrorDomains</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#HTTP_UNKNOWN_HOST">HTTP_UNKNOWN_HOST</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.html.defs-module.html#head_tags">head_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.html.builder-module.html#HEAD">HEAD</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.doctestcompare-module.html#html_fromstring">html_fromstring()</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.etree.ErrorTypes-class.html#HTTP_UNKNOWN_HOST">HTTP_UNKNOWN_HOST</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#HTTP_URL_SYNTAX">HTTP_URL_SYNTAX</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.common_imports.HelperTestCase-class.html">HelperTestCase</a><br />
-<span class="index-where">(in <a href="lxml.tests.common_imports-module.html">lxml.tests.common_imports</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.defs-module.html#head_tags">head_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.html.html5parser-module.html#html_parser">html_parser</a><br />
<span class="index-where">(in <a href="lxml.html.html5parser-module.html">lxml.html.html5parser</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#HTTP_URL_SYNTAX">HTTP_URL_SYNTAX</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#HTTP_USE_IP">HTTP_USE_IP</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.html.diff.href_token-class.html#hide_when_equal">hide_when_equal</a><br />
-<span class="index-where">(in <a href="lxml.html.diff.href_token-class.html" onclick="show_private();">href_token</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.common_imports.HelperTestCase-class.html">HelperTestCase</a><br />
+<span class="index-where">(in <a href="lxml.tests.common_imports-module.html">lxml.tests.common_imports</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.html-module.html#html_parser">html_parser</a><br />
<span class="index-where">(in <a href="lxml.html-module.html">lxml.html</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#HTTP_USE_IP">HTTP_USE_IP</a><br />
-<span class="index-where">(in <a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_http_io.HttpIOTestCase-class.html">HttpIOTestCase</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.html.diff.href_token-class.html#hide_when_equal">hide_when_equal</a><br />
+<span class="index-where">(in <a href="lxml.html.diff.href_token-class.html" onclick="show_private();">href_token</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#html_str">html_str</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.dummy_http_server.HTTPRequestCollector-class.html">HTTPRequestCollector</a><br />
+<span class="index-where">(in <a href="lxml.tests.dummy_http_server-module.html">lxml.tests.dummy_http_server</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="lxml.html.diff.token-class.html#hide_when_equal">hide_when_equal</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_htmlparser.HtmlParserTestCase-class.html#html_str_pretty">html_str_pretty</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"> </td>
</tr>
</table>
</td></tr>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<span class="index-where">(in <a href="lxml.html.HtmlMixin-class.html">HtmlMixin</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.etree-module.html#LIBXML_VERSION">LIBXML_VERSION</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.etree.CustomElementClassLookup-class.html#lookup">lookup()</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.LongElement-class.html">LongElement</a><br />
+<span class="index-where">(in <a href="lxml.objectify-module.html">lxml.objectify</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.html.builder-module.html#LABEL">LABEL</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.etree-module.html#LIBXSLT_COMPILED_VERSION">LIBXSLT_COMPILED_VERSION</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.etree.PythonElementClassLookup-class.html#lookup">lookup()</a><br />
-<span class="index-where">(in <a href="lxml.etree.PythonElementClassLookup-class.html">PythonElementClassLookup</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.CustomElementClassLookup-class.html#lookup">lookup()</a><br />
+<span class="index-where">(in <a href="lxml.etree.CustomElementClassLookup-class.html">CustomElementClassLookup</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.html.LabelElement-class.html">LabelElement</a></td>
<td width="33%" class="link-index"><a href="lxml.etree-module.html#LIBXSLT_VERSION">LIBXSLT_VERSION</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.html.HtmlElementClassLookup-class.html#lookup">lookup()</a><br />
-<span class="index-where">(in <a href="lxml.html.HtmlElementClassLookup-class.html">HtmlElementClassLookup</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.PythonElementClassLookup-class.html#lookup">lookup()</a><br />
+<span class="index-where">(in <a href="lxml.etree.PythonElementClassLookup-class.html">PythonElementClassLookup</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.tests.common_imports.LargeFileLike-class.html">LargeFileLike</a><br />
<span class="index-where">(in <a href="lxml.tests.common_imports-module.html">lxml.tests.common_imports</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.etree._LogEntry-class.html#line">line</a><br />
<span class="index-where">(in <a href="lxml.etree._LogEntry-class.html" onclick="show_private();">_LogEntry</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml-module.html">lxml</a></td>
+<td width="33%" class="link-index"><a href="lxml.html.HtmlElementClassLookup-class.html#lookup">lookup()</a><br />
+<span class="index-where">(in <a href="lxml.html.HtmlElementClassLookup-class.html">HtmlElementClassLookup</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.tests.common_imports.LargeFileLikeUnicode-class.html">LargeFileLikeUnicode</a><br />
<span class="index-where">(in <a href="lxml.tests.common_imports-module.html">lxml.tests.common_imports</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.html.builder-module.html#LINK">LINK</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.etree-module.html#LXML_VERSION">LXML_VERSION</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-module.html">lxml</a></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.etree._BaseErrorLog-class.html#last_error">last_error</a><br />
<span class="index-where">(in <a href="lxml.etree._BaseErrorLog-class.html" onclick="show_private();">_BaseErrorLog</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.html.defs-module.html#link_attrs">link_attrs</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.etree.LxmlError-class.html">LxmlError</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree-module.html#LXML_VERSION">LXML_VERSION</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.html.builder-module.html">lxml.html.builder</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.html.clean.Cleaner-class.html#links">links</a><br />
<span class="index-where">(in <a href="lxml.html.clean.Cleaner-class.html">Cleaner</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.cssselect.LxmlHTMLTranslator-class.html">LxmlHTMLTranslator</a><br />
-<span class="index-where">(in <a href="lxml.cssselect-module.html">lxml.cssselect</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.LxmlError-class.html">LxmlError</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._LogEntry-class.html#level">level</a><br />
<span class="index-where">(in <a href="lxml.etree._LogEntry-class.html" onclick="show_private();">_LogEntry</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.html.defs-module.html#list_tags">list_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.doctestcompare.LXMLOutputChecker-class.html">LXMLOutputChecker</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.cssselect.LxmlHTMLTranslator-class.html">LxmlHTMLTranslator</a><br />
+<span class="index-where">(in <a href="lxml.cssselect-module.html">lxml.cssselect</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.etree.PyErrorLog-class.html#level_map">level_map</a><br />
<span class="index-where">(in <a href="lxml.etree.PyErrorLog-class.html">PyErrorLog</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.etree.QName-class.html#localname">localname</a><br />
<span class="index-where">(in <a href="lxml.etree.QName-class.html">QName</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.LxmlRegistryError-class.html">LxmlRegistryError</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.doctestcompare.LXMLOutputChecker-class.html">LXMLOutputChecker</a><br />
+<span class="index-where">(in <a href="lxml.doctestcompare-module.html">lxml.doctestcompare</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.etree._LogEntry-class.html#level_name">level_name</a><br />
<span class="index-where">(in <a href="lxml.etree._LogEntry-class.html" onclick="show_private();">_LogEntry</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.html.diff-module.html#locate_unbalanced_end">locate_unbalanced_end()</a><br />
<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.etree.LxmlSyntaxError-class.html">LxmlSyntaxError</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.LxmlRegistryError-class.html">LxmlRegistryError</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.doctestcompare-module.html">lxml.doctestcompare</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.html.diff-module.html#locate_unbalanced_start">locate_unbalanced_start()</a><br />
<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.cssselect.LxmlTranslator-class.html">LxmlTranslator</a><br />
-<span class="index-where">(in <a href="lxml.cssselect-module.html">lxml.cssselect</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.LxmlSyntaxError-class.html">LxmlSyntaxError</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.html.builder-module.html#LI">LI</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.etree.PyErrorLog-class.html#log">log()</a><br />
<span class="index-where">(in <a href="lxml.etree.PyErrorLog-class.html">PyErrorLog</a>)</span></td>
-<td width="33%" class="link-index"> </td>
+<td width="33%" class="link-index"><a href="lxml.cssselect.LxmlTranslator-class.html">LxmlTranslator</a><br />
+<span class="index-where">(in <a href="lxml.cssselect-module.html">lxml.cssselect</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.etree-module.html#LIBXML_COMPILED_VERSION">LIBXML_COMPILED_VERSION</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.objectify.LongElement-class.html">LongElement</a><br />
-<span class="index-where">(in <a href="lxml.objectify-module.html">lxml.objectify</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.dummy_http_server._RequestHandler-class.html#log_message">log_message()</a><br />
+<span class="index-where">(in <a href="lxml.tests.dummy_http_server._RequestHandler-class.html" onclick="show_private();">_RequestHandler</a>)</span></td>
<td width="33%" class="link-index"> </td>
</tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td width="33%" class="link-index"><a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.maeh_class-class.html#maeh">maeh()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.maeh_class-class.html">maeh_class</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.builder-module.html#MAP">MAP</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.html.builder-module.html#META">META</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_nsclasses.ETreeNamespaceClassesTestCase.maeh_class-class.html">maeh_class</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.html.diff-module.html#markup_serialize_tokens">markup_serialize_tokens()</a><br />
<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.html.clean.Cleaner-class.html#meta">meta</a><br />
<span class="index-where">(in <a href="lxml.html.clean.Cleaner-class.html">Cleaner</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.common_imports-module.html#make_doctest">make_doctest()</a><br />
-<span class="index-where">(in <a href="lxml.tests.common_imports-module.html">lxml.tests.common_imports</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.maeh_class-class.html">maeh_class</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.etree.ErrorDomains-class.html#MEMORY">MEMORY</a><br />
<span class="index-where">(in <a href="lxml.etree.ErrorDomains-class.html">ErrorDomains</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.html.FormElement-class.html#method">method</a><br />
<span class="index-where">(in <a href="lxml.html.FormElement-class.html">FormElement</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.html-module.html#make_links_absolute">make_links_absolute</a><br />
-<span class="index-where">(in <a href="lxml.html-module.html">lxml.html</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.common_imports-module.html#make_doctest">make_doctest()</a><br />
+<span class="index-where">(in <a href="lxml.tests.common_imports-module.html">lxml.tests.common_imports</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.etree-module.html#memory_debugger">memory_debugger</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.etree.ErrorDomains-class.html#MODULE">MODULE</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.html.HtmlMixin-class.html#make_links_absolute">make_links_absolute()</a><br />
-<span class="index-where">(in <a href="lxml.html.HtmlMixin-class.html">HtmlMixin</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html-module.html#make_links_absolute">make_links_absolute</a><br />
+<span class="index-where">(in <a href="lxml.html-module.html">lxml.html</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.html.builder-module.html#MENU">MENU</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.etree.ErrorTypes-class.html#MODULE_CLOSE">MODULE_CLOSE</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.common_imports-module.html#make_version_tuple">make_version_tuple()</a><br />
-<span class="index-where">(in <a href="lxml.tests.common_imports-module.html">lxml.tests.common_imports</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.HtmlMixin-class.html#make_links_absolute">make_links_absolute()</a><br />
+<span class="index-where">(in <a href="lxml.html.HtmlMixin-class.html">HtmlMixin</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.html.diff-module.html#merge_delete">merge_delete()</a><br />
<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.etree.ErrorTypes-class.html#MODULE_OPEN">MODULE_OPEN</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.etree._Element-class.html#makeelement">makeelement()</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.common_imports-module.html#make_version_tuple">make_version_tuple()</a><br />
+<span class="index-where">(in <a href="lxml.tests.common_imports-module.html">lxml.tests.common_imports</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.html.diff-module.html#merge_insert">merge_insert()</a><br />
<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.html.SelectElement-class.html#multiple">multiple</a><br />
<span class="index-where">(in <a href="lxml.html.SelectElement-class.html">SelectElement</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.objectify-module.html#makeparser">makeparser()</a><br />
-<span class="index-where">(in <a href="lxml.objectify-module.html">lxml.objectify</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#makeelement">makeelement()</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.etree._LogEntry-class.html#message">message</a><br />
<span class="index-where">(in <a href="lxml.etree._LogEntry-class.html" onclick="show_private();">_LogEntry</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.html.MultipleSelectOptions-class.html">MultipleSelectOptions</a></td>
</tr>
+<tr>
+<td width="33%" class="link-index"><a href="lxml.objectify-module.html#makeparser">makeparser()</a><br />
+<span class="index-where">(in <a href="lxml.objectify-module.html">lxml.objectify</a>)</span></td>
+<td width="33%" class="link-index"><a href="mimetools.Message-class.html">Message</a></td>
+<td width="33%" class="link-index"> </td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="lxml.html.builder-module.html#MAP">MAP</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.html.builder-module.html#META">META</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"> </td>
+</tr>
</table>
</td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</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_getiterator_filter_pi">test_getiterator_filter_pi()</a><br />
+<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_elementtree._ETreeTestCaseBase-class.html#test_setslice_negative2">test_setslice_negative2()</a><br />
+<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.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_elementtree._ETreeTestCaseBase-class.html#test_getiterator_filter_with_text">test_getiterator_filter_with_text()</a><br />
+<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_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_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>
<td width="33%" class="link-index"><a href="lxml.etree._Comment-class.html#tag">tag</a><br />
<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_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 />
+<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">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>
<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_etree.ETreeOnlyTestCase-class.html#test_getnext">test_getnext()</a><br />
+<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_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_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>
<td width="33%" class="link-index"><a href="lxml.etree._Entity-class.html#tag">tag</a><br />
<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_etree.ETreeOnlyTestCase-class.html#test_getparent">test_getparent()</a><br />
+<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_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_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.etree._ProcessingInstruction-class.html#tag">tag</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_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 />
+<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_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="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_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_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_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_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_getslice">test_getslice()</a><br />
+<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_negative">test_setslice_step_negative()</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>
<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_objectify.ObjectifyTestCase-class.html#test_getslice_complete">test_getslice_complete()</a><br />
+<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_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_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>
<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator-module.html#tag_or_value">tag_or_value()</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_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_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_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.html.diff.tag_token-class.html">tag_token</a><br />
<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_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 />
+<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_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.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_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 />
+<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_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>
<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_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_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._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>
<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_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_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_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.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_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_etree.ETreeOnlyTestCase-class.html#test_sourceline_element">test_sourceline_element()</a><br />
+<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_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.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_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_iterparse_end">test_sourceline_iterparse_end()</a><br />
+<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_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>
<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_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_start">test_sourceline_iterparse_start()</a><br />
+<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_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>
<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_htmlparser.HtmlParserTestCase-class.html#test_html_element_name_colon">test_html_element_name_colon()</a><br />
+<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_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_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>
<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#tearDown">tearDown()</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_html_element_name_empty">test_html_element_name_empty()</a><br />
+<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_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_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>
<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#tearDown">tearDown()</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_htmlparser.HtmlParserTestCase-class.html#test_html_element_name_quote">test_html_element_name_quote()</a><br />
+<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_standalone">test_standalone()</a><br />
+<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_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_htmlparser.HtmlParserTestCase-class.html#test_html_element_name_space">test_html_element_name_space()</a><br />
+<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_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_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_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_htmlparser.HtmlParserTestCase-class.html#test_html_file_error">test_html_file_error()</a><br />
+<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_objectify.ObjectifyTestCase-class.html#test_str">test_str()</a><br />
+<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_nsclasses.ETreeNamespaceClassesTestCase-class.html#tearDown">tearDown()</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_htmlparser.HtmlParserTestCase-class.html#test_html_iterparse">test_html_iterparse()</a><br />
+<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_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_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_objectify.ObjectifyTestCase-class.html#tearDown">tearDown()</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_html_iterparse_file">test_html_iterparse_file()</a><br />
+<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_etree.ETreeOnlyTestCase-class.html#test_strip_attributes_ns">test_strip_attributes_ns()</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>
<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_htmlparser.HtmlParserTestCase-class.html#test_html_iterparse_start">test_html_iterparse_start()</a><br />
+<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_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_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>
<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_htmlparser.HtmlParserTestCase-class.html#test_html_parser_target_doctype_empty">test_html_parser_target_doctype_empty()</a><br />
+<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_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_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>
<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile.TempXmlFileTestCase-class.html">TempXmlFileTestCase</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_htmlparser.HtmlParserTestCase-class.html#test_html_parser_target_doctype_html">test_html_parser_target_doctype_html()</a><br />
+<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_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_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>
<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_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_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_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_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>
<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_htmlparser.HtmlParserTestCase-class.html#test_html_parser_target_tag">test_html_parser_target_tag()</a><br />
+<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_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_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>
<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_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_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_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_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>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext">test_addnext()</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_subelement_name_colon">test_html_subelement_name_colon()</a><br />
+<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_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_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>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_comment">test_addnext_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_subelement_name_empty">test_html_subelement_name_empty()</a><br />
+<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_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_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_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_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_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_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_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_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_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>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_root">test_addnext_root()</a><br />
+<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_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_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_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>
-<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 />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_root_pi">test_addnext_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-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_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_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>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_root_pi">test_addnext_root_pi()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious">test_addprevious()</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-module.html">test_incremental_xmlfile</a><br />
+<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_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>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious">test_addprevious()</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_index">test_index()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious_comment">test_addprevious_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_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_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>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious_comment">test_addprevious_comment()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious_pi">test_addprevious_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_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_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_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>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious_pi">test_addprevious_pi()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious_root_comment">test_addprevious_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_elementtree._ETreeTestCaseBase-class.html#test_insert_beyond_index">test_insert_beyond_index()</a><br />
+<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_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_etree.ETreeOnlyTestCase-class.html#test_addprevious_root_comment">test_addprevious_root_comment()</a><br />
+<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_elementtree._ETreeTestCaseBase-class.html#test_insert_negative">test_insert_negative()</a><br />
+<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_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_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_elementtree._ETreeTestCaseBase-class.html#test_insert_tail">test_insert_tail()</a><br />
+<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_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_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_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_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_etree.ETreeOnlyTestCase-class.html#test_append_error">test_append_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_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_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>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_append_error">test_append_error()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib">test_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_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_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>
+<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_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_etree.ETreeOnlyTestCase-class.html#test_subelement_name_colon">test_subelement_name_colon()</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>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib">test_attrib()</a><br />
+<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_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_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_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>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_clear">test_attrib_clear()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_deepcopy">test_attrib_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_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_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_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_elementtree._ETreeTestCaseBase-class.html#test_attrib_copy">test_attrib_copy()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_dict">test_attrib_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_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_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_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_deepcopy">test_attrib_deepcopy()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_get">test_attrib_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_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_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>
+<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>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_dict">test_attrib_dict()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_ns_clear">test_attrib_ns_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_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_elementtree._ETreeTestCaseBase-class.html#test_subelement_reference">test_subelement_reference()</a><br />
+<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_get">test_attrib_get()</a><br />
+<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_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_elementtree._ETreeTestCaseBase-class.html#test_subelement_with_attributes">test_subelement_with_attributes()</a><br />
+<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_ns_clear">test_attrib_ns_clear()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_pop_default">test_attrib_pop_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_elementtree._ETreeTestCaseBase-class.html#test_iteration_crash">test_iteration_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_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">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_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.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_default">test_attrib_pop_default()</a><br />
+<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_elementtree._ETreeTestCaseBase-class.html#test_iteration_double">test_iteration_double()</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_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_pop_empty_default">test_attrib_pop_empty_default()</a><br />
+<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_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_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_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_elementtree._ETreeTestCaseBase-class.html#test_attrib_pop_invalid_args">test_attrib_pop_invalid_args()</a><br />
+<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_elementtree._ETreeTestCaseBase-class.html#test_iteration_reversed">test_iteration_reversed()</a><br />
+<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_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_elementtree._ETreeTestCaseBase-class.html#test_attrib_pop_unknown">test_attrib_pop_unknown()</a><br />
+<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_elementtree._ETreeTestCaseBase-class.html#test_iteration_subelement">test_iteration_subelement()</a><br />
+<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_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_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_elementtree._ETreeTestCaseBase-class.html#test_iteration_text_only">test_iteration_text_only()</a><br />
+<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_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-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_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_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_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_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>
<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_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_etree.ETreeOnlyTestCase-class.html#test_iterchildren_reversed">test_iterchildren_reversed()</a><br />
+<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_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_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_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_etree.ETreeOnlyTestCase-class.html#test_iterchildren_tag">test_iterchildren_tag()</a><br />
+<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_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_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_etree.ETreeOnlyTestCase-class.html#test_attribute_has_key">test_attribute_has_key()</a><br />
+<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_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>
+<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_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_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>
<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_items">test_attribute_items()</a><br />
+<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_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_io-module.html">lxml.tests.test_io</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 />
+<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_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_isoschematron-module.html">lxml.tests.test_isoschematron</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 />
+<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_iterdescendants">test_iterdescendants()</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_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_iterator">test_attribute_iterator()</a><br />
+<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_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_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_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_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>
<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_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_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>
<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_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_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>
<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_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_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_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_namespace_roundtrip">test_attribute_namespace_roundtrip()</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_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>
<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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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>
<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_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_dtd.ETreeDtdTestCase-class.html#test_iterparse_file_dtd">test_iterparse_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_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_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_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_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_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_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_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>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail">test_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_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_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_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_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>
<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_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_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_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_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>
<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_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_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_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_tail_set_twice">test_tail_set_twice()</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_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_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_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_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_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_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_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_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_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_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_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_elementtree._ETreeTestCaseBase-class.html#test_text_escape_in">test_text_escape_in()</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_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_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>
<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_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_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_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_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_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_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_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_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>
<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_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_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>
<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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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>
<td width="33%" class="link-index"><a href="lxml.tests.test_threading-module.html">test_threading</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_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_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_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>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tostring">test_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_etree.ETreeOnlyTestCase-class.html#test_c_api">test_c_api()</a><br />
+<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_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_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_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_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>
<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_cdata_errors">test_cdata_errors()</a><br />
+<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_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_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_cdata_parser">test_cdata_parser()</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_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>
<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_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_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_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_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_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_etree.ETreeOnlyTestCase-class.html#test_tostring_method_text_unicode">test_tostring_method_text_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_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_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_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_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>
<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_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_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_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_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_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>
<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_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>
<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_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>
<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_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>
<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_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_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_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>
<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_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_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_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_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_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_etree.ETreeOnlyTestCase-class.html#test_tounicode_element">test_tounicode_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_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_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_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>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode_element_tail">test_tounicode_element_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_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_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_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>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode_none">test_tounicode_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_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_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>
<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_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_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>
<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_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_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_io._IOTestCaseBase-class.html#test_tree_io_latin1">test_tree_io_latin1()</a><br />
<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_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_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_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_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_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_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_tail">test_lookup_tail()</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_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_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_text">test_lookup_text()</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 />
+<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.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>
<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 />
-<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_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_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_objectify.ObjectifyTestCase-class.html#test_type_float">test_type_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_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_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_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_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_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_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_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_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_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_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>
<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_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_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_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_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_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_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_objectify.ObjectifyTestCase-class.html#test_type_str">test_type_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_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_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_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_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_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_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>
<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_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_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_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>
<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_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_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_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>
<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_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_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>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_floatliteral">test_type_str_floatliteral()</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_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>
<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_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_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>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_intliteral">test_type_str_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_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_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>
<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_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_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_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>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_mod_data_elements">test_type_str_mod_data_elements()</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_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.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_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>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_mul">test_type_str_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_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_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>
<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_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_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>
<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_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_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>
<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_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_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>
<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_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_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_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_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_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_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_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_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_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_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_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-module.html">lxml.tests</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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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>
<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_qname_invalid">test_unicode_qname_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_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_elementtree._ETreeTestCaseBase-class.html#test_ns_access2">test_ns_access2()</a><br />
+<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_unicode.UnicodeTestCase-class.html#test_unicode_tag">test_unicode_tag()</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_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_elementtree._ETreeTestCaseBase-class.html#test_ns_attr">test_ns_attr()</a><br />
+<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_unicode.UnicodeTestCase-class.html#test_unicode_tag_invalid">test_unicode_tag_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_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_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_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>
<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_xml">test_unicode_xml()</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_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_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_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_unicode.UnicodeTestCase-class.html#test_unicode_xml_broken">test_unicode_xml_broken()</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_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_elementtree._ETreeTestCaseBase-class.html#test_ns_decl_tostring_default">test_ns_decl_tostring_default()</a><br />
+<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_builder.BuilderTestCase-class.html#test_unknown_type_raises">test_unknown_type_raises()</a><br />
<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_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_elementtree._ETreeTestCaseBase-class.html#test_ns_decl_tostring_element">test_ns_decl_tostring_element()</a><br />
+<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>
<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html#test_variable_result_tree_fragment">test_variable_result_tree_fragment()</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_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_elementtree._ETreeTestCaseBase-class.html#test_ns_decl_tostring_root">test_ns_decl_tostring_root()</a><br />
+<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>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_vars">test_vars()</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_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_elementtree._ETreeTestCaseBase-class.html#test_ns_move">test_ns_move()</a><br />
+<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.ETreeOnlyTestCase-class.html#test_version">test_version()</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_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_elementtree._ETreeTestCaseBase-class.html#test_ns_setting">test_ns_setting()</a><br />
+<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_elementtree._ETreeTestCaseBase-class.html#test_weird_dict_interaction">test_weird_dict_interaction()</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_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_elementtree._ETreeTestCaseBase-class.html#test_ns_tag_parse">test_ns_tag_parse()</a><br />
+<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>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_write">test_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_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_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_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_etree.ETreeWriteTestCase-class.html#test_write">test_write()</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_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_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_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_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_write_Element">test_write_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>
</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 />
-<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">test_object_path()</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_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._XmlFileTestCaseBase-class.html#test_write_Element_repeatedly">test_write_Element_repeatedly()</a><br />
<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_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_objectify.ObjectifyTestCase-class.html#test_object_path_addattr">test_object_path_addattr()</a><br />
+<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_elementtree._ETreeTestCaseBase-class.html#test_write_ElementTreeDoctest">test_write_ElementTreeDoctest()</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_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_objectify.ObjectifyTestCase-class.html#test_object_path_addattr_create">test_object_path_addattr_create()</a><br />
+<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_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_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_objectify.ObjectifyTestCase-class.html#test_object_path_addattr_create_element">test_object_path_addattr_create_element()</a><br />
+<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.ETreeWriteTestCase-class.html#test_write_file">test_write_file()</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_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_objectify.ObjectifyTestCase-class.html#test_object_path_addattr_create_list">test_object_path_addattr_create_list()</a><br />
+<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.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_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_objectify.ObjectifyTestCase-class.html#test_object_path_addattr_element">test_object_path_addattr_element()</a><br />
+<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_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_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_objectify.ObjectifyTestCase-class.html#test_object_path_default_absolute">test_object_path_default_absolute()</a><br />
+<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.ETreeWriteTestCase-class.html#test_write_file_gzipfile_parse">test_write_file_gzipfile_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_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_objectify.ObjectifyTestCase-class.html#test_object_path_default_relative">test_object_path_default_relative()</a><br />
+<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_io._IOTestCaseBase-class.html#test_write_filename">test_write_filename()</a><br />
<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_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_objectify.ObjectifyTestCase-class.html#test_object_path_dot">test_object_path_dot()</a><br />
+<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>
<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_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_objectify.ObjectifyTestCase-class.html#test_object_path_dot_list">test_object_path_dot_list()</a><br />
+<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>
<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_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_objectify.ObjectifyTestCase-class.html#test_object_path_dot_root">test_object_path_dot_root()</a><br />
+<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>
<td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_write_invalid_filename">test_write_invalid_filename()</a><br />
<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_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_objectify.ObjectifyTestCase-class.html#test_object_path_dot_root_list">test_object_path_dot_root_list()</a><br />
+<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_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>
<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_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_objectify.ObjectifyTestCase-class.html#test_object_path_fail">test_object_path_fail()</a><br />
+<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_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>
<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_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_objectify.ObjectifyTestCase-class.html#test_object_path_fail_parse_empty">test_object_path_fail_parse_empty()</a><br />
+<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>
<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_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_objectify.ObjectifyTestCase-class.html#test_object_path_fail_parse_empty_list">test_object_path_fail_parse_empty_list()</a><br />
+<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>
<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_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_objectify.ObjectifyTestCase-class.html#test_object_path_hasattr">test_object_path_hasattr()</a><br />
+<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_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>
<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_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_objectify.ObjectifyTestCase-class.html#test_object_path_index">test_object_path_index()</a><br />
+<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_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>
<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_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_objectify.ObjectifyTestCase-class.html#test_object_path_index_fail_lookup">test_object_path_index_fail_lookup()</a><br />
+<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_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>
<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_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_objectify.ObjectifyTestCase-class.html#test_object_path_index_fail_parse">test_object_path_index_fail_parse()</a><br />
+<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>
<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_deepcopy_namespaces">test_deepcopy_namespaces()</a><br />
+<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_objectify.ObjectifyTestCase-class.html#test_object_path_index_list">test_object_path_index_list()</a><br />
+<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>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_xml_base_attribute">test_xml_base_attribute()</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_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_objectify.ObjectifyTestCase-class.html#test_object_path_list">test_object_path_list()</a><br />
+<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_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>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_xml_base_attribute">test_xml_base_attribute()</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_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_objectify.ObjectifyTestCase-class.html#test_object_path_ns">test_object_path_ns()</a><br />
+<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_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>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_XML_base_url_docinfo">test_XML_base_url_docinfo()</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_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_objectify.ObjectifyTestCase-class.html#test_object_path_ns_list">test_object_path_ns_list()</a><br />
+<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_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_objectify.ObjectifyTestCase-class.html#test_XML_base_url_docinfo">test_XML_base_url_docinfo()</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_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_set">test_object_path_set()</a><br />
+<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_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_etree.ETreeOnlyTestCase-class.html#test_XML_set_base_url_docinfo">test_XML_set_base_url_docinfo()</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_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_set_create">test_object_path_set_create()</a><br />
+<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_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>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_XML_set_base_url_docinfo">test_XML_set_base_url_docinfo()</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_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_set_create_element">test_object_path_set_create_element()</a><br />
+<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_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_etree.ETreeOnlyTestCase-class.html#test_XMLDTDID">test_XMLDTDID()</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_objectify.ObjectifyTestCase-class.html#test_object_path_set_create_list">test_object_path_set_create_list()</a><br />
+<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_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_etree.ETreeOnlyTestCase-class.html#test_XMLDTDID_empty">test_XMLDTDID_empty()</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_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_set_element">test_object_path_set_element()</a><br />
+<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_elementtree._ETreeTestCaseBase-class.html#test_XMLID">test_XMLID()</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_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_syntax">test_object_path_syntax()</a><br />
+<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-module.html">test_xmlschema</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_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_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">test_xmlschema()</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_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-module.html">test_objectify</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_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema">test_xmlschema()</a><br />
+<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_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_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_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_default_attributes">test_xmlschema_default_attributes()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_elementtree_error">test_xmlschema_elementtree_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_del_setslice">test_del_setslice()</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_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>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_elementtree_error">test_xmlschema_elementtree_error()</a><br />
+<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_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_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_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_file">test_xmlschema_file()</a><br />
+<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_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_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_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.ETreeXMLSchemaTestCase-class.html#test_xmlschema_import_file">test_xmlschema_import_file()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_invalid_schema1">test_xmlschema_invalid_schema1()</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">test_delslice()</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_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_invalid_schema1">test_xmlschema_invalid_schema1()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_invalid_schema2">test_xmlschema_invalid_schema2()</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_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_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_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_invalid_schema2">test_xmlschema_invalid_schema2()</a><br />
+<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_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_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_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>
-<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_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_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>
<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_iterparse_fail">test_xmlschema_iterparse_fail()</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_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_elementtree._ETreeTestCaseBase-class.html#test_parse_error_from_file">test_parse_error_from_file()</a><br />
+<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>
<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_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_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>
-<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>
<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_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_elementtree._ETreeTestCaseBase-class.html#test_parse_error_none">test_parse_error_none()</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_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>
<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_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_elementtree._ETreeTestCaseBase-class.html#test_parse_file">test_parse_file()</a><br />
+<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_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>
<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_parse_default_attributes_schema_config">test_xmlschema_parse_default_attributes_schema_config()</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 />
+<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_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>
-<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>
<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_parse_fixed_attributes">test_xmlschema_parse_fixed_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_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>
+<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>
<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html#test_xmlschema_resolvers">test_xmlschema_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_objectify.ObjectifyTestCase-class.html#test_descendant_paths_child">test_descendant_paths_child()</a><br />
+<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_elementtree._ETreeTestCaseBase-class.html#test_parse_file_nonexistent">test_parse_file_nonexistent()</a><br />
+<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>
<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html#test_xmlschema_resolvers_noroot">test_xmlschema_resolvers_noroot()</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_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_elementtree._ETreeTestCaseBase-class.html#test_parse_file_object">test_parse_file_object()</a><br />
+<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_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_xmlschema.ETreeXMLSchemaResolversTestCase-class.html#test_xmlschema_resolvers_root">test_xmlschema_resolvers_root()</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_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_elementtree._ETreeTestCaseBase-class.html#test_parse_file_object_encoding">test_parse_file_object_encoding()</a><br />
+<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_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>
<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_shortcut">test_xmlschema_shortcut()</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 />
-<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_fileobject_unicode">test_parse_fileobject_unicode()</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_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_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_stringio">test_xmlschema_stringio()</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_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_etree.ETreeOnlyTestCase-class.html#test_parse_parser_type_error">test_parse_parser_type_error()</a><br />
+<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>
<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_etree.ETreeOnlyTestCase-class.html#test_docinfo_public">test_docinfo_public()</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_etree.ETreeOnlyTestCase-class.html#test_parse_remove_comments">test_parse_remove_comments()</a><br />
+<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>
<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_class_error">test_xpath_class_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_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_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_etree.ETreeOnlyTestCase-class.html#test_parse_remove_pis">test_parse_remove_pis()</a><br />
+<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>
<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_etree.ETreeOnlyTestCase-class.html#test_doctype_name_only_roundtrip">test_doctype_name_only_roundtrip()</a><br />
+<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_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>
-<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>
<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html#test_xpath_compile_doc">test_xpath_compile_doc()</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_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_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_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_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>
<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html#test_xpath_compile_element">test_xpath_compile_element()</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_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_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_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_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.ETreeXPathClassTestCase-class.html#test_xpath_compile_error">test_xpath_compile_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_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_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_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>
+<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.ETreeETXPathClassTestCase-class.html#test_xpath_compile_ns">test_xpath_compile_ns()</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.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_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>
+<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>
<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html#test_xpath_compile_vars">test_xpath_compile_vars()</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_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_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>
+<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>
<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_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_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>
+<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>
<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_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_etree.ETreeOnlyTestCase-class.html#test_parser_encoding_unknown">test_parser_encoding_unknown()</a><br />
+<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>
<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_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_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>
+<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>
<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_error">test_xpath_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_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_etree.ETreeOnlyTestCase-class.html#test_parser_target_cdata">test_parser_target_cdata()</a><br />
+<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_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>
<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_eval_context_clear">test_xpath_eval_context_clear()</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">test_dtd_invalid()</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_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_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>
<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_eval_context_propagation">test_xpath_eval_context_propagation()</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_dtd_io">test_dtd_io()</a><br />
+<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_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>
-<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_evaluator">test_xpath_evaluator()</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_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_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.ETreeXPathTestCase-class.html#test_xpath_evaluator_element">test_xpath_evaluator_element()</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_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_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_elementtree._ETreeTestCaseBase-class.html#test_parser_target_entity_unknown">test_parser_target_entity_unknown()</a><br />
+<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_evaluator_tree">test_xpath_evaluator_tree()</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_valid">test_dtd_parse_valid()</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_parser_target_error_in_close">test_parser_target_error_in_close()</a><br />
+<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_evaluator_tree_absolute">test_xpath_evaluator_tree_absolute()</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_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_elementtree._ETreeTestCaseBase-class.html#test_parser_target_error_in_end">test_parser_target_error_in_end()</a><br />
+<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_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.ETreeXPathExsltTestCase-class.html#test_xpath_exslt_functions_date">test_xpath_exslt_functions_date()</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_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_parser_target_error_in_start">test_parser_target_error_in_start()</a><br />
+<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_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.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_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_elementtree._ETreeTestCaseBase-class.html#test_parser_target_error_in_start_and_close">test_parser_target_error_in_start_and_close()</a><br />
+<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_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">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_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_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_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_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_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_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_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_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_extensions_error">test_xpath_extensions_error()</a><br />
+<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_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_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_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>
-<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 />
+<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_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_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_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_extensions_nodes">test_xpath_extensions_nodes()</a><br />
+<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_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_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_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_extensions_nodes_append">test_xpath_extensions_nodes_append()</a><br />
+<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_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_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_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>
-<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 />
+<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_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_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_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>
-<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 />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_attribute_parent">test_xpath_list_attribute_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_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_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_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>
-<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 />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_attribute_parent_no_smart_strings">test_xpath_list_attribute_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_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_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_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_attribute_parent">test_xpath_list_attribute_parent()</a><br />
+<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_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_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_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_attribute_parent_no_smart_strings">test_xpath_list_attribute_parent_no_smart_strings()</a><br />
+<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_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_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_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_list_comment">test_xpath_list_comment()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_nothing">test_xpath_list_nothing()</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_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_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_list_elements">test_xpath_list_elements()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_text">test_xpath_list_text()</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_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_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>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_nothing">test_xpath_list_nothing()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_text_parent">test_xpath_list_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_elementtree._ETreeTestCaseBase-class.html#test_element_contains">test_element_contains()</a><br />
+<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_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>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_text">test_xpath_list_text()</a><br />
+<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_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_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_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_list_text_parent">test_xpath_list_text_parent()</a><br />
+<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_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_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_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_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_text_parent_no_smart_strings">test_xpath_list_text_parent_no_smart_strings()</a><br />
+<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_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_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_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_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_unicode_text_parent">test_xpath_list_unicode_text_parent()</a><br />
+<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_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_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_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>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_namespace">test_xpath_namespace()</a><br />
+<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_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_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_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>
-<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 />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_ns_empty">test_xpath_ns_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_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_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_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_ns">test_xpath_ns()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_ns_none">test_xpath_ns_none()</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_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_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_ns_empty">test_xpath_ns_empty()</a><br />
+<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_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_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_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_ns_none">test_xpath_ns_none()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_prefix_error">test_xpath_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_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_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_prefix">test_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_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_number">test_xpath_number()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_string">test_xpath_string()</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_space">test_element_name_space()</a><br />
+<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_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>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_prefix_error">test_xpath_prefix_error()</a><br />
+<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_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_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_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>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_string">test_xpath_string()</a><br />
+<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_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_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_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_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_text_from_other_document">test_xpath_text_from_other_document()</a><br />
+<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_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_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_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_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>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator-module.html">test_xpathevaluator</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_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_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_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_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>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_xsiannotate_ignore_old">test_xsiannotate_ignore_old()</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_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_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_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_xpathevaluator-module.html">test_xpathevaluator</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_xsiannotate_use_old">test_xsiannotate_use_old()</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_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_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_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>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_xsiannotate_ignore_old">test_xsiannotate_ignore_old()</a><br />
+<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_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_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_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_objectify.ObjectifyTestCase-class.html#test_xsiannotate_use_old">test_xsiannotate_use_old()</a><br />
+<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_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_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_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_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>
+<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_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_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_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_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>
+<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_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_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_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-module.html">test_xslt</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_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_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_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_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">test_xslt()</a><br />
+<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_elementtree._ETreeTestCaseBase-class.html#test_element_with_attributes_keywords">test_element_with_attributes_keywords()</a><br />
+<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_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_broken">test_xslt_broken()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_default_parameters">test_xslt_default_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_element_with_attributes_ns">test_element_with_attributes_ns()</a><br />
+<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_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_copy">test_xslt_copy()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_elementtree">test_xslt_document_elementtree()</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_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_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_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_default_parameters">test_xslt_default_parameters()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_error">test_xslt_document_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_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_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_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_document_elementtree">test_xslt_document_elementtree()</a><br />
+<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_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_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_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_document_error">test_xslt_document_error()</a><br />
+<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">test_elementtree()</a><br />
+<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_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>
-<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 />
+<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_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_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_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_document_parse_allow">test_xslt_document_parse_allow()</a><br />
+<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_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_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_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>
-<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 />
+<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_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_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_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>
-<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 />
+<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_getiterator">test_elementtree_getiterator()</a><br />
+<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_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>
-<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 />
+<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_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_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_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>
-<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 />
+<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_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_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_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>
-<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 />
+<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_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_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_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>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_empty">test_xslt_empty()</a><br />
+<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_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_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_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>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_encoding">test_xslt_encoding()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_html_output">test_xslt_html_output()</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_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_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>
-<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 />
+<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_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_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_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>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_html_output">test_xslt_html_output()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_include_from_filelike">test_xslt_include_from_filelike()</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_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_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_include">test_xslt_include()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_input">test_xslt_input()</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_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_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_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_include_from_filelike">test_xslt_include_from_filelike()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_input_none">test_xslt_input_none()</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_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_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_input">test_xslt_input()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_input_partial_doc">test_xslt_input_partial_doc()</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_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_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_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>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_input_none">test_xslt_input_none()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_invalid_stylesheet">test_xslt_invalid_stylesheet()</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_xml">test_encoding_8bit_xml()</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_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>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_input_partial_doc">test_xslt_input_partial_doc()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_message">test_xslt_message()</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_exact">test_encoding_exact()</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_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>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_invalid_stylesheet">test_xslt_invalid_stylesheet()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_message_terminate">test_xslt_message_terminate()</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_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_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_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>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_message">test_xslt_message()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_move_result">test_xslt_move_result()</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">test_encoding_tostring()</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_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_message_terminate">test_xslt_message_terminate()</a><br />
+<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_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_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_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_move_result">test_xslt_move_result()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_multiple_transforms">test_xslt_multiple_transforms()</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_sub">test_encoding_tostring_sub()</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_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_multiple_parameters">test_xslt_multiple_parameters()</a><br />
+<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_tostring_sub_tail">test_encoding_tostring_sub_tail()</a><br />
+<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_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_multiple_transforms">test_xslt_multiple_transforms()</a><br />
+<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_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_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_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>
-<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 />
+<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_encoding_tostring_utf16">test_encoding_tostring_utf16()</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_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>
-<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 />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_parameter_xpath_object">test_xslt_parameter_xpath_object()</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_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_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>
-<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 />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_parameters">test_xslt_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_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_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_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>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_parameter_xpath_object">test_xslt_parameter_xpath_object()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi">test_xslt_pi()</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_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_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>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_parameters">test_xslt_parameters()</a><br />
+<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_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_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_shortcut">test_relaxng_shortcut()</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">test_xslt_pi()</a><br />
+<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_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_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.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>
-<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 />
+<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_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_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_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>
-<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 />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_get_all">test_xslt_pi_get_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_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_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_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>
-<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 />
+<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_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_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_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>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_get_all">test_xslt_pi_get_all()</a><br />
+<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_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_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_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>
-<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 />
+<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_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_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_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_pi_get_unknown">test_xslt_pi_get_unknown()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_set_replace">test_xslt_pi_set_replace()</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_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_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_pi_set_new">test_xslt_pi_set_new()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_repeat_transform">test_xslt_repeat_transform()</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_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_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_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_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_set_replace">test_xslt_pi_set_replace()</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_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_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_xslt.ETreeXSLTTestCase-class.html#test_xslt_repeat_transform">test_xslt_repeat_transform()</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_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_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.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_resolver_url_building">test_xslt_resolver_url_building()</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_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_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_etree.ETreeOnlyTestCase-class.html#test_resolve_error">test_resolve_error()</a><br />
+<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_xslt.Py3XSLTTestCase-class.html#test_xslt_result_bytearray">test_xslt_result_bytearray()</a><br />
<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">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_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_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.tests.test_xslt.Py3XSLTTestCase-class.html#test_xslt_result_bytes">test_xslt_result_bytes()</a><br />
<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_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_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_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.tests.test_xslt.Py3XSLTTestCase-class.html#test_xslt_result_memoryview">test_xslt_result_memoryview()</a><br />
<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_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">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_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_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.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_shortcut">test_xslt_shortcut()</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_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_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_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_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="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_string_parameters">test_xslt_string_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_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_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_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">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.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_unicode">test_xslt_unicode()</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_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_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_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_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.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_unicode_standalone">test_xslt_unicode_standalone()</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_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_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_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_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.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_utf8">test_xslt_utf8()</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_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_sax.ETreeSaxTestCase-class.html#test_sax_to_pulldom">test_sax_to_pulldom()</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_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-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_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_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_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_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.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_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_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_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_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.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_sax.ETreeSaxTestCase-class.html#test_etree_sax_redefine_ns">test_etree_sax_redefine_ns()</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_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_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.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_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_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_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_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.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_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_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_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="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_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_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_abstract">test_schematron_abstract()</a><br />
+<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.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_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_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_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.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_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_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_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.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_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_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_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.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_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_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_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.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">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_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_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.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 />
+<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_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_empty_pattern">test_schematron_empty_pattern()</a><br />
+<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.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_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_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.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_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_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_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_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_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">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_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_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_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_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_from_tree">test_schematron_from_tree()</a><br />
+<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_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_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_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_invalid_args">test_schematron_invalid_args()</a><br />
+<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_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_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_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_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_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_etree-module.html#this_dir">this_dir</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_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_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_invalid_schema_empty">test_schematron_invalid_schema_empty()</a><br />
+<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_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_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_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_schematron.ETreeSchematronTestCase-class.html#test_schematron_invalid_schema_empty">test_schematron_invalid_schema_empty()</a><br />
+<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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_phases_kwarg">test_schematron_phases_kwarg()</a><br />
+<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_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_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_relaxng_embedded">test_schematron_relaxng_embedded()</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_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.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_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_result_report">test_schematron_result_report()</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_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_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.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_store_schematron">test_schematron_store_schematron()</a><br />
+<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_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.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.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_store_xslt">test_schematron_store_xslt()</a><br />
+<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_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.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_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_validate">test_schematron_validate()</a><br />
+<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.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_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_xmlschema_embedded">test_schematron_xmlschema_embedded()</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_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.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_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_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_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_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.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_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_elementtree._ETreeTestCaseBase-class.html#test_set_text">test_set_text()</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_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_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_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_elementtree._ETreeTestCaseBase-class.html#test_set_text2">test_set_text2()</a><br />
+<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_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_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_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_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.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_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_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_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_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.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_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_error_position">test_feed_parser_error_position()</a><br />
+<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_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.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_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_objectify.ObjectifyTestCase-class.html#test_setattr_nonunicode">test_setattr_nonunicode()</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_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.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_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_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.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 />
+<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.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_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_setitem2">test_setitem2()</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_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.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_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_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_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_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.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_findall_different_nsmaps">test_findall_different_nsmaps()</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_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="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_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_elementtree._ETreeTestCaseBase-class.html#test_setitem_replace">test_setitem_replace()</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_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.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_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_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_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-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_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_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.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_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_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.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_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.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_elementtree._ETreeTestCaseBase-class.html#test_fromstringlist">test_fromstringlist()</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">test_setslice_all()</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"><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_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_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_empty">test_setslice_all_empty()</a><br />
+<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.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_fromstringlist_single">test_fromstringlist_single()</a><br />
+<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_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>
-<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>
<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_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">test_setslice_all_replace()</a><br />
+<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_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>
<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_elementtree._ETreeTestCaseBase-class.html#test_getiterator_empty">test_getiterator_empty()</a><br />
+<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_elementtree._ETreeTestCaseBase-class.html#test_setslice_all_replace_reversed">test_setslice_all_replace_reversed()</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>
<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_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_ns1">test_setslice_all_replace_reversed_ns1()</a><br />
+<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_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.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_getiterator_filter_all">test_getiterator_filter_all()</a><br />
+<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_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_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>
<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_getiterator_filter_all_comment_pi">test_getiterator_filter_all_comment_pi()</a><br />
+<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_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_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>
<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_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_objectify.ObjectifyTestCase-class.html#test_setslice_elements">test_setslice_elements()</a><br />
+<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_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.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_getiterator_filter_element">test_getiterator_filter_element()</a><br />
+<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_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_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.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_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_entities">test_getiterator_filter_entities()</a><br />
+<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_empty">test_setslice_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_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.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_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_local_name">test_getiterator_filter_local_name()</a><br />
+<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_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>
+<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>
<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_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_multiple">test_getiterator_filter_multiple()</a><br />
+<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_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>
<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_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 />
+<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_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"> </td>
</tr>
<tr>
-<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 />
+<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_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"> </td>
</tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#WAR_CATALOG_PI">WAR_CATALOG_PI</a><br />
<span class="index-where">(in <a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#WAR_SPACE_VALUE">WAR_SPACE_VALUE</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#WAR_UNDECLARED_ENTITY">WAR_UNDECLARED_ENTITY</a><br />
<span class="index-where">(in <a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.html.clean-module.html#word_break_html">word_break_html()</a><br />
<span class="index-where">(in <a href="lxml.html.clean-module.html">lxml.html.clean</a>)</span></td>
<tr>
<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#WAR_ENTITY_REDEFINED">WAR_ENTITY_REDEFINED</a><br />
<span class="index-where">(in <a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#WAR_UNDECLARED_ENTITY">WAR_UNDECLARED_ENTITY</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#WAR_UNKNOWN_VERSION">WAR_UNKNOWN_VERSION</a><br />
<span class="index-where">(in <a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadPipelineTestCase.Worker-class.html">Worker</a><br />
<span class="index-where">(in <a href="lxml.tests.test_threading.ThreadPipelineTestCase-class.html">ThreadPipelineTestCase</a>)</span></td>
<tr>
<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#WAR_LANG_VALUE">WAR_LANG_VALUE</a><br />
<span class="index-where">(in <a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#WAR_UNKNOWN_VERSION">WAR_UNKNOWN_VERSION</a><br />
-<span class="index-where">(in <a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorLevels-class.html#WARNING">WARNING</a><br />
+<span class="index-where">(in <a href="lxml.etree.ErrorLevels-class.html">ErrorLevels</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.etree._ElementTree-class.html#write">write()</a><br />
<span class="index-where">(in <a href="lxml.etree._ElementTree-class.html" onclick="show_private();">_ElementTree</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#WAR_NS_COLUMN">WAR_NS_COLUMN</a><br />
<span class="index-where">(in <a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorLevels-class.html#WARNING">WARNING</a><br />
-<span class="index-where">(in <a href="lxml.etree.ErrorLevels-class.html">ErrorLevels</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.dummy_http_server.WebServer-class.html">WebServer</a><br />
+<span class="index-where">(in <a href="lxml.tests.dummy_http_server-module.html">lxml.tests.dummy_http_server</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.etree._ElementTree-class.html#write_c14n">write_c14n()</a><br />
<span class="index-where">(in <a href="lxml.etree._ElementTree-class.html" onclick="show_private();">_ElementTree</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#WAR_NS_URI">WAR_NS_URI</a><br />
<span class="index-where">(in <a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.clean.Cleaner-class.html#whitelist_tags">whitelist_tags</a><br />
-<span class="index-where">(in <a href="lxml.html.clean.Cleaner-class.html">Cleaner</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.dummy_http_server-module.html#webserver">webserver()</a><br />
+<span class="index-where">(in <a href="lxml.tests.dummy_http_server-module.html">lxml.tests.dummy_http_server</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.common_imports-module.html#write_to_file">write_to_file()</a><br />
<span class="index-where">(in <a href="lxml.tests.common_imports-module.html">lxml.tests.common_imports</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#WAR_NS_URI_RELATIVE">WAR_NS_URI_RELATIVE</a><br />
<span class="index-where">(in <a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.clean-module.html#word_break">word_break()</a><br />
-<span class="index-where">(in <a href="lxml.html.clean-module.html">lxml.html.clean</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.clean.Cleaner-class.html#whitelist_tags">whitelist_tags</a><br />
+<span class="index-where">(in <a href="lxml.html.clean.Cleaner-class.html">Cleaner</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.etree.ErrorDomains-class.html#WRITER">WRITER</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.etree.ErrorTypes-class.html#WAR_SPACE_VALUE">WAR_SPACE_VALUE</a><br />
+<span class="index-where">(in <a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.clean-module.html#word_break">word_break()</a><br />
+<span class="index-where">(in <a href="lxml.html.clean-module.html">lxml.html.clean</a>)</span></td>
+<td width="33%" class="link-index"> </td>
+</tr>
</table>
</td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<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.objectify-module.html#__checkBool">__checkBool()</a><br />
-<span class="index-where">(in <a href="lxml.objectify-module.html">lxml.objectify</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.dummy_http_server.HTTPRequestCollector-class.html#__call__">__call__()</a><br />
+<span class="index-where">(in <a href="lxml.tests.dummy_http_server.HTTPRequestCollector-class.html">HTTPRequestCollector</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.etree._ElementIterator-class.html#__new__">__new__()</a><br />
<span class="index-where">(in <a href="lxml.etree._ElementIterator-class.html" onclick="show_private();">_ElementIterator</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.sax.ElementTreeProducer-class.html#_build_qname">_build_qname()</a><br />
<span class="index-where">(in <a href="lxml.sax.ElementTreeProducer-class.html">ElementTreeProducer</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__complex__">__complex__()</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-module.html#__checkBool">__checkBool()</a><br />
+<span class="index-where">(in <a href="lxml.objectify-module.html">lxml.objectify</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.etree._ElementMatchIterator-class.html#__new__">__new__()</a><br />
<span class="index-where">(in <a href="lxml.etree._ElementMatchIterator-class.html" onclick="show_private();">_ElementMatchIterator</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#_buildElementClass">_buildElementClass()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.objectify.StringElement-class.html#__complex__">__complex__()</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.NumberElement-class.html#__complex__">__complex__()</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._ElementTagMatcher-class.html#__new__">__new__()</a><br />
<span class="index-where">(in <a href="lxml.etree._ElementTagMatcher-class.html" onclick="show_private();">_ElementTagMatcher</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.sax.ElementTreeContentHandler-class.html#_buildTag">_buildTag()</a><br />
<span class="index-where">(in <a href="lxml.sax.ElementTreeContentHandler-class.html">ElementTreeContentHandler</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.etree._Attrib-class.html#__contains__">__contains__()</a><br />
-<span class="index-where">(in <a href="lxml.etree._Attrib-class.html" onclick="show_private();">_Attrib</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.objectify.StringElement-class.html#__complex__">__complex__()</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.etree._ElementTree-class.html#__new__">__new__()</a><br />
<span class="index-where">(in <a href="lxml.etree._ElementTree-class.html" onclick="show_private();">_ElementTree</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.common_imports-module.html#_bytes">_bytes()</a><br />
<span class="index-where">(in <a href="lxml.tests.common_imports-module.html">lxml.tests.common_imports</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#__contains__">__contains__()</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.etree._Attrib-class.html#__contains__">__contains__()</a><br />
+<span class="index-where">(in <a href="lxml.etree._Attrib-class.html" onclick="show_private();">_Attrib</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.etree._ElementUnicodeResult-class.html#__new__">__new__()</a><br />
<span class="index-where">(in <a href="lxml.etree._ElementUnicodeResult-class.html" onclick="show_private();">_ElementUnicodeResult</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.html.formfill-module.html#_check">_check()</a><br />
<span class="index-where">(in <a href="lxml.html.formfill-module.html">lxml.html.formfill</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.etree._IDDict-class.html#__contains__">__contains__()</a><br />
-<span class="index-where">(in <a href="lxml.etree._IDDict-class.html" onclick="show_private();">_IDDict</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#__contains__">__contains__()</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.etree._Entity-class.html#__new__">__new__()</a><br />
<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#_check_element">_check_element()</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._ListErrorLog-class.html#__contains__">__contains__()</a><br />
-<span class="index-where">(in <a href="lxml.etree._ListErrorLog-class.html" onclick="show_private();">_ListErrorLog</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._IDDict-class.html#__contains__">__contains__()</a><br />
+<span class="index-where">(in <a href="lxml.etree._IDDict-class.html" onclick="show_private();">_IDDict</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.etree._ErrorLog-class.html#__new__">__new__()</a><br />
<span class="index-where">(in <a href="lxml.etree._ErrorLog-class.html" onclick="show_private();">_ErrorLog</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_check_element_tree">_check_element_tree()</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.FieldsDict-class.html#__contains__">__contains__()</a><br />
-<span class="index-where">(in <a href="lxml.html.FieldsDict-class.html">FieldsDict</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._ListErrorLog-class.html#__contains__">__contains__()</a><br />
+<span class="index-where">(in <a href="lxml.etree._ListErrorLog-class.html" onclick="show_private();">_ListErrorLog</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.etree._FeedParser-class.html#__new__">__new__()</a><br />
<span class="index-where">(in <a href="lxml.etree._FeedParser-class.html" onclick="show_private();">_FeedParser</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_check_mapping">_check_mapping()</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.InputGetter-class.html#__contains__">__contains__()</a><br />
-<span class="index-where">(in <a href="lxml.html.InputGetter-class.html">InputGetter</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.FieldsDict-class.html#__contains__">__contains__()</a><br />
+<span class="index-where">(in <a href="lxml.html.FieldsDict-class.html">FieldsDict</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.etree._IDDict-class.html#__new__">__new__()</a><br />
<span class="index-where">(in <a href="lxml.etree._IDDict-class.html" onclick="show_private();">_IDDict</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_check_string">_check_string()</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.XSLT-class.html#__copy__">__copy__()</a><br />
-<span class="index-where">(in <a href="lxml.etree.XSLT-class.html">XSLT</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.InputGetter-class.html#__contains__">__contains__()</a><br />
+<span class="index-where">(in <a href="lxml.html.InputGetter-class.html">InputGetter</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.etree._ListErrorLog-class.html#__new__">__new__()</a><br />
<span class="index-where">(in <a href="lxml.etree._ListErrorLog-class.html" onclick="show_private();">_ListErrorLog</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.html.InputElement-class.html#_checked__get">_checked__get()</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.etree._Attrib-class.html#__copy__">__copy__()</a><br />
-<span class="index-where">(in <a href="lxml.etree._Attrib-class.html" onclick="show_private();">_Attrib</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.XSLT-class.html#__copy__">__copy__()</a><br />
+<span class="index-where">(in <a href="lxml.etree.XSLT-class.html">XSLT</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.etree._LogEntry-class.html#__new__">__new__()</a><br />
<span class="index-where">(in <a href="lxml.etree._LogEntry-class.html" onclick="show_private();">_LogEntry</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.html.InputElement-class.html#_checked__set">_checked__set()</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.etree._Element-class.html#__copy__">__copy__()</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.etree._Attrib-class.html#__copy__">__copy__()</a><br />
+<span class="index-where">(in <a href="lxml.etree._Attrib-class.html" onclick="show_private();">_Attrib</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.etree._ProcessingInstruction-class.html#__new__">__new__()</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_etree.ETreeOnlyTestCase-class.html#_checkIDDict">_checkIDDict()</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._ElementTree-class.html#__copy__">__copy__()</a><br />
-<span class="index-where">(in <a href="lxml.etree._ElementTree-class.html" onclick="show_private();">_ElementTree</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#__copy__">__copy__()</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.etree._RotatingErrorLog-class.html#__new__">__new__()</a><br />
<span class="index-where">(in <a href="lxml.etree._RotatingErrorLog-class.html" onclick="show_private();">_RotatingErrorLog</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.html-module.html#_class_xpath">_class_xpath</a><br />
<span class="index-where">(in <a href="lxml.html-module.html">lxml.html</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.etree.XSLT-class.html#__deepcopy__">__deepcopy__()</a><br />
-<span class="index-where">(in <a href="lxml.etree.XSLT-class.html">XSLT</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._ElementTree-class.html#__copy__">__copy__()</a><br />
+<span class="index-where">(in <a href="lxml.etree._ElementTree-class.html" onclick="show_private();">_ElementTree</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.etree._SaxParserTarget-class.html#__new__">__new__()</a><br />
<span class="index-where">(in <a href="lxml.etree._SaxParserTarget-class.html" onclick="show_private();">_SaxParserTarget</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.etree._Validator-class.html#_clear_error_log">_clear_error_log()</a><br />
<span class="index-where">(in <a href="lxml.etree._Validator-class.html" onclick="show_private();">_Validator</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.etree._Attrib-class.html#__deepcopy__">__deepcopy__()</a><br />
-<span class="index-where">(in <a href="lxml.etree._Attrib-class.html" onclick="show_private();">_Attrib</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.XSLT-class.html#__deepcopy__">__deepcopy__()</a><br />
+<span class="index-where">(in <a href="lxml.etree.XSLT-class.html">XSLT</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.etree._Validator-class.html#__new__">__new__()</a><br />
<span class="index-where">(in <a href="lxml.etree._Validator-class.html" onclick="show_private();">_Validator</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.html-module.html#_collect_string_content">_collect_string_content</a><br />
<span class="index-where">(in <a href="lxml.html-module.html">lxml.html</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#__deepcopy__">__deepcopy__()</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.etree._Attrib-class.html#__deepcopy__">__deepcopy__()</a><br />
+<span class="index-where">(in <a href="lxml.etree._Attrib-class.html" onclick="show_private();">_Attrib</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.etree._XPathEvaluatorBase-class.html#__new__">__new__()</a><br />
<span class="index-where">(in <a href="lxml.etree._XPathEvaluatorBase-class.html" onclick="show_private();">_XPathEvaluatorBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.etree._Comment-class.html">_Comment</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._ElementTree-class.html#__deepcopy__">__deepcopy__()</a><br />
-<span class="index-where">(in <a href="lxml.etree._ElementTree-class.html" onclick="show_private();">_ElementTree</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#__deepcopy__">__deepcopy__()</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.etree._XSLTProcessingInstruction-class.html#__new__">__new__()</a><br />
<span class="index-where">(in <a href="lxml.etree._XSLTProcessingInstruction-class.html" onclick="show_private();">_XSLTProcessingInstruction</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.isoschematron.Schematron-class.html#_compile">_compile</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.objectify.ObjectifiedElement-class.html#__delattr__">__delattr__()</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._ElementTree-class.html#__deepcopy__">__deepcopy__()</a><br />
+<span class="index-where">(in <a href="lxml.etree._ElementTree-class.html" onclick="show_private();">_ElementTree</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.etree._XSLTResultTree-class.html#__new__">__new__()</a><br />
<span class="index-where">(in <a href="lxml.etree._XSLTResultTree-class.html" onclick="show_private();">_XSLTResultTree</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.html.clean-module.html#_conditional_comment_re">_conditional_comment_re</a><br />
<span class="index-where">(in <a href="lxml.html.clean-module.html">lxml.html.clean</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.etree._Attrib-class.html#__delitem__">__delitem__()</a><br />
-<span class="index-where">(in <a href="lxml.etree._Attrib-class.html" onclick="show_private();">_Attrib</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.objectify.ObjectifiedElement-class.html#__delattr__">__delattr__()</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.iterparse-class.html#__new__">__new__()</a><br />
<span class="index-where">(in <a href="lxml.etree.iterparse-class.html">iterparse</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.html.diff-module.html#_contains_block_level_tag">_contains_block_level_tag()</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.etree._Element-class.html#__delitem__">__delitem__()</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.etree._Attrib-class.html#__delitem__">__delitem__()</a><br />
+<span class="index-where">(in <a href="lxml.etree._Attrib-class.html" onclick="show_private();">_Attrib</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.etree.iterwalk-class.html#__new__">__new__()</a><br />
<span class="index-where">(in <a href="lxml.etree.iterwalk-class.html">iterwalk</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.html.soupparser-module.html#_convert_children">_convert_children()</a><br />
<span class="index-where">(in <a href="lxml.html.soupparser-module.html">lxml.html.soupparser</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.html.FieldsDict-class.html#__delitem__">__delitem__()</a><br />
-<span class="index-where">(in <a href="lxml.html.FieldsDict-class.html">FieldsDict</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#__delitem__">__delitem__()</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.etree.xmlfile-class.html#__new__">__new__()</a><br />
<span class="index-where">(in <a href="lxml.etree.xmlfile-class.html" onclick="show_private();">xmlfile</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.html.soupparser-module.html#_convert_tree">_convert_tree()</a><br />
<span class="index-where">(in <a href="lxml.html.soupparser-module.html">lxml.html.soupparser</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.objectify.ObjectifiedElement-class.html#__delitem__">__delitem__()</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.html.FieldsDict-class.html#__delitem__">__delitem__()</a><br />
+<span class="index-where">(in <a href="lxml.html.FieldsDict-class.html">FieldsDict</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.html.diff.tag_token-class.html#__new__">__new__()</a><br />
<span class="index-where">(in <a href="lxml.html.diff.tag_token-class.html" onclick="show_private();">tag_token</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.html-module.html#_css_import_re">_css_import_re</a><br />
<span class="index-where">(in <a href="lxml.html-module.html">lxml.html</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__div__">__div__()</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.ObjectifiedElement-class.html#__delitem__">__delitem__()</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.html.diff.token-class.html#__new__">__new__()</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.html.clean-module.html#_css_import_re">_css_import_re</a><br />
<span class="index-where">(in <a href="lxml.html.clean-module.html">lxml.html.clean</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.html.ElementSoup-module.html#__doc__">__doc__</a><br />
-<span class="index-where">(in <a href="lxml.html.ElementSoup-module.html">lxml.html.ElementSoup</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__div__">__div__()</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#__new__">__new__()</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.html.clean-module.html#_css_javascript_re">_css_javascript_re</a><br />
<span class="index-where">(in <a href="lxml.html.clean-module.html">lxml.html.clean</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.html.soupparser-module.html#__doc__">__doc__</a><br />
-<span class="index-where">(in <a href="lxml.html.soupparser-module.html">lxml.html.soupparser</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.ElementSoup-module.html#__doc__">__doc__</a><br />
+<span class="index-where">(in <a href="lxml.html.ElementSoup-module.html">lxml.html.ElementSoup</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.objectify.ElementMaker-class.html#__new__">__new__()</a><br />
<span class="index-where">(in <a href="lxml.objectify.ElementMaker-class.html">ElementMaker</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.html-module.html#_css_url_re">_css_url_re</a><br />
<span class="index-where">(in <a href="lxml.html-module.html">lxml.html</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.etree.xmlfile-class.html#__enter__">__enter__()</a><br />
-<span class="index-where">(in <a href="lxml.etree.xmlfile-class.html" onclick="show_private();">xmlfile</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.soupparser-module.html#__doc__">__doc__</a><br />
+<span class="index-where">(in <a href="lxml.html.soupparser-module.html">lxml.html.soupparser</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.objectify.FloatElement-class.html#__new__">__new__()</a><br />
<span class="index-where">(in <a href="lxml.objectify.FloatElement-class.html">FloatElement</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.html.HtmlElementClassLookup-class.html#_default_element_classes">_default_element_classes</a><br />
<span class="index-where">(in <a href="lxml.html.HtmlElementClassLookup-class.html">HtmlElementClassLookup</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.etree.QName-class.html#__eq__">__eq__()</a><br />
-<span class="index-where">(in <a href="lxml.etree.QName-class.html">QName</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.xmlfile-class.html#__enter__">__enter__()</a><br />
+<span class="index-where">(in <a href="lxml.etree.xmlfile-class.html" onclick="show_private();">xmlfile</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.objectify.IntElement-class.html#__new__">__new__()</a><br />
<span class="index-where">(in <a href="lxml.objectify.IntElement-class.html">IntElement</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.etree._Document-class.html">_Document</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._Attrib-class.html#__eq__">__eq__()</a><br />
-<span class="index-where">(in <a href="lxml.etree._Attrib-class.html" onclick="show_private();">_Attrib</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.QName-class.html#__eq__">__eq__()</a><br />
+<span class="index-where">(in <a href="lxml.etree.QName-class.html">QName</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.objectify.LongElement-class.html#__new__">__new__()</a><br />
<span class="index-where">(in <a href="lxml.objectify.LongElement-class.html">LongElement</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.isoschematron.Schematron-class.html#_domain">_domain</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.objectify.BoolElement-class.html#__eq__">__eq__()</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.etree._Attrib-class.html#__eq__">__eq__()</a><br />
+<span class="index-where">(in <a href="lxml.etree._Attrib-class.html" onclick="show_private();">_Attrib</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.objectify.NoneElement-class.html#__new__">__new__()</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.etree._DomainErrorLog-class.html">_DomainErrorLog</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.objectify.NoneElement-class.html#__eq__">__eq__()</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.objectify.BoolElement-class.html#__eq__">__eq__()</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.objectify.NumberElement-class.html#__new__">__new__()</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._Element-class.html">_Element</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.objectify.NumberElement-class.html#__eq__">__eq__()</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.NoneElement-class.html#__eq__">__eq__()</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.objectify.ObjectPath-class.html#__new__">__new__()</a><br />
<span class="index-where">(in <a href="lxml.objectify.ObjectPath-class.html">ObjectPath</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.etree._ElementIterator-class.html">_ElementIterator</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.objectify.StringElement-class.html#__eq__">__eq__()</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.NumberElement-class.html#__eq__">__eq__()</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.ObjectifiedDataElement-class.html#__new__">__new__()</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.etree._ElementMatchIterator-class.html">_ElementMatchIterator</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._ErrorLog-class.html#__exit__">__exit__()</a><br />
-<span class="index-where">(in <a href="lxml.etree._ErrorLog-class.html" onclick="show_private();">_ErrorLog</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.objectify.StringElement-class.html#__eq__">__eq__()</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.ObjectifiedElement-class.html#__new__">__new__()</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._ElementStringResult-class.html">_ElementStringResult</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.xmlfile-class.html#__exit__">__exit__()</a><br />
-<span class="index-where">(in <a href="lxml.etree.xmlfile-class.html" onclick="show_private();">xmlfile</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._ErrorLog-class.html#__exit__">__exit__()</a><br />
+<span class="index-where">(in <a href="lxml.etree._ErrorLog-class.html" onclick="show_private();">_ErrorLog</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.objectify.ObjectifyElementClassLookup-class.html#__new__">__new__()</a><br />
<span class="index-where">(in <a href="lxml.objectify.ObjectifyElementClassLookup-class.html">ObjectifyElementClassLookup</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.etree._ElementTagMatcher-class.html">_ElementTagMatcher</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.objectify.NumberElement-class.html#__float__">__float__()</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.xmlfile-class.html#__exit__">__exit__()</a><br />
+<span class="index-where">(in <a href="lxml.etree.xmlfile-class.html" onclick="show_private();">xmlfile</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.objectify.PyType-class.html#__new__">__new__()</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.etree._ElementTree-class.html">_ElementTree</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.objectify.StringElement-class.html#__float__">__float__()</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.NumberElement-class.html#__float__">__float__()</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.StringElement-class.html#__new__">__new__()</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.etree._ElementUnicodeResult-class.html">_ElementUnicodeResult</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.QName-class.html#__ge__">__ge__()</a><br />
-<span class="index-where">(in <a href="lxml.etree.QName-class.html">QName</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.objectify.StringElement-class.html#__float__">__float__()</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.etree.ElementDepthFirstIterator-class.html#__next__">__next__()</a><br />
<span class="index-where">(in <a href="lxml.etree.ElementDepthFirstIterator-class.html" onclick="show_private();">ElementDepthFirstIterator</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.html.diff-module.html#_end_body_re">_end_body_re</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.etree._Attrib-class.html#__ge__">__ge__()</a><br />
-<span class="index-where">(in <a href="lxml.etree._Attrib-class.html" onclick="show_private();">_Attrib</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.QName-class.html#__ge__">__ge__()</a><br />
+<span class="index-where">(in <a href="lxml.etree.QName-class.html">QName</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.etree.ElementTextIterator-class.html#__next__">__next__()</a><br />
<span class="index-where">(in <a href="lxml.etree.ElementTextIterator-class.html" onclick="show_private();">ElementTextIterator</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.etree._Entity-class.html">_Entity</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.objectify.BoolElement-class.html#__ge__">__ge__()</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.etree._Attrib-class.html#__ge__">__ge__()</a><br />
+<span class="index-where">(in <a href="lxml.etree._Attrib-class.html" onclick="show_private();">_Attrib</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.etree._ElementIterator-class.html#__next__">__next__()</a><br />
<span class="index-where">(in <a href="lxml.etree._ElementIterator-class.html" onclick="show_private();">_ElementIterator</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.isoschematron.Schematron-class.html#_error_type">_error_type</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.objectify.NoneElement-class.html#__ge__">__ge__()</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.objectify.BoolElement-class.html#__ge__">__ge__()</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.etree._ElementMatchIterator-class.html#__next__">__next__()</a><br />
<span class="index-where">(in <a href="lxml.etree._ElementMatchIterator-class.html" onclick="show_private();">_ElementMatchIterator</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.etree._ErrorLog-class.html">_ErrorLog</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.objectify.NumberElement-class.html#__ge__">__ge__()</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.NoneElement-class.html#__ge__">__ge__()</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.etree.iterparse-class.html#__next__">__next__()</a><br />
<span class="index-where">(in <a href="lxml.etree.iterparse-class.html">iterparse</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html">_ETreeTestCaseBase</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.objectify.StringElement-class.html#__ge__">__ge__()</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.NumberElement-class.html#__ge__">__ge__()</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.iterwalk-class.html#__next__">__next__()</a><br />
<span class="index-where">(in <a href="lxml.etree.iterwalk-class.html">iterwalk</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.isoschematron.Schematron-class.html#_expand">_expand</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.builder.ElementMaker-class.html#__getattr__">__getattr__()</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.StringElement-class.html#__ge__">__ge__()</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.etree._Attrib-class.html#__nonzero__">__nonzero__()</a><br />
<span class="index-where">(in <a href="lxml.etree._Attrib-class.html" onclick="show_private();">_Attrib</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.isoschematron.Schematron-class.html#_extract">_extract()</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.objectify.ElementMaker-class.html#__getattr__">__getattr__()</a><br />
-<span class="index-where">(in <a href="lxml.objectify.ElementMaker-class.html">ElementMaker</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.builder.ElementMaker-class.html#__getattr__">__getattr__()</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.etree._Element-class.html#__nonzero__">__nonzero__()</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#_extract_rng">_extract_rng</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.objectify.ObjectifiedElement-class.html#__getattr__">__getattr__()</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.objectify.ElementMaker-class.html#__getattr__">__getattr__()</a><br />
+<span class="index-where">(in <a href="lxml.objectify.ElementMaker-class.html">ElementMaker</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.etree._ListErrorLog-class.html#__nonzero__">__nonzero__()</a><br />
<span class="index-where">(in <a href="lxml.etree._ListErrorLog-class.html" onclick="show_private();">_ListErrorLog</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.isoschematron.Schematron-class.html#_extract_xsd">_extract_xsd</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.objectify.ElementMaker-class.html#__getattribute__">__getattribute__()</a><br />
-<span class="index-where">(in <a href="lxml.objectify.ElementMaker-class.html">ElementMaker</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.objectify.ObjectifiedElement-class.html#__getattr__">__getattr__()</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.objectify.BoolElement-class.html#__nonzero__">__nonzero__()</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.etree._FeedParser-class.html">_FeedParser</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.objectify.ObjectifiedElement-class.html#__getattribute__">__getattribute__()</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.objectify.ElementMaker-class.html#__getattribute__">__getattribute__()</a><br />
+<span class="index-where">(in <a href="lxml.objectify.ElementMaker-class.html">ElementMaker</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.objectify.NoneElement-class.html#__nonzero__">__nonzero__()</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.html.FormElement-class.html#_fields__get">_fields__get()</a><br />
<span class="index-where">(in <a href="lxml.html.FormElement-class.html">FormElement</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.etree._Attrib-class.html#__getitem__">__getitem__()</a><br />
-<span class="index-where">(in <a href="lxml.etree._Attrib-class.html" onclick="show_private();">_Attrib</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.objectify.ObjectifiedElement-class.html#__getattribute__">__getattribute__()</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.objectify.NumberElement-class.html#__nonzero__">__nonzero__()</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.html.FormElement-class.html#_fields__set">_fields__set()</a><br />
<span class="index-where">(in <a href="lxml.html.FormElement-class.html">FormElement</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#__getitem__">__getitem__()</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.etree._Attrib-class.html#__getitem__">__getitem__()</a><br />
+<span class="index-where">(in <a href="lxml.etree._Attrib-class.html" onclick="show_private();">_Attrib</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.objectify.StringElement-class.html#__nonzero__">__nonzero__()</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_incremental_xmlfile._XmlFileTestCaseBase-class.html#_file">_file</a><br />
<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.etree._IDDict-class.html#__getitem__">__getitem__()</a><br />
-<span class="index-where">(in <a href="lxml.etree._IDDict-class.html" onclick="show_private();">_IDDict</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#__getitem__">__getitem__()</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.objectify.NumberElement-class.html#__oct__">__oct__()</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.html.formfill-module.html#_fill_form">_fill_form()</a><br />
<span class="index-where">(in <a href="lxml.html.formfill-module.html">lxml.html.formfill</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.etree._ListErrorLog-class.html#__getitem__">__getitem__()</a><br />
-<span class="index-where">(in <a href="lxml.etree._ListErrorLog-class.html" onclick="show_private();">_ListErrorLog</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._IDDict-class.html#__getitem__">__getitem__()</a><br />
+<span class="index-where">(in <a href="lxml.etree._IDDict-class.html" onclick="show_private();">_IDDict</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__or__">__or__()</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.html.formfill-module.html#_fill_multiple">_fill_multiple()</a><br />
<span class="index-where">(in <a href="lxml.html.formfill-module.html">lxml.html.formfill</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.html.FieldsDict-class.html#__getitem__">__getitem__()</a><br />
-<span class="index-where">(in <a href="lxml.html.FieldsDict-class.html">FieldsDict</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._ListErrorLog-class.html#__getitem__">__getitem__()</a><br />
+<span class="index-where">(in <a href="lxml.etree._ListErrorLog-class.html" onclick="show_private();">_ListErrorLog</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.ElementInclude-module.html#__package__">__package__</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.html.formfill-module.html#_fill_single">_fill_single()</a><br />
<span class="index-where">(in <a href="lxml.html.formfill-module.html">lxml.html.formfill</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.html.InputGetter-class.html#__getitem__">__getitem__()</a><br />
-<span class="index-where">(in <a href="lxml.html.InputGetter-class.html">InputGetter</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.FieldsDict-class.html#__getitem__">__getitem__()</a><br />
+<span class="index-where">(in <a href="lxml.html.FieldsDict-class.html">FieldsDict</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml-module.html#__package__">__package__</a><br />
<span class="index-where">(in <a href="lxml-module.html">lxml</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.doctestcompare-module.html#_find_doctest_frame">_find_doctest_frame()</a><br />
<span class="index-where">(in <a href="lxml.doctestcompare-module.html">lxml.doctestcompare</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.objectify.ObjectifiedElement-class.html#__getitem__">__getitem__()</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.html.InputGetter-class.html#__getitem__">__getitem__()</a><br />
+<span class="index-where">(in <a href="lxml.html.InputGetter-class.html">InputGetter</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.builder-module.html#__package__">__package__</a><br />
<span class="index-where">(in <a href="lxml.builder-module.html">lxml.builder</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.html.formfill-module.html#_find_elements_for_name">_find_elements_for_name()</a><br />
<span class="index-where">(in <a href="lxml.html.formfill-module.html">lxml.html.formfill</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.etree.QName-class.html#__gt__">__gt__()</a><br />
-<span class="index-where">(in <a href="lxml.etree.QName-class.html">QName</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.objectify.ObjectifiedElement-class.html#__getitem__">__getitem__()</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.doctestcompare-module.html#__package__">__package__</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.html.clean-module.html#_find_external_links">_find_external_links</a><br />
<span class="index-where">(in <a href="lxml.html.clean-module.html">lxml.html.clean</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.etree._Attrib-class.html#__gt__">__gt__()</a><br />
-<span class="index-where">(in <a href="lxml.etree._Attrib-class.html" onclick="show_private();">_Attrib</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.QName-class.html#__gt__">__gt__()</a><br />
+<span class="index-where">(in <a href="lxml.etree.QName-class.html">QName</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.etree-module.html#__package__">__package__</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.html.formfill-module.html#_find_form">_find_form()</a><br />
<span class="index-where">(in <a href="lxml.html.formfill-module.html">lxml.html.formfill</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.objectify.BoolElement-class.html#__gt__">__gt__()</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.etree._Attrib-class.html#__gt__">__gt__()</a><br />
+<span class="index-where">(in <a href="lxml.etree._Attrib-class.html" onclick="show_private();">_Attrib</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.html.ElementSoup-module.html#__package__">__package__</a><br />
<span class="index-where">(in <a href="lxml.html.ElementSoup-module.html">lxml.html.ElementSoup</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.html.formfill-module.html#_find_form_ids">_find_form_ids()</a><br />
<span class="index-where">(in <a href="lxml.html.formfill-module.html">lxml.html.formfill</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.objectify.NoneElement-class.html#__gt__">__gt__()</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.objectify.BoolElement-class.html#__gt__">__gt__()</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.html-module.html#__package__">__package__</a><br />
<span class="index-where">(in <a href="lxml.html-module.html">lxml.html</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.html.clean-module.html#_find_styled_elements">_find_styled_elements</a><br />
<span class="index-where">(in <a href="lxml.html.clean-module.html">lxml.html.clean</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__gt__">__gt__()</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.NoneElement-class.html#__gt__">__gt__()</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.html.builder-module.html#__package__">__package__</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.html.html5parser-module.html#_find_tag">_find_tag()</a><br />
<span class="index-where">(in <a href="lxml.html.html5parser-module.html">lxml.html.html5parser</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.objectify.StringElement-class.html#__gt__">__gt__()</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.NumberElement-class.html#__gt__">__gt__()</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.html.clean-module.html#__package__">__package__</a><br />
<span class="index-where">(in <a href="lxml.html.clean-module.html">lxml.html.clean</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.common_imports-module.html#_fix_bytes">_fix_bytes()</a><br />
<span class="index-where">(in <a href="lxml.tests.common_imports-module.html">lxml.tests.common_imports</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.etree.QName-class.html#__hash__">__hash__()</a><br />
-<span class="index-where">(in <a href="lxml.etree.QName-class.html">QName</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.objectify.StringElement-class.html#__gt__">__gt__()</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.html.defs-module.html#__package__">__package__</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.common_imports-module.html#_fix_exceptions">_fix_exceptions()</a><br />
<span class="index-where">(in <a href="lxml.tests.common_imports-module.html">lxml.tests.common_imports</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.objectify.BoolElement-class.html#__hash__">__hash__()</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.etree.QName-class.html#__hash__">__hash__()</a><br />
+<span class="index-where">(in <a href="lxml.etree.QName-class.html">QName</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.html.diff-module.html#__package__">__package__</a><br />
<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.common_imports-module.html#_fix_traceback">_fix_traceback()</a><br />
<span class="index-where">(in <a href="lxml.tests.common_imports-module.html">lxml.tests.common_imports</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.objectify.NoneElement-class.html#__hash__">__hash__()</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.objectify.BoolElement-class.html#__hash__">__hash__()</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.html.formfill-module.html#__package__">__package__</a><br />
<span class="index-where">(in <a href="lxml.html.formfill-module.html">lxml.html.formfill</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.common_imports-module.html#_fix_unicode">_fix_unicode</a><br />
<span class="index-where">(in <a href="lxml.tests.common_imports-module.html">lxml.tests.common_imports</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__hash__">__hash__()</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.NoneElement-class.html#__hash__">__hash__()</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.html.soupparser-module.html#__package__">__package__</a><br />
<span class="index-where">(in <a href="lxml.html.soupparser-module.html">lxml.html.soupparser</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.html.diff-module.html#_fixup_ins_del_tags">_fixup_ins_del_tags()</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.objectify.StringElement-class.html#__hash__">__hash__()</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.NumberElement-class.html#__hash__">__hash__()</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.includes-module.html#__package__">__package__</a><br />
<span class="index-where">(in <a href="lxml.includes-module.html">lxml.includes</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.html.LabelElement-class.html#_for_element__del">_for_element__del()</a><br />
<span class="index-where">(in <a href="lxml.html.LabelElement-class.html">LabelElement</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__hex__">__hex__()</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.StringElement-class.html#__hash__">__hash__()</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.isoschematron-module.html#__package__">__package__</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.html.LabelElement-class.html#_for_element__get">_for_element__get()</a><br />
<span class="index-where">(in <a href="lxml.html.LabelElement-class.html">LabelElement</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.builder.ElementMaker-class.html#__init__">__init__()</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.NumberElement-class.html#__hex__">__hex__()</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-module.html#__package__">__package__</a><br />
<span class="index-where">(in <a href="lxml.objectify-module.html">lxml.objectify</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.html.LabelElement-class.html#_for_element__set">_for_element__set()</a><br />
<span class="index-where">(in <a href="lxml.html.LabelElement-class.html">LabelElement</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.cssselect.CSSSelector-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in <a href="lxml.cssselect.CSSSelector-class.html">CSSSelector</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.builder.ElementMaker-class.html#__init__">__init__()</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.pyclasslookup-module.html#__package__">__package__</a><br />
<span class="index-where">(in <a href="lxml.pyclasslookup-module.html">lxml.pyclasslookup</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.html.formfill-module.html#_form_name_xpath">_form_name_xpath</a><br />
<span class="index-where">(in <a href="lxml.html.formfill-module.html">lxml.html.formfill</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.doctestcompare._RestoreChecker-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in <a href="lxml.doctestcompare._RestoreChecker-class.html" onclick="show_private();">_RestoreChecker</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.cssselect.CSSSelector-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in <a href="lxml.cssselect.CSSSelector-class.html">CSSSelector</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.sax-module.html#__package__">__package__</a><br />
<span class="index-where">(in <a href="lxml.sax-module.html">lxml.sax</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.html-module.html#_forms_xpath">_forms_xpath</a><br />
<span class="index-where">(in <a href="lxml.html-module.html">lxml.html</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.etree.AttributeBasedElementClassLookup-class.html#__init__">__init__()</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.doctestcompare._RestoreChecker-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in <a href="lxml.doctestcompare._RestoreChecker-class.html" onclick="show_private();">_RestoreChecker</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests-module.html#__package__">__package__</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.common_imports-module.html#_get_caller_relative_path">_get_caller_relative_path()</a><br />
<span class="index-where">(in <a href="lxml.tests.common_imports-module.html">lxml.tests.common_imports</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.etree.CommentBase-class.html#__init__">__init__()</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.etree.AttributeBasedElementClassLookup-class.html#__init__">__init__()</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.tests.common_imports-module.html#__package__">__package__</a><br />
<span class="index-where">(in <a href="lxml.tests.common_imports-module.html">lxml.tests.common_imports</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.sax.ElementTreeContentHandler-class.html#_get_etree">_get_etree()</a><br />
<span class="index-where">(in <a href="lxml.sax.ElementTreeContentHandler-class.html">ElementTreeContentHandler</a>)</span></td>
</tr>
<tr>
+<td width="33%" class="link-index"><a href="lxml.etree.CommentBase-class.html#__init__">__init__()</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.tests.dummy_http_server-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="lxml.tests.dummy_http_server-module.html">lxml.tests.dummy_http_server</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorDomains-class.html#_getName">_getName()</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.etree.DTD-class.html#__init__">__init__()</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.tests.test_builder-module.html#__package__">__package__</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.etree.ErrorDomains-class.html#_getName">_getName()</a><br />
-<span class="index-where">(in <a href="lxml.etree.ErrorDomains-class.html">ErrorDomains</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorLevels-class.html#_getName">_getName()</a><br />
+<span class="index-where">(in <a href="lxml.etree.ErrorLevels-class.html">ErrorLevels</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.etree.ETCompatXMLParser-class.html#__init__">__init__()</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.tests.test_classlookup-module.html#__package__">__package__</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.etree.ErrorLevels-class.html#_getName">_getName()</a><br />
-<span class="index-where">(in <a href="lxml.etree.ErrorLevels-class.html">ErrorLevels</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#_getName">_getName()</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.etree.ETXPath-class.html#__init__">__init__()</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.tests.test_css-module.html#__package__">__package__</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.etree.ErrorTypes-class.html#_getName">_getName()</a><br />
-<span class="index-where">(in <a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.RelaxNGErrorTypes-class.html#_getName">_getName()</a><br />
+<span class="index-where">(in <a href="lxml.etree.RelaxNGErrorTypes-class.html">RelaxNGErrorTypes</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.etree.ElementBase-class.html#__init__">__init__()</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.tests.test_dtd-module.html#__package__">__package__</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.etree.RelaxNGErrorTypes-class.html#_getName">_getName()</a><br />
-<span class="index-where">(in <a href="lxml.etree.RelaxNGErrorTypes-class.html">RelaxNGErrorTypes</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.sax-module.html#_getNsTag">_getNsTag()</a><br />
+<span class="index-where">(in <a href="lxml.sax-module.html">lxml.sax</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.etree.ElementDefaultClassLookup-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="lxml.etree.ElementDefaultClassLookup-class.html">ElementDefaultClassLookup</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree-module.html#__package__">__package__</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.sax-module.html#_getNsTag">_getNsTag()</a><br />
-<span class="index-where">(in <a href="lxml.sax-module.html">lxml.sax</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.clean.Cleaner-class.html#_has_sneaky_javascript">_has_sneaky_javascript()</a><br />
+<span class="index-where">(in <a href="lxml.html.clean.Cleaner-class.html">Cleaner</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.etree.ElementNamespaceClassLookup-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="lxml.etree.ElementNamespaceClassLookup-class.html">ElementNamespaceClassLookup</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_errors-module.html#__package__">__package__</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.html.clean.Cleaner-class.html#_has_sneaky_javascript">_has_sneaky_javascript()</a><br />
-<span class="index-where">(in <a href="lxml.html.clean.Cleaner-class.html">Cleaner</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.doctestcompare-module.html#_html_parser">_html_parser</a><br />
+<span class="index-where">(in <a href="lxml.doctestcompare-module.html">lxml.doctestcompare</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.etree.EntityBase-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="lxml.etree.EntityBase-class.html">EntityBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree-module.html#__package__">__package__</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.doctestcompare-module.html#_html_parser">_html_parser</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.html-module.html#_id_xpath">_id_xpath</a><br />
+<span class="index-where">(in <a href="lxml.html-module.html">lxml.html</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.etree.FallbackElementClassLookup-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="lxml.etree.FallbackElementClassLookup-class.html">FallbackElementClassLookup</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser-module.html#__package__">__package__</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.html-module.html#_id_xpath">_id_xpath</a><br />
-<span class="index-where">(in <a href="lxml.html-module.html">lxml.html</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._IDDict-class.html">_IDDict</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.HTMLParser-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="lxml.etree.HTMLParser-class.html">HTMLParser</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile-module.html#__package__">__package__</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.etree._IDDict-class.html">_IDDict</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_http_io-module.html#__package__">__package__</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.isoschematron.Schematron-class.html#_include">_include</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.LxmlError-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="lxml.etree.LxmlError-class.html">LxmlError</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_io-module.html#__package__">__package__</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.isoschematron.Schematron-class.html#_include">_include</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.tests.test_incremental_xmlfile-module.html#__package__">__package__</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.ElementInclude-module.html#_include">_include()</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.PIBase-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="lxml.etree.PIBase-class.html">PIBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron-module.html#__package__">__package__</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.ElementInclude-module.html#_include">_include()</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_io-module.html#__package__">__package__</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.etree._Element-class.html#_init">_init()</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.etree.ParseError-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="lxml.etree.ParseError-class.html">ParseError</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_nsclasses-module.html#__package__">__package__</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.etree._Element-class.html#_init">_init()</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_isoschematron-module.html#__package__">__package__</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.objectify.BoolElement-class.html#_init">_init()</a><br />
+<span class="index-where">(in <a href="lxml.objectify.BoolElement-class.html">BoolElement</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.etree.PyErrorLog-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="lxml.etree.PyErrorLog-class.html">PyErrorLog</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify-module.html#__package__">__package__</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.objectify.BoolElement-class.html#_init">_init()</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_nsclasses-module.html#__package__">__package__</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.objectify.FloatElement-class.html#_init">_init()</a><br />
+<span class="index-where">(in <a href="lxml.objectify.FloatElement-class.html">FloatElement</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.etree.QName-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="lxml.etree.QName-class.html">QName</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup-module.html#__package__">__package__</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_pyclasslookup-module.html">lxml.tests.test_pyclasslookup</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.objectify.FloatElement-class.html#_init">_init()</a><br />
-<span class="index-where">(in <a href="lxml.objectify.FloatElement-class.html">FloatElement</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify-module.html#__package__">__package__</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.objectify.IntElement-class.html#_init">_init()</a><br />
+<span class="index-where">(in <a href="lxml.objectify.IntElement-class.html">IntElement</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.etree.RelaxNG-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="lxml.etree.RelaxNG-class.html">RelaxNG</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_relaxng-module.html#__package__">__package__</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_relaxng-module.html">lxml.tests.test_relaxng</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.objectify.IntElement-class.html#_init">_init()</a><br />
-<span class="index-where">(in <a href="lxml.objectify.IntElement-class.html">IntElement</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_pyclasslookup-module.html">lxml.tests.test_pyclasslookup</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.objectify.LongElement-class.html#_init">_init()</a><br />
+<span class="index-where">(in <a href="lxml.objectify.LongElement-class.html">LongElement</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.etree.Schematron-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="lxml.etree.Schematron-class.html">Schematron</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax-module.html#__package__">__package__</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_sax-module.html">lxml.tests.test_sax</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.objectify.LongElement-class.html#_init">_init()</a><br />
-<span class="index-where">(in <a href="lxml.objectify.LongElement-class.html">LongElement</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_relaxng-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_relaxng-module.html">lxml.tests.test_relaxng</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.formfill-module.html#_input_xpath">_input_xpath</a><br />
+<span class="index-where">(in <a href="lxml.html.formfill-module.html">lxml.html.formfill</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.etree.TreeBuilder-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="lxml.etree.TreeBuilder-class.html">TreeBuilder</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_schematron-module.html#__package__">__package__</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_schematron-module.html">lxml.tests.test_schematron</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.formfill-module.html#_input_xpath">_input_xpath</a><br />
-<span class="index-where">(in <a href="lxml.html.formfill-module.html">lxml.html.formfill</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_sax-module.html">lxml.tests.test_sax</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.diff-module.html#_ins_del_re">_ins_del_re</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.etree.XInclude-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="lxml.etree.XInclude-class.html">XInclude</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_threading-module.html#__package__">__package__</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_threading-module.html">lxml.tests.test_threading</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.diff-module.html#_ins_del_re">_ins_del_re</a><br />
-<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_schematron-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_schematron-module.html">lxml.tests.test_schematron</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.clean-module.html#_insert_break">_insert_break()</a><br />
+<span class="index-where">(in <a href="lxml.html.clean-module.html">lxml.html.clean</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.etree.XMLParser-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="lxml.etree.XMLParser-class.html">XMLParser</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_unicode-module.html#__package__">__package__</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_unicode-module.html">lxml.tests.test_unicode</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.clean-module.html#_insert_break">_insert_break()</a><br />
-<span class="index-where">(in <a href="lxml.html.clean-module.html">lxml.html.clean</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_threading-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_threading-module.html">lxml.tests.test_threading</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.formfill-module.html#_insert_error">_insert_error()</a><br />
+<span class="index-where">(in <a href="lxml.html.formfill-module.html">lxml.html.formfill</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.etree.XMLSchema-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="lxml.etree.XMLSchema-class.html">XMLSchema</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema-module.html#__package__">__package__</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_xmlschema-module.html">lxml.tests.test_xmlschema</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.formfill-module.html#_insert_error">_insert_error()</a><br />
-<span class="index-where">(in <a href="lxml.html.formfill-module.html">lxml.html.formfill</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_unicode-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_unicode-module.html">lxml.tests.test_unicode</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html">_IOTestCaseBase</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.etree.XPath-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="lxml.etree.XPath-class.html">XPath</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator-module.html#__package__">__package__</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_io._IOTestCaseBase-class.html">_IOTestCaseBase</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_xmlschema-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_xmlschema-module.html">lxml.tests.test_xmlschema</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.doctestcompare-module.html#_IS_PYTHON_3">_IS_PYTHON_3</a><br />
+<span class="index-where">(in <a href="lxml.doctestcompare-module.html">lxml.doctestcompare</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.etree.XPathDocumentEvaluator-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="lxml.etree.XPathDocumentEvaluator-class.html">XPathDocumentEvaluator</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt-module.html#__package__">__package__</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_xslt-module.html">lxml.tests.test_xslt</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.doctestcompare-module.html#_IS_PYTHON_3">_IS_PYTHON_3</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_xpathevaluator-module.html#__package__">__package__</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="xml.etree.ElementTree._IterParseIterator-class.html">_IterParseIterator</a></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.etree.XPathElementEvaluator-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="lxml.etree.XPathElementEvaluator-class.html" onclick="show_private();">XPathElementEvaluator</a>)</span></td>
-<td width="33%" class="link-index"><a href="xml.etree.ElementTree-module.html#__package__">__package__</a><br />
-<span class="index-where">(in <a href="xml.etree.ElementTree-module.html">xml.etree.ElementTree</a>)</span></td>
-<td width="33%" class="link-index"><a href="xml.etree.ElementTree._IterParseIterator-class.html">_IterParseIterator</a></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_xslt-module.html">lxml.tests.test_xslt</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.clean-module.html#_javascript_scheme_re">_javascript_scheme_re</a><br />
+<span class="index-where">(in <a href="lxml.html.clean-module.html">lxml.html.clean</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.etree.XSLT-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="lxml.etree.XSLT-class.html">XSLT</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.objectify-module.html#__parseBool">__parseBool()</a><br />
-<span class="index-where">(in <a href="lxml.objectify-module.html">lxml.objectify</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.clean-module.html#_javascript_scheme_re">_javascript_scheme_re</a><br />
-<span class="index-where">(in <a href="lxml.html.clean-module.html">lxml.html.clean</a>)</span></td>
+<td width="33%" class="link-index"><a href="xml.etree.ElementTree-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="xml.etree.ElementTree-module.html">xml.etree.ElementTree</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.clean.Cleaner-class.html#_kill_elements">_kill_elements()</a><br />
+<span class="index-where">(in <a href="lxml.html.clean.Cleaner-class.html">Cleaner</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.etree.XSLTAccessControl-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="lxml.etree.XSLTAccessControl-class.html">XSLTAccessControl</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__pos__">__pos__()</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.html.clean.Cleaner-class.html#_kill_elements">_kill_elements()</a><br />
-<span class="index-where">(in <a href="lxml.html.clean.Cleaner-class.html">Cleaner</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.objectify-module.html#__parseBool">__parseBool()</a><br />
+<span class="index-where">(in <a href="lxml.objectify-module.html">lxml.objectify</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.HtmlMixin-class.html#_label__del">_label__del()</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.etree._BaseErrorLog-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="lxml.etree._BaseErrorLog-class.html" onclick="show_private();">_BaseErrorLog</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__pow__">__pow__()</a><br />
+<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__pos__">__pos__()</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.html.HtmlMixin-class.html#_label__del">_label__del()</a><br />
+<td width="33%" class="link-index"><a href="lxml.html.HtmlMixin-class.html#_label__get">_label__get()</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.etree._DomainErrorLog-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="lxml.etree._DomainErrorLog-class.html" onclick="show_private();">_DomainErrorLog</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree-module.html#__pyx_capi__">__pyx_capi__</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.html.HtmlMixin-class.html#_label__get">_label__get()</a><br />
+<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__pow__">__pow__()</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.html.HtmlMixin-class.html#_label__set">_label__set()</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.etree._ErrorLog-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="lxml.etree._ErrorLog-class.html" onclick="show_private();">_ErrorLog</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.C14NError-class.html#__qualname__">__qualname__</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.html.HtmlMixin-class.html#_label__set">_label__set()</a><br />
-<span class="index-where">(in <a href="lxml.html.HtmlMixin-class.html">HtmlMixin</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree-module.html#__pyx_capi__">__pyx_capi__</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.html.formfill-module.html#_label_for_xpath">_label_for_xpath</a><br />
+<span class="index-where">(in <a href="lxml.html.formfill-module.html">lxml.html.formfill</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.etree._ListErrorLog-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="lxml.etree._ListErrorLog-class.html" onclick="show_private();">_ListErrorLog</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.DTDError-class.html#__qualname__">__qualname__</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.html.formfill-module.html#_label_for_xpath">_label_for_xpath</a><br />
-<span class="index-where">(in <a href="lxml.html.formfill-module.html">lxml.html.formfill</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.C14NError-class.html#__qualname__">__qualname__</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.html-module.html#_label_xpath">_label_xpath</a><br />
+<span class="index-where">(in <a href="lxml.html-module.html">lxml.html</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.etree._RotatingErrorLog-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="lxml.etree._RotatingErrorLog-class.html" onclick="show_private();">_RotatingErrorLog</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.DTDParseError-class.html#__qualname__">__qualname__</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.html-module.html#_label_xpath">_label_xpath</a><br />
-<span class="index-where">(in <a href="lxml.html-module.html">lxml.html</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.DTDError-class.html#__qualname__">__qualname__</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.isoschematron.Schematron-class.html#_level">_level</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._TargetParserResult-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="lxml.etree._TargetParserResult-class.html" onclick="show_private();">_TargetParserResult</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.DTDValidateError-class.html#__qualname__">__qualname__</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.isoschematron.Schematron-class.html#_level">_level</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.DTDParseError-class.html#__qualname__">__qualname__</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.html.clean-module.html#_link_regexes">_link_regexes</a><br />
+<span class="index-where">(in <a href="lxml.html.clean-module.html">lxml.html.clean</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.etree._XPathEvaluatorBase-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="lxml.etree._XPathEvaluatorBase-class.html" onclick="show_private();">_XPathEvaluatorBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.DocumentInvalid-class.html#__qualname__">__qualname__</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.html.clean-module.html#_link_regexes">_link_regexes</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.DTDValidateError-class.html#__qualname__">__qualname__</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.html.clean-module.html#_link_text">_link_text()</a><br />
<span class="index-where">(in <a href="lxml.html.clean-module.html">lxml.html.clean</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.etree.iterparse-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="lxml.etree.iterparse-class.html">iterparse</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.Error-class.html#__qualname__">__qualname__</a><br />
-<span class="index-where">(in <a href="lxml.etree.Error-class.html">Error</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.clean-module.html#_link_text">_link_text()</a><br />
-<span class="index-where">(in <a href="lxml.html.clean-module.html">lxml.html.clean</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.DocumentInvalid-class.html#__qualname__">__qualname__</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.etree._ListErrorLog-class.html">_ListErrorLog</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.iterwalk-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="lxml.etree.iterwalk-class.html">iterwalk</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorDomains-class.html#__qualname__">__qualname__</a><br />
-<span class="index-where">(in <a href="lxml.etree.ErrorDomains-class.html">ErrorDomains</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree._ListErrorLog-class.html">_ListErrorLog</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.Error-class.html#__qualname__">__qualname__</a><br />
+<span class="index-where">(in <a href="lxml.etree.Error-class.html">Error</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._LogEntry-class.html">_LogEntry</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.xmlfile-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="lxml.etree.xmlfile-class.html" onclick="show_private();">xmlfile</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorLevels-class.html#__qualname__">__qualname__</a><br />
-<span class="index-where">(in <a href="lxml.etree.ErrorLevels-class.html">ErrorLevels</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree._LogEntry-class.html">_LogEntry</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.etree.ErrorDomains-class.html#__qualname__">__qualname__</a><br />
+<span class="index-where">(in <a href="lxml.etree.ErrorDomains-class.html">ErrorDomains</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.doctestcompare.LXMLOutputChecker-class.html#_looks_like_markup">_looks_like_markup()</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.html.CheckboxValues-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="lxml.html.CheckboxValues-class.html">CheckboxValues</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#__qualname__">__qualname__</a><br />
-<span class="index-where">(in <a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.doctestcompare.LXMLOutputChecker-class.html#_looks_like_markup">_looks_like_markup()</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.etree.ErrorLevels-class.html#__qualname__">__qualname__</a><br />
+<span class="index-where">(in <a href="lxml.etree.ErrorLevels-class.html">ErrorLevels</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.html5parser-module.html#_looks_like_url">_looks_like_url()</a><br />
+<span class="index-where">(in <a href="lxml.html.html5parser-module.html">lxml.html.html5parser</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.html.FieldsDict-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="lxml.html.FieldsDict-class.html">FieldsDict</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.LxmlError-class.html#__qualname__">__qualname__</a><br />
-<span class="index-where">(in <a href="lxml.etree.LxmlError-class.html">LxmlError</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.html5parser-module.html#_looks_like_url">_looks_like_url()</a><br />
-<span class="index-where">(in <a href="lxml.html.html5parser-module.html">lxml.html.html5parser</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#__qualname__">__qualname__</a><br />
+<span class="index-where">(in <a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.ElementInclude-module.html#_lxml_default_loader">_lxml_default_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.html.HTMLParser-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="lxml.html.HTMLParser-class.html">HTMLParser</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.LxmlRegistryError-class.html#__qualname__">__qualname__</a><br />
-<span class="index-where">(in <a href="lxml.etree.LxmlRegistryError-class.html">LxmlRegistryError</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.ElementInclude-module.html#_lxml_default_loader">_lxml_default_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.etree.LxmlError-class.html#__qualname__">__qualname__</a><br />
+<span class="index-where">(in <a href="lxml.etree.LxmlError-class.html">LxmlError</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.cssselect-module.html#_make_lower_case">_make_lower_case()</a><br />
+<span class="index-where">(in <a href="lxml.cssselect-module.html">lxml.cssselect</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.html.HtmlElementClassLookup-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="lxml.html.HtmlElementClassLookup-class.html">HtmlElementClassLookup</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.LxmlSyntaxError-class.html#__qualname__">__qualname__</a><br />
-<span class="index-where">(in <a href="lxml.etree.LxmlSyntaxError-class.html">LxmlSyntaxError</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.cssselect-module.html#_make_lower_case">_make_lower_case()</a><br />
-<span class="index-where">(in <a href="lxml.cssselect-module.html">lxml.cssselect</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.LxmlRegistryError-class.html#__qualname__">__qualname__</a><br />
+<span class="index-where">(in <a href="lxml.etree.LxmlRegistryError-class.html">LxmlRegistryError</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.diff-module.html#_merge_element_contents">_merge_element_contents()</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.html.InputGetter-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="lxml.html.InputGetter-class.html">InputGetter</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.NamespaceRegistryError-class.html#__qualname__">__qualname__</a><br />
-<span class="index-where">(in <a href="lxml.etree.NamespaceRegistryError-class.html">NamespaceRegistryError</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.diff-module.html#_merge_element_contents">_merge_element_contents()</a><br />
-<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.etree.LxmlSyntaxError-class.html#__qualname__">__qualname__</a><br />
+<span class="index-where">(in <a href="lxml.etree.LxmlSyntaxError-class.html">LxmlSyntaxError</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.FormElement-class.html#_method__get">_method__get()</a><br />
+<span class="index-where">(in <a href="lxml.html.FormElement-class.html">FormElement</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.html.MultipleSelectOptions-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="lxml.html.MultipleSelectOptions-class.html">MultipleSelectOptions</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ParseError-class.html#__qualname__">__qualname__</a><br />
-<span class="index-where">(in <a href="lxml.etree.ParseError-class.html">ParseError</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.FormElement-class.html#_method__get">_method__get()</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.NamespaceRegistryError-class.html#__qualname__">__qualname__</a><br />
+<span class="index-where">(in <a href="lxml.etree.NamespaceRegistryError-class.html">NamespaceRegistryError</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.FormElement-class.html#_method__set">_method__set()</a><br />
<span class="index-where">(in <a href="lxml.html.FormElement-class.html">FormElement</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.html.XHTMLParser-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="lxml.html.XHTMLParser-class.html">XHTMLParser</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ParserError-class.html#__qualname__">__qualname__</a><br />
-<span class="index-where">(in <a href="lxml.etree.ParserError-class.html">ParserError</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.FormElement-class.html#_method__set">_method__set()</a><br />
-<span class="index-where">(in <a href="lxml.html.FormElement-class.html">FormElement</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ParseError-class.html#__qualname__">__qualname__</a><br />
+<span class="index-where">(in <a href="lxml.etree.ParseError-class.html">ParseError</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html._MethodFunc-class.html">_MethodFunc</a></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.html._MethodFunc-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="lxml.html._MethodFunc-class.html">_MethodFunc</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.RelaxNGError-class.html#__qualname__">__qualname__</a><br />
-<span class="index-where">(in <a href="lxml.etree.RelaxNGError-class.html">RelaxNGError</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html._MethodFunc-class.html">_MethodFunc</a></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ParserError-class.html#__qualname__">__qualname__</a><br />
+<span class="index-where">(in <a href="lxml.etree.ParserError-class.html">ParserError</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.diff-module.html#_move_el_inside_block">_move_el_inside_block()</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.html.clean.Cleaner-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="lxml.html.clean.Cleaner-class.html">Cleaner</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.RelaxNGErrorTypes-class.html#__qualname__">__qualname__</a><br />
-<span class="index-where">(in <a href="lxml.etree.RelaxNGErrorTypes-class.html">RelaxNGErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.diff-module.html#_move_el_inside_block">_move_el_inside_block()</a><br />
-<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.etree.RelaxNGError-class.html#__qualname__">__qualname__</a><br />
+<span class="index-where">(in <a href="lxml.etree.RelaxNGError-class.html">RelaxNGError</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.SelectElement-class.html#_multiple__get">_multiple__get()</a><br />
+<span class="index-where">(in <a href="lxml.html.SelectElement-class.html">SelectElement</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.html.formfill.DefaultErrorCreator-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="lxml.html.formfill.DefaultErrorCreator-class.html">DefaultErrorCreator</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.RelaxNGParseError-class.html#__qualname__">__qualname__</a><br />
-<span class="index-where">(in <a href="lxml.etree.RelaxNGParseError-class.html">RelaxNGParseError</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.SelectElement-class.html#_multiple__get">_multiple__get()</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.RelaxNGErrorTypes-class.html#__qualname__">__qualname__</a><br />
+<span class="index-where">(in <a href="lxml.etree.RelaxNGErrorTypes-class.html">RelaxNGErrorTypes</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.SelectElement-class.html#_multiple__set">_multiple__set()</a><br />
<span class="index-where">(in <a href="lxml.html.SelectElement-class.html">SelectElement</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.html.html5parser.HTMLParser-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="lxml.html.html5parser.HTMLParser-class.html">HTMLParser</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.RelaxNGValidateError-class.html#__qualname__">__qualname__</a><br />
-<span class="index-where">(in <a href="lxml.etree.RelaxNGValidateError-class.html">RelaxNGValidateError</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.SelectElement-class.html#_multiple__set">_multiple__set()</a><br />
-<span class="index-where">(in <a href="lxml.html.SelectElement-class.html">SelectElement</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.RelaxNGParseError-class.html#__qualname__">__qualname__</a><br />
+<span class="index-where">(in <a href="lxml.etree.RelaxNGParseError-class.html">RelaxNGParseError</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.FormElement-class.html#_name">_name()</a><br />
+<span class="index-where">(in <a href="lxml.html.FormElement-class.html">FormElement</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.html.html5parser.XHTMLParser-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="lxml.html.html5parser.XHTMLParser-class.html">XHTMLParser</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.SchematronError-class.html#__qualname__">__qualname__</a><br />
-<span class="index-where">(in <a href="lxml.etree.SchematronError-class.html">SchematronError</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.FormElement-class.html#_name">_name()</a><br />
-<span class="index-where">(in <a href="lxml.html.FormElement-class.html">FormElement</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.RelaxNGValidateError-class.html#__qualname__">__qualname__</a><br />
+<span class="index-where">(in <a href="lxml.etree.RelaxNGValidateError-class.html">RelaxNGValidateError</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.InputMixin-class.html#_name__del">_name__del()</a><br />
+<span class="index-where">(in <a href="lxml.html.InputMixin-class.html">InputMixin</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.isoschematron.Schematron-class.html#__init__">__init__()</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.SchematronParseError-class.html#__qualname__">__qualname__</a><br />
-<span class="index-where">(in <a href="lxml.etree.SchematronParseError-class.html">SchematronParseError</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.InputMixin-class.html#_name__del">_name__del()</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.SchematronError-class.html#__qualname__">__qualname__</a><br />
+<span class="index-where">(in <a href="lxml.etree.SchematronError-class.html">SchematronError</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.InputMixin-class.html#_name__get">_name__get()</a><br />
<span class="index-where">(in <a href="lxml.html.InputMixin-class.html">InputMixin</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.objectify.ElementMaker-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="lxml.objectify.ElementMaker-class.html">ElementMaker</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.SchematronValidateError-class.html#__qualname__">__qualname__</a><br />
-<span class="index-where">(in <a href="lxml.etree.SchematronValidateError-class.html">SchematronValidateError</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.InputMixin-class.html#_name__get">_name__get()</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.SchematronParseError-class.html#__qualname__">__qualname__</a><br />
+<span class="index-where">(in <a href="lxml.etree.SchematronParseError-class.html">SchematronParseError</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.InputMixin-class.html#_name__set">_name__set()</a><br />
<span class="index-where">(in <a href="lxml.html.InputMixin-class.html">InputMixin</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.objectify.ObjectPath-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="lxml.objectify.ObjectPath-class.html">ObjectPath</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.SerialisationError-class.html#__qualname__">__qualname__</a><br />
-<span class="index-where">(in <a href="lxml.etree.SerialisationError-class.html">SerialisationError</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.InputMixin-class.html#_name__set">_name__set()</a><br />
-<span class="index-where">(in <a href="lxml.html.InputMixin-class.html">InputMixin</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.SchematronValidateError-class.html#__qualname__">__qualname__</a><br />
+<span class="index-where">(in <a href="lxml.etree.SchematronValidateError-class.html">SchematronValidateError</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.InputGetter-class.html#_name_xpath">_name_xpath</a><br />
+<span class="index-where">(in <a href="lxml.html.InputGetter-class.html">InputGetter</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.objectify.ObjectifyElementClassLookup-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="lxml.objectify.ObjectifyElementClassLookup-class.html">ObjectifyElementClassLookup</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.XIncludeError-class.html#__qualname__">__qualname__</a><br />
-<span class="index-where">(in <a href="lxml.etree.XIncludeError-class.html">XIncludeError</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.InputGetter-class.html#_name_xpath">_name_xpath</a><br />
-<span class="index-where">(in <a href="lxml.html.InputGetter-class.html">InputGetter</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.SerialisationError-class.html#__qualname__">__qualname__</a><br />
+<span class="index-where">(in <a href="lxml.etree.SerialisationError-class.html">SerialisationError</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.formfill-module.html#_name_xpath">_name_xpath</a><br />
+<span class="index-where">(in <a href="lxml.html.formfill-module.html">lxml.html.formfill</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.objectify.PyType-class.html#__init__">__init__()</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.etree.XMLSchemaError-class.html#__qualname__">__qualname__</a><br />
-<span class="index-where">(in <a href="lxml.etree.XMLSchemaError-class.html">XMLSchemaError</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.formfill-module.html#_name_xpath">_name_xpath</a><br />
-<span class="index-where">(in <a href="lxml.html.formfill-module.html">lxml.html.formfill</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.XIncludeError-class.html#__qualname__">__qualname__</a><br />
+<span class="index-where">(in <a href="lxml.etree.XIncludeError-class.html">XIncludeError</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorDomains-class.html#_names">_names</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.sax.ElementTreeContentHandler-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="lxml.sax.ElementTreeContentHandler-class.html">ElementTreeContentHandler</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.XMLSchemaParseError-class.html#__qualname__">__qualname__</a><br />
-<span class="index-where">(in <a href="lxml.etree.XMLSchemaParseError-class.html">XMLSchemaParseError</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorDomains-class.html#_names">_names</a><br />
-<span class="index-where">(in <a href="lxml.etree.ErrorDomains-class.html">ErrorDomains</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.XMLSchemaError-class.html#__qualname__">__qualname__</a><br />
+<span class="index-where">(in <a href="lxml.etree.XMLSchemaError-class.html">XMLSchemaError</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorLevels-class.html#_names">_names</a><br />
+<span class="index-where">(in <a href="lxml.etree.ErrorLevels-class.html">ErrorLevels</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.sax.ElementTreeProducer-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="lxml.sax.ElementTreeProducer-class.html">ElementTreeProducer</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.XMLSchemaValidateError-class.html#__qualname__">__qualname__</a><br />
-<span class="index-where">(in <a href="lxml.etree.XMLSchemaValidateError-class.html">XMLSchemaValidateError</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorLevels-class.html#_names">_names</a><br />
-<span class="index-where">(in <a href="lxml.etree.ErrorLevels-class.html">ErrorLevels</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.XMLSchemaParseError-class.html#__qualname__">__qualname__</a><br />
+<span class="index-where">(in <a href="lxml.etree.XMLSchemaParseError-class.html">XMLSchemaParseError</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#_names">_names</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.common_imports.LargeFileLike-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="lxml.tests.common_imports.LargeFileLike-class.html">LargeFileLike</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.XMLSyntaxError-class.html#__qualname__">__qualname__</a><br />
-<span class="index-where">(in <a href="lxml.etree.XMLSyntaxError-class.html">XMLSyntaxError</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#_names">_names</a><br />
-<span class="index-where">(in <a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.XMLSchemaValidateError-class.html#__qualname__">__qualname__</a><br />
+<span class="index-where">(in <a href="lxml.etree.XMLSchemaValidateError-class.html">XMLSchemaValidateError</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.RelaxNGErrorTypes-class.html#_names">_names</a><br />
+<span class="index-where">(in <a href="lxml.etree.RelaxNGErrorTypes-class.html">RelaxNGErrorTypes</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.tests.common_imports.LargeFileLikeUnicode-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="lxml.tests.common_imports.LargeFileLikeUnicode-class.html">LargeFileLikeUnicode</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.XPathError-class.html#__qualname__">__qualname__</a><br />
-<span class="index-where">(in <a href="lxml.etree.XPathError-class.html">XPathError</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.RelaxNGErrorTypes-class.html#_names">_names</a><br />
-<span class="index-where">(in <a href="lxml.etree.RelaxNGErrorTypes-class.html">RelaxNGErrorTypes</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.XMLSyntaxError-class.html#__qualname__">__qualname__</a><br />
+<span class="index-where">(in <a href="lxml.etree.XMLSyntaxError-class.html">XMLSyntaxError</a>)</span></td>
+<td width="33%" class="link-index"><a href="xml.etree.ElementTree-module.html#_namespace_map">_namespace_map</a><br />
+<span class="index-where">(in <a href="xml.etree.ElementTree-module.html">xml.etree.ElementTree</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.tests.common_imports.SillyFileLike-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="lxml.tests.common_imports.SillyFileLike-class.html">SillyFileLike</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.XPathError-class.html#__qualname__">__qualname__</a><br />
+<span class="index-where">(in <a href="lxml.etree.XPathError-class.html">XPathError</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.doctestcompare-module.html#_norm_whitespace_re">_norm_whitespace_re</a><br />
+<span class="index-where">(in <a href="lxml.doctestcompare-module.html">lxml.doctestcompare</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="lxml.tests.dummy_http_server.HTTPRequestCollector-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in <a href="lxml.tests.dummy_http_server.HTTPRequestCollector-class.html">HTTPRequestCollector</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.etree.XPathEvalError-class.html#__qualname__">__qualname__</a><br />
<span class="index-where">(in <a href="lxml.etree.XPathEvalError-class.html">XPathEvalError</a>)</span></td>
-<td width="33%" class="link-index"><a href="xml.etree.ElementTree-module.html#_namespace_map">_namespace_map</a><br />
-<span class="index-where">(in <a href="xml.etree.ElementTree-module.html">xml.etree.ElementTree</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html-module.html#_options_xpath">_options_xpath</a><br />
+<span class="index-where">(in <a href="lxml.html-module.html">lxml.html</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike-class.html">SimpleFileLike</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.etree.XPathFunctionError-class.html#__qualname__">__qualname__</a><br />
<span class="index-where">(in <a href="lxml.etree.XPathFunctionError-class.html">XPathFunctionError</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.doctestcompare-module.html#_norm_whitespace_re">_norm_whitespace_re</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.html.soupparser-module.html#_parse">_parse()</a><br />
+<span class="index-where">(in <a href="lxml.html.soupparser-module.html">lxml.html.soupparser</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadPipelineTestCase.Worker-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_threading.ThreadPipelineTestCase.Worker-class.html">Worker</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.etree.XPathResultError-class.html#__qualname__">__qualname__</a><br />
<span class="index-where">(in <a href="lxml.etree.XPathResultError-class.html">XPathResultError</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html-module.html#_options_xpath">_options_xpath</a><br />
-<span class="index-where">(in <a href="lxml.html-module.html">lxml.html</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase-class.html#_parse_file">_parse_file()</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_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver-class.html">simple_resolver</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.etree.XPathSyntaxError-class.html#__qualname__">__qualname__</a><br />
<span class="index-where">(in <a href="lxml.etree.XPathSyntaxError-class.html">XPathSyntaxError</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.soupparser-module.html#_parse">_parse()</a><br />
-<span class="index-where">(in <a href="lxml.html.soupparser-module.html">lxml.html.soupparser</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#_parse_file">_parse_file()</a><br />
+<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.objectify.NumberElement-class.html#__int__">__int__()</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.XSLTApplyError-class.html#__qualname__">__qualname__</a><br />
<span class="index-where">(in <a href="lxml.etree.XSLTApplyError-class.html">XSLTApplyError</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase-class.html#_parse_file">_parse_file()</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_http_io.HttpIOTestCase-class.html#_parse_from_http">_parse_from_http()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_http_io.HttpIOTestCase-class.html">HttpIOTestCase</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.objectify.StringElement-class.html#__int__">__int__()</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.etree.XSLTError-class.html#__qualname__">__qualname__</a><br />
<span class="index-where">(in <a href="lxml.etree.XSLTError-class.html">XSLTError</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#_parse_file">_parse_file()</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.etree._ProcessingInstruction-class.html">_ProcessingInstruction</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.objectify.NumberElement-class.html#__invert__">__invert__()</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.XSLTExtensionError-class.html#__qualname__">__qualname__</a><br />
<span class="index-where">(in <a href="lxml.etree.XSLTExtensionError-class.html">XSLTExtensionError</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree._ProcessingInstruction-class.html">_ProcessingInstruction</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_incremental_xmlfile.SimpleFileLikeXmlFileTestCase-class.html#_read_file">_read_file()</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.etree.ElementDepthFirstIterator-class.html#__iter__">__iter__()</a><br />
<span class="index-where">(in <a href="lxml.etree.ElementDepthFirstIterator-class.html" onclick="show_private();">ElementDepthFirstIterator</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.etree.XSLTParseError-class.html#__qualname__">__qualname__</a><br />
<span class="index-where">(in <a href="lxml.etree.XSLTParseError-class.html">XSLTParseError</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase-class.html#_read_file">_read_file()</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_incremental_xmlfile._XmlFileTestCaseBase-class.html#_read_file">_read_file()</a><br />
+<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.etree.ElementTextIterator-class.html#__iter__">__iter__()</a><br />
<span class="index-where">(in <a href="lxml.etree.ElementTextIterator-class.html" onclick="show_private();">ElementTextIterator</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.etree.XSLTSaveError-class.html#__qualname__">__qualname__</a><br />
<span class="index-where">(in <a href="lxml.etree.XSLTSaveError-class.html">XSLTSaveError</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#_read_file">_read_file()</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.sax.ElementTreeProducer-class.html#_recursive_saxify">_recursive_saxify()</a><br />
+<span class="index-where">(in <a href="lxml.sax.ElementTreeProducer-class.html">ElementTreeProducer</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.etree._Attrib-class.html#__iter__">__iter__()</a><br />
<span class="index-where">(in <a href="lxml.etree._Attrib-class.html" onclick="show_private();">_Attrib</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.etree._ElementStringResult-class.html#__qualname__">__qualname__</a><br />
<span class="index-where">(in <a href="lxml.etree._ElementStringResult-class.html" onclick="show_private();">_ElementStringResult</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.sax.ElementTreeProducer-class.html#_recursive_saxify">_recursive_saxify()</a><br />
-<span class="index-where">(in <a href="lxml.sax.ElementTreeProducer-class.html">ElementTreeProducer</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html-module.html#_rel_links_xpath">_rel_links_xpath</a><br />
+<span class="index-where">(in <a href="lxml.html-module.html">lxml.html</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#__iter__">__iter__()</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.etree._TargetParserResult-class.html#__qualname__">__qualname__</a><br />
<span class="index-where">(in <a href="lxml.etree._TargetParserResult-class.html" onclick="show_private();">_TargetParserResult</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html-module.html#_rel_links_xpath">_rel_links_xpath</a><br />
-<span class="index-where">(in <a href="lxml.html-module.html">lxml.html</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.clean.Cleaner-class.html#_remove_javascript_link">_remove_javascript_link()</a><br />
+<span class="index-where">(in <a href="lxml.html.clean.Cleaner-class.html">Cleaner</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.etree._ElementIterator-class.html#__iter__">__iter__()</a><br />
<span class="index-where">(in <a href="lxml.etree._ElementIterator-class.html" onclick="show_private();">_ElementIterator</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__radd__">__radd__()</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.html.clean.Cleaner-class.html#_remove_javascript_link">_remove_javascript_link()</a><br />
-<span class="index-where">(in <a href="lxml.html.clean.Cleaner-class.html">Cleaner</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.doctestcompare-module.html#_repr_re">_repr_re</a><br />
+<span class="index-where">(in <a href="lxml.doctestcompare-module.html">lxml.doctestcompare</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.etree._ElementMatchIterator-class.html#__iter__">__iter__()</a><br />
<span class="index-where">(in <a href="lxml.etree._ElementMatchIterator-class.html" onclick="show_private();">_ElementMatchIterator</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.objectify.StringElement-class.html#__radd__">__radd__()</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.doctestcompare-module.html#_repr_re">_repr_re</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.dummy_http_server._RequestHandler-class.html">_RequestHandler</a><br />
+<span class="index-where">(in <a href="lxml.tests.dummy_http_server-module.html">lxml.tests.dummy_http_server</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.etree._ErrorLog-class.html#__iter__">__iter__()</a><br />
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<li> <strong class="uidlink"><a href="lxml.tests-module.html">lxml.tests</a></strong>: <em class="summary">The lxml test suite for lxml, ElementTree and cElementTree.</em>
<ul>
<li> <strong class="uidlink"><a href="lxml.tests.common_imports-module.html">lxml.tests.common_imports</a></strong> </li>
+ <li> <strong class="uidlink"><a href="lxml.tests.dummy_http_server-module.html">lxml.tests.dummy_http_server</a></strong>: <em class="summary">Simple HTTP request dumper for tests in Python 2.5+.</em> </li>
<li> <strong class="uidlink"><a href="lxml.tests.test_builder-module.html">lxml.tests.test_builder</a></strong> </li>
<li> <strong class="uidlink"><a href="lxml.tests.test_classlookup-module.html">lxml.tests.test_classlookup</a></strong>: <em class="summary">Tests for different Element class lookup mechanisms.</em> </li>
<li> <strong class="uidlink"><a href="lxml.tests.test_css-module.html">lxml.tests.test_css</a></strong> </li>
<li> <strong class="uidlink"><a href="lxml.tests.test_errors-module.html">lxml.tests.test_errors</a></strong> </li>
<li> <strong class="uidlink"><a href="lxml.tests.test_etree-module.html">lxml.tests.test_etree</a></strong>: <em class="summary">Tests specific to the extended etree API</em> </li>
<li> <strong class="uidlink"><a href="lxml.tests.test_htmlparser-module.html">lxml.tests.test_htmlparser</a></strong>: <em class="summary">HTML parser test cases for etree</em> </li>
+ <li> <strong class="uidlink"><a href="lxml.tests.test_http_io-module.html">lxml.tests.test_http_io</a></strong>: <em class="summary">Web IO test cases that need Python 2.5+ (wsgiref)</em> </li>
<li> <strong class="uidlink"><a href="lxml.tests.test_incremental_xmlfile-module.html">lxml.tests.test_incremental_xmlfile</a></strong>: <em class="summary">Tests for the incremental XML serialisation API.</em> </li>
<li> <strong class="uidlink"><a href="lxml.tests.test_io-module.html">lxml.tests.test_io</a></strong>: <em class="summary">IO test cases that apply to both etree and ElementTree</em> </li>
<li> <strong class="uidlink"><a href="lxml.tests.test_isoschematron-module.html">lxml.tests.test_isoschematron</a></strong>: <em class="summary">Test cases related to ISO-Schematron parsing and validation</em> </li>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:36 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:13 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:38 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:13 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:38 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:13 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-28', 'etree', 'link-1');">etree</a></tt><tt class="py-op">.</tt><tt id="link-29" class="py-name" targets="Class lxml.etree.XPath=lxml.etree.XPath-class.html"><a title="lxml.etree.XPath" class="py-name" href="#" onclick="return doclink('link-29', 'XPath', 'link-29');">XPath</a></tt><tt class="py-op">.</tt><tt id="link-30" class="py-name" targets="Method lxml.builder.ElementMaker.__init__()=lxml.builder.ElementMaker-class.html#__init__,Method lxml.cssselect.CSSSelector.__init__()=lxml.cssselect.CSSSelector-class.html#__init__,Method lxml.doctestcompare._RestoreChecker.__init__()=lxml.doctestcompare._RestoreChecker-class.html#__init__,Method lxml.etree.AttributeBasedElementClassLookup.__init__()=lxml.etree.AttributeBasedElementClassLookup-class.html#__init__,Method lxml.etree.CommentBase.__init__()=lxml.etree.CommentBase-class.html#__init__,Method lxml.etree.DTD.__init__()=lxml.etree.DTD-class.html#__init__,Method lxml.etree.ETCompatXMLParser.__init__()=lxml.etree.ETCompatXMLParser-class.html#__init__,Method lxml.etree.ETXPath.__init__()=lxml.etree.ETXPath-class.html#__init__,Method lxml.etree.ElementBase.__init__()=lxml.etree.ElementBase-class.html#__init__,Method lxml.etree.ElementDefaultClassLookup.__init__()=lxml.etree.ElementDefaultClassLookup-class.html#__init__,Method lxml.etree.ElementNamespaceClassLookup.__init__()=lxml.etree.ElementNamespaceClassLookup-class.html#__init__,Method lxml.etree.EntityBase.__init__()=lxml.etree.EntityBase-class.html#__init__,Method lxml.etree.FallbackElementClassLookup.__init__()=lxml.etree.FallbackElementClassLookup-class.html#__init__,Method lxml.etree.HTMLParser.__init__()=lxml.etree.HTMLParser-class.html#__init__,Method lxml.etree.LxmlError.__init__()=lxml.etree.LxmlError-class.html#__init__,Method lxml.etree.PIBase.__init__()=lxml.etree.PIBase-class.html#__init__,Method lxml.etree.ParseError.__init__()=lxml.etree.ParseError-class.html#__init__,Method lxml.etree.PyErrorLog.__init__()=lxml.etree.PyErrorLog-class.html#__init__,Method lxml.etree.QName.__init__()=lxml.etree.QName-class.html#__init__,Method lxml.etree.RelaxNG.__init__()=lxml.etree.RelaxNG-class.html#__init__,Method lxml.etree.Schematron.__init__()=lxml.etree.Schematron-class.html#__init__,Method lxml.etree.TreeBuilder.__init__()=lxml.etree.TreeBuilder-class.html#__init__,Method lxml.etree.XInclude.__init__()=lxml.etree.XInclude-class.html#__init__,Method lxml.etree.XMLParser.__init__()=lxml.etree.XMLParser-class.html#__init__,Method lxml.etree.XMLSchema.__init__()=lxml.etree.XMLSchema-class.html#__init__,Method lxml.etree.XPath.__init__()=lxml.etree.XPath-class.html#__init__,Method lxml.etree.XPathDocumentEvaluator.__init__()=lxml.etree.XPathDocumentEvaluator-class.html#__init__,Method lxml.etree.XPathElementEvaluator.__init__()=lxml.etree.XPathElementEvaluator-class.html#__init__,Method lxml.etree.XSLT.__init__()=lxml.etree.XSLT-class.html#__init__,Method lxml.etree.XSLTAccessControl.__init__()=lxml.etree.XSLTAccessControl-class.html#__init__,Method lxml.etree._BaseErrorLog.__init__()=lxml.etree._BaseErrorLog-class.html#__init__,Method lxml.etree._DomainErrorLog.__init__()=lxml.etree._DomainErrorLog-class.html#__init__,Method lxml.etree._ErrorLog.__init__()=lxml.etree._ErrorLog-class.html#__init__,Method lxml.etree._ListErrorLog.__init__()=lxml.etree._ListErrorLog-class.html#__init__,Method lxml.etree._RotatingErrorLog.__init__()=lxml.etree._RotatingErrorLog-class.html#__init__,Method lxml.etree._TargetParserResult.__init__()=lxml.etree._TargetParserResult-class.html#__init__,Method lxml.etree._XPathEvaluatorBase.__init__()=lxml.etree._XPathEvaluatorBase-class.html#__init__,Method lxml.etree.iterparse.__init__()=lxml.etree.iterparse-class.html#__init__,Method lxml.etree.iterwalk.__init__()=lxml.etree.iterwalk-class.html#__init__,Method lxml.etree.xmlfile.__init__()=lxml.etree.xmlfile-class.html#__init__,Method lxml.html.CheckboxValues.__init__()=lxml.html.CheckboxValues-class.html#__init__,Method lxml.html.FieldsDict.__init__()=lxml.html.FieldsDict-class.html#__init__,Method lxml.html.HTMLParser.__init__()=lxml.html.HTMLParser-class.html#__init__,Method lxml.html.HtmlElementClassLookup.__init__()=lxml.html.HtmlElementClassLookup-class.html#__init__,Method lxml.html.InputGetter.__init__()=lxml.html.InputGetter-class.html#__init__,Method lxml.html.MultipleSelectOptions.__init__()=lxml.html.MultipleSelectOptions-class.html#__init__,Method lxml.html.XHTMLParser.__init__()=lxml.html.XHTMLParser-class.html#__init__,Method lxml.html._MethodFunc.__init__()=lxml.html._MethodFunc-class.html#__init__,Method lxml.html.clean.Cleaner.__init__()=lxml.html.clean.Cleaner-class.html#__init__,Method lxml.html.formfill.DefaultErrorCreator.__init__()=lxml.html.formfill.DefaultErrorCreator-class.html#__init__,Method lxml.html.html5parser.HTMLParser.__init__()=lxml.html.html5parser.HTMLParser-class.html#__init__,Method lxml.html.html5parser.XHTMLParser.__init__()=lxml.html.html5parser.XHTMLParser-class.html#__init__,Method lxml.isoschematron.Schematron.__init__()=lxml.isoschematron.Schematron-class.html#__init__,Method lxml.objectify.ElementMaker.__init__()=lxml.objectify.ElementMaker-class.html#__init__,Method lxml.objectify.ObjectPath.__init__()=lxml.objectify.ObjectPath-class.html#__init__,Method lxml.objectify.ObjectifyElementClassLookup.__init__()=lxml.objectify.ObjectifyElementClassLookup-class.html#__init__,Method lxml.objectify.PyType.__init__()=lxml.objectify.PyType-class.html#__init__,Method lxml.sax.ElementTreeContentHandler.__init__()=lxml.sax.ElementTreeContentHandler-class.html#__init__,Method lxml.sax.ElementTreeProducer.__init__()=lxml.sax.ElementTreeProducer-class.html#__init__,Method lxml.tests.common_imports.LargeFileLike.__init__()=lxml.tests.common_imports.LargeFileLike-class.html#__init__,Method lxml.tests.common_imports.LargeFileLikeUnicode.__init__()=lxml.tests.common_imports.LargeFileLikeUnicode-class.html#__init__,Method lxml.tests.common_imports.SillyFileLike.__init__()=lxml.tests.common_imports.SillyFileLike-class.html#__init__,Method lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.__init__()=lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike-class.html#__init__,Method lxml.tests.test_threading.ThreadPipelineTestCase.Worker.__init__()=lxml.tests.test_threading.ThreadPipelineTestCase.Worker-class.html#__init__,Method lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver.__init__()=lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver-class.html#__init__"><a title="lxml.builder.ElementMaker.__init__
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-28', 'etree', 'link-1');">etree</a></tt><tt class="py-op">.</tt><tt id="link-29" class="py-name" targets="Class lxml.etree.XPath=lxml.etree.XPath-class.html"><a title="lxml.etree.XPath" class="py-name" href="#" onclick="return doclink('link-29', 'XPath', 'link-29');">XPath</a></tt><tt class="py-op">.</tt><tt id="link-30" class="py-name" targets="Method lxml.builder.ElementMaker.__init__()=lxml.builder.ElementMaker-class.html#__init__,Method lxml.cssselect.CSSSelector.__init__()=lxml.cssselect.CSSSelector-class.html#__init__,Method lxml.doctestcompare._RestoreChecker.__init__()=lxml.doctestcompare._RestoreChecker-class.html#__init__,Method lxml.etree.AttributeBasedElementClassLookup.__init__()=lxml.etree.AttributeBasedElementClassLookup-class.html#__init__,Method lxml.etree.CommentBase.__init__()=lxml.etree.CommentBase-class.html#__init__,Method lxml.etree.DTD.__init__()=lxml.etree.DTD-class.html#__init__,Method lxml.etree.ETCompatXMLParser.__init__()=lxml.etree.ETCompatXMLParser-class.html#__init__,Method lxml.etree.ETXPath.__init__()=lxml.etree.ETXPath-class.html#__init__,Method lxml.etree.ElementBase.__init__()=lxml.etree.ElementBase-class.html#__init__,Method lxml.etree.ElementDefaultClassLookup.__init__()=lxml.etree.ElementDefaultClassLookup-class.html#__init__,Method lxml.etree.ElementNamespaceClassLookup.__init__()=lxml.etree.ElementNamespaceClassLookup-class.html#__init__,Method lxml.etree.EntityBase.__init__()=lxml.etree.EntityBase-class.html#__init__,Method lxml.etree.FallbackElementClassLookup.__init__()=lxml.etree.FallbackElementClassLookup-class.html#__init__,Method lxml.etree.HTMLParser.__init__()=lxml.etree.HTMLParser-class.html#__init__,Method lxml.etree.LxmlError.__init__()=lxml.etree.LxmlError-class.html#__init__,Method lxml.etree.PIBase.__init__()=lxml.etree.PIBase-class.html#__init__,Method lxml.etree.ParseError.__init__()=lxml.etree.ParseError-class.html#__init__,Method lxml.etree.PyErrorLog.__init__()=lxml.etree.PyErrorLog-class.html#__init__,Method lxml.etree.QName.__init__()=lxml.etree.QName-class.html#__init__,Method lxml.etree.RelaxNG.__init__()=lxml.etree.RelaxNG-class.html#__init__,Method lxml.etree.Schematron.__init__()=lxml.etree.Schematron-class.html#__init__,Method lxml.etree.TreeBuilder.__init__()=lxml.etree.TreeBuilder-class.html#__init__,Method lxml.etree.XInclude.__init__()=lxml.etree.XInclude-class.html#__init__,Method lxml.etree.XMLParser.__init__()=lxml.etree.XMLParser-class.html#__init__,Method lxml.etree.XMLSchema.__init__()=lxml.etree.XMLSchema-class.html#__init__,Method lxml.etree.XPath.__init__()=lxml.etree.XPath-class.html#__init__,Method lxml.etree.XPathDocumentEvaluator.__init__()=lxml.etree.XPathDocumentEvaluator-class.html#__init__,Method lxml.etree.XPathElementEvaluator.__init__()=lxml.etree.XPathElementEvaluator-class.html#__init__,Method lxml.etree.XSLT.__init__()=lxml.etree.XSLT-class.html#__init__,Method lxml.etree.XSLTAccessControl.__init__()=lxml.etree.XSLTAccessControl-class.html#__init__,Method lxml.etree._BaseErrorLog.__init__()=lxml.etree._BaseErrorLog-class.html#__init__,Method lxml.etree._DomainErrorLog.__init__()=lxml.etree._DomainErrorLog-class.html#__init__,Method lxml.etree._ErrorLog.__init__()=lxml.etree._ErrorLog-class.html#__init__,Method lxml.etree._ListErrorLog.__init__()=lxml.etree._ListErrorLog-class.html#__init__,Method lxml.etree._RotatingErrorLog.__init__()=lxml.etree._RotatingErrorLog-class.html#__init__,Method lxml.etree._TargetParserResult.__init__()=lxml.etree._TargetParserResult-class.html#__init__,Method lxml.etree._XPathEvaluatorBase.__init__()=lxml.etree._XPathEvaluatorBase-class.html#__init__,Method lxml.etree.iterparse.__init__()=lxml.etree.iterparse-class.html#__init__,Method lxml.etree.iterwalk.__init__()=lxml.etree.iterwalk-class.html#__init__,Method lxml.etree.xmlfile.__init__()=lxml.etree.xmlfile-class.html#__init__,Method lxml.html.CheckboxValues.__init__()=lxml.html.CheckboxValues-class.html#__init__,Method lxml.html.FieldsDict.__init__()=lxml.html.FieldsDict-class.html#__init__,Method lxml.html.HTMLParser.__init__()=lxml.html.HTMLParser-class.html#__init__,Method lxml.html.HtmlElementClassLookup.__init__()=lxml.html.HtmlElementClassLookup-class.html#__init__,Method lxml.html.InputGetter.__init__()=lxml.html.InputGetter-class.html#__init__,Method lxml.html.MultipleSelectOptions.__init__()=lxml.html.MultipleSelectOptions-class.html#__init__,Method lxml.html.XHTMLParser.__init__()=lxml.html.XHTMLParser-class.html#__init__,Method lxml.html._MethodFunc.__init__()=lxml.html._MethodFunc-class.html#__init__,Method lxml.html.clean.Cleaner.__init__()=lxml.html.clean.Cleaner-class.html#__init__,Method lxml.html.formfill.DefaultErrorCreator.__init__()=lxml.html.formfill.DefaultErrorCreator-class.html#__init__,Method lxml.html.html5parser.HTMLParser.__init__()=lxml.html.html5parser.HTMLParser-class.html#__init__,Method lxml.html.html5parser.XHTMLParser.__init__()=lxml.html.html5parser.XHTMLParser-class.html#__init__,Method lxml.isoschematron.Schematron.__init__()=lxml.isoschematron.Schematron-class.html#__init__,Method lxml.objectify.ElementMaker.__init__()=lxml.objectify.ElementMaker-class.html#__init__,Method lxml.objectify.ObjectPath.__init__()=lxml.objectify.ObjectPath-class.html#__init__,Method lxml.objectify.ObjectifyElementClassLookup.__init__()=lxml.objectify.ObjectifyElementClassLookup-class.html#__init__,Method lxml.objectify.PyType.__init__()=lxml.objectify.PyType-class.html#__init__,Method lxml.sax.ElementTreeContentHandler.__init__()=lxml.sax.ElementTreeContentHandler-class.html#__init__,Method lxml.sax.ElementTreeProducer.__init__()=lxml.sax.ElementTreeProducer-class.html#__init__,Method lxml.tests.common_imports.LargeFileLike.__init__()=lxml.tests.common_imports.LargeFileLike-class.html#__init__,Method lxml.tests.common_imports.LargeFileLikeUnicode.__init__()=lxml.tests.common_imports.LargeFileLikeUnicode-class.html#__init__,Method lxml.tests.common_imports.SillyFileLike.__init__()=lxml.tests.common_imports.SillyFileLike-class.html#__init__,Method lxml.tests.dummy_http_server.HTTPRequestCollector.__init__()=lxml.tests.dummy_http_server.HTTPRequestCollector-class.html#__init__,Method lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.__init__()=lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike-class.html#__init__,Method lxml.tests.test_threading.ThreadPipelineTestCase.Worker.__init__()=lxml.tests.test_threading.ThreadPipelineTestCase.Worker-class.html#__init__,Method lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver.__init__()=lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver-class.html#__init__"><a title="lxml.builder.ElementMaker.__init__
lxml.cssselect.CSSSelector.__init__
lxml.doctestcompare._RestoreChecker.__init__
lxml.etree.AttributeBasedElementClassLookup.__init__
lxml.tests.common_imports.LargeFileLike.__init__
lxml.tests.common_imports.LargeFileLikeUnicode.__init__
lxml.tests.common_imports.SillyFileLike.__init__
+lxml.tests.dummy_http_server.HTTPRequestCollector.__init__
lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.__init__
lxml.tests.test_threading.ThreadPipelineTestCase.Worker.__init__
lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver.__init__" class="py-name" href="#" onclick="return doclink('link-30', '__init__', 'link-30');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt id="link-31" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-31', 'path', 'link-27');">path</a></tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt class="py-name">namespaces</tt><tt class="py-op">)</tt> </tt>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:36 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:13 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:38 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:13 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<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="{'appendChild': <capsule object "void (struct LxmlElement *, struct Lx\
-mlElement *)" at 0x16b71e0>,
+mlElement *)" at 0x2e411e0>,
'attributeValue': <capsule object "PyObject *(xmlNode *, xmlAttr *)" \
-at 0x16b2e70>,
+at 0x2e3ce70>,
'attributeValueFromNsName': <capsule object "PyObject *(xmlNode *, co\
-nst xmlChar *, const xmlChar *)" at 0x16b2ea0>,
+nst xmlChar *, const xmlChar *)" at 0x2e3cea0>,
'callLookupFallback': <capsule object "PyObject *(struct LxmlFallback\
-ElementClassLookup *, struct LxmlDocument *, xmlNode *)" at 0x16b2b40>\
+ElementClassLookup *, struct LxmlDocument *, xmlNode *)" at 0x2e3cb40>\
..."><code class="variable-group">{</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 L<code class="variable-ellipsis">...</code></code>
</td>
</tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type"> </span>
</td><td class="summary">
- <a name="memory_debugger"></a><span class="summary-name">memory_debugger</span> = <code title="<lxml.etree._MemDebug object at 0x2b3747793890>"><lxml.etree._MemDebug object at 0x2b3747793890></code>
+ <a name="memory_debugger"></a><span class="summary-name">memory_debugger</span> = <code title="<lxml.etree._MemDebug object at 0x2b10691c5890>"><lxml.etree._MemDebug object at 0x2b10691c5890></code>
</td>
</tr>
</table>
<dt>Value:</dt>
<dd><table><tr><td><pre class="variable">
<code class="variable-group">{</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 0x16b71e0><code class="variable-op">,</code>
+mlElement *)" at 0x2e411e0><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 0x16b2e70><code class="variable-op">,</code>
+at 0x2e3ce70><code class="variable-op">,</code>
<code class="variable-quote">'</code><code class="variable-string">attributeValueFromNsName</code><code class="variable-quote">'</code><code class="variable-op">: </code><capsule object "PyObject *(xmlNode *, co<span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
-nst xmlChar *, const xmlChar *)" at 0x16b2ea0><code class="variable-op">,</code>
+nst xmlChar *, const xmlChar *)" at 0x2e3cea0><code class="variable-op">,</code>
<code class="variable-quote">'</code><code class="variable-string">callLookupFallback</code><code class="variable-quote">'</code><code class="variable-op">: </code><capsule object "PyObject *(struct LxmlFallback<span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
-ElementClassLookup *, struct LxmlDocument *, xmlNode *)" at 0x16b2b40><code class="variable-op"></code><span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
+ElementClassLookup *, struct LxmlDocument *, xmlNode *)" at 0x2e3cb40><code class="variable-op"></code><span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
<code class="variable-ellipsis">...</code>
</pre></td></tr></table>
</dd>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
xf.write_doctype('<!DOCTYPE root SYSTEM "some.dtd">')
# generate an element (the root element)
- with xf.Element('root'):
+ with xf.element('root'):
# write a complete Element into the open root element
xf.write(etree.Element('test'))
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
</tr>
</table>
+ </td>
+ </tr>
+<tr class="private">
+ <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="_looks_like_full_html_unicode"></a><span class="summary-sig-name">_looks_like_full_html_unicode</span>(<span class="summary-sig-arg">...</span>)</span><br />
+ match(string[, pos[, endpos]]) --> match object or None.
+Matches zero or more characters at the beginning of the string</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="lxml.html-pysrc.html#_looks_like_full_html_unicode">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr class="private">
+ <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="_looks_like_full_html_bytes"></a><span class="summary-sig-name">_looks_like_full_html_bytes</span>(<span class="summary-sig-arg">...</span>)</span><br />
+ match(string[, pos[, endpos]]) --> match object or None.
+Matches zero or more characters at the beginning of the string</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="lxml.html-pysrc.html#_looks_like_full_html_bytes">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
</td>
</tr>
<tr>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-266', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-267" class="py-name" targets="Class lxml.etree.CustomElementClassLookup=lxml.etree.CustomElementClassLookup-class.html"><a title="lxml.etree.CustomElementClassLookup" class="py-name" href="#" onclick="return doclink('link-267', 'CustomElementClassLookup', 'link-267');">CustomElementClassLookup</a></tt><tt class="py-op">.</tt><tt id="link-268" class="py-name" targets="Method lxml.builder.ElementMaker.__init__()=lxml.builder.ElementMaker-class.html#__init__,Method lxml.cssselect.CSSSelector.__init__()=lxml.cssselect.CSSSelector-class.html#__init__,Method lxml.doctestcompare._RestoreChecker.__init__()=lxml.doctestcompare._RestoreChecker-class.html#__init__,Method lxml.etree.AttributeBasedElementClassLookup.__init__()=lxml.etree.AttributeBasedElementClassLookup-class.html#__init__,Method lxml.etree.CommentBase.__init__()=lxml.etree.CommentBase-class.html#__init__,Method lxml.etree.DTD.__init__()=lxml.etree.DTD-class.html#__init__,Method lxml.etree.ETCompatXMLParser.__init__()=lxml.etree.ETCompatXMLParser-class.html#__init__,Method lxml.etree.ETXPath.__init__()=lxml.etree.ETXPath-class.html#__init__,Method lxml.etree.ElementBase.__init__()=lxml.etree.ElementBase-class.html#__init__,Method lxml.etree.ElementDefaultClassLookup.__init__()=lxml.etree.ElementDefaultClassLookup-class.html#__init__,Method lxml.etree.ElementNamespaceClassLookup.__init__()=lxml.etree.ElementNamespaceClassLookup-class.html#__init__,Method lxml.etree.EntityBase.__init__()=lxml.etree.EntityBase-class.html#__init__,Method lxml.etree.FallbackElementClassLookup.__init__()=lxml.etree.FallbackElementClassLookup-class.html#__init__,Method lxml.etree.HTMLParser.__init__()=lxml.etree.HTMLParser-class.html#__init__,Method lxml.etree.LxmlError.__init__()=lxml.etree.LxmlError-class.html#__init__,Method lxml.etree.PIBase.__init__()=lxml.etree.PIBase-class.html#__init__,Method lxml.etree.ParseError.__init__()=lxml.etree.ParseError-class.html#__init__,Method lxml.etree.PyErrorLog.__init__()=lxml.etree.PyErrorLog-class.html#__init__,Method lxml.etree.QName.__init__()=lxml.etree.QName-class.html#__init__,Method lxml.etree.RelaxNG.__init__()=lxml.etree.RelaxNG-class.html#__init__,Method lxml.etree.Schematron.__init__()=lxml.etree.Schematron-class.html#__init__,Method lxml.etree.TreeBuilder.__init__()=lxml.etree.TreeBuilder-class.html#__init__,Method lxml.etree.XInclude.__init__()=lxml.etree.XInclude-class.html#__init__,Method lxml.etree.XMLParser.__init__()=lxml.etree.XMLParser-class.html#__init__,Method lxml.etree.XMLSchema.__init__()=lxml.etree.XMLSchema-class.html#__init__,Method lxml.etree.XPath.__init__()=lxml.etree.XPath-class.html#__init__,Method lxml.etree.XPathDocumentEvaluator.__init__()=lxml.etree.XPathDocumentEvaluator-class.html#__init__,Method lxml.etree.XPathElementEvaluator.__init__()=lxml.etree.XPathElementEvaluator-class.html#__init__,Method lxml.etree.XSLT.__init__()=lxml.etree.XSLT-class.html#__init__,Method lxml.etree.XSLTAccessControl.__init__()=lxml.etree.XSLTAccessControl-class.html#__init__,Method lxml.etree._BaseErrorLog.__init__()=lxml.etree._BaseErrorLog-class.html#__init__,Method lxml.etree._DomainErrorLog.__init__()=lxml.etree._DomainErrorLog-class.html#__init__,Method lxml.etree._ErrorLog.__init__()=lxml.etree._ErrorLog-class.html#__init__,Method lxml.etree._ListErrorLog.__init__()=lxml.etree._ListErrorLog-class.html#__init__,Method lxml.etree._RotatingErrorLog.__init__()=lxml.etree._RotatingErrorLog-class.html#__init__,Method lxml.etree._TargetParserResult.__init__()=lxml.etree._TargetParserResult-class.html#__init__,Method lxml.etree._XPathEvaluatorBase.__init__()=lxml.etree._XPathEvaluatorBase-class.html#__init__,Method lxml.etree.iterparse.__init__()=lxml.etree.iterparse-class.html#__init__,Method lxml.etree.iterwalk.__init__()=lxml.etree.iterwalk-class.html#__init__,Method lxml.etree.xmlfile.__init__()=lxml.etree.xmlfile-class.html#__init__,Method lxml.html.CheckboxValues.__init__()=lxml.html.CheckboxValues-class.html#__init__,Method lxml.html.FieldsDict.__init__()=lxml.html.FieldsDict-class.html#__init__,Method lxml.html.HTMLParser.__init__()=lxml.html.HTMLParser-class.html#__init__,Method lxml.html.HtmlElementClassLookup.__init__()=lxml.html.HtmlElementClassLookup-class.html#__init__,Method lxml.html.InputGetter.__init__()=lxml.html.InputGetter-class.html#__init__,Method lxml.html.MultipleSelectOptions.__init__()=lxml.html.MultipleSelectOptions-class.html#__init__,Method lxml.html.XHTMLParser.__init__()=lxml.html.XHTMLParser-class.html#__init__,Method lxml.html._MethodFunc.__init__()=lxml.html._MethodFunc-class.html#__init__,Method lxml.html.clean.Cleaner.__init__()=lxml.html.clean.Cleaner-class.html#__init__,Method lxml.html.formfill.DefaultErrorCreator.__init__()=lxml.html.formfill.DefaultErrorCreator-class.html#__init__,Method lxml.html.html5parser.HTMLParser.__init__()=lxml.html.html5parser.HTMLParser-class.html#__init__,Method lxml.html.html5parser.XHTMLParser.__init__()=lxml.html.html5parser.XHTMLParser-class.html#__init__,Method lxml.isoschematron.Schematron.__init__()=lxml.isoschematron.Schematron-class.html#__init__,Method lxml.objectify.ElementMaker.__init__()=lxml.objectify.ElementMaker-class.html#__init__,Method lxml.objectify.ObjectPath.__init__()=lxml.objectify.ObjectPath-class.html#__init__,Method lxml.objectify.ObjectifyElementClassLookup.__init__()=lxml.objectify.ObjectifyElementClassLookup-class.html#__init__,Method lxml.objectify.PyType.__init__()=lxml.objectify.PyType-class.html#__init__,Method lxml.sax.ElementTreeContentHandler.__init__()=lxml.sax.ElementTreeContentHandler-class.html#__init__,Method lxml.sax.ElementTreeProducer.__init__()=lxml.sax.ElementTreeProducer-class.html#__init__,Method lxml.tests.common_imports.LargeFileLike.__init__()=lxml.tests.common_imports.LargeFileLike-class.html#__init__,Method lxml.tests.common_imports.LargeFileLikeUnicode.__init__()=lxml.tests.common_imports.LargeFileLikeUnicode-class.html#__init__,Method lxml.tests.common_imports.SillyFileLike.__init__()=lxml.tests.common_imports.SillyFileLike-class.html#__init__,Method lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.__init__()=lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike-class.html#__init__,Method lxml.tests.test_threading.ThreadPipelineTestCase.Worker.__init__()=lxml.tests.test_threading.ThreadPipelineTestCase.Worker-class.html#__init__,Method lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver.__init__()=lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver-class.html#__init__"><a title="lxml.builder.ElementMaker.__init__
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-266', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-267" class="py-name" targets="Class lxml.etree.CustomElementClassLookup=lxml.etree.CustomElementClassLookup-class.html"><a title="lxml.etree.CustomElementClassLookup" class="py-name" href="#" onclick="return doclink('link-267', 'CustomElementClassLookup', 'link-267');">CustomElementClassLookup</a></tt><tt class="py-op">.</tt><tt id="link-268" class="py-name" targets="Method lxml.builder.ElementMaker.__init__()=lxml.builder.ElementMaker-class.html#__init__,Method lxml.cssselect.CSSSelector.__init__()=lxml.cssselect.CSSSelector-class.html#__init__,Method lxml.doctestcompare._RestoreChecker.__init__()=lxml.doctestcompare._RestoreChecker-class.html#__init__,Method lxml.etree.AttributeBasedElementClassLookup.__init__()=lxml.etree.AttributeBasedElementClassLookup-class.html#__init__,Method lxml.etree.CommentBase.__init__()=lxml.etree.CommentBase-class.html#__init__,Method lxml.etree.DTD.__init__()=lxml.etree.DTD-class.html#__init__,Method lxml.etree.ETCompatXMLParser.__init__()=lxml.etree.ETCompatXMLParser-class.html#__init__,Method lxml.etree.ETXPath.__init__()=lxml.etree.ETXPath-class.html#__init__,Method lxml.etree.ElementBase.__init__()=lxml.etree.ElementBase-class.html#__init__,Method lxml.etree.ElementDefaultClassLookup.__init__()=lxml.etree.ElementDefaultClassLookup-class.html#__init__,Method lxml.etree.ElementNamespaceClassLookup.__init__()=lxml.etree.ElementNamespaceClassLookup-class.html#__init__,Method lxml.etree.EntityBase.__init__()=lxml.etree.EntityBase-class.html#__init__,Method lxml.etree.FallbackElementClassLookup.__init__()=lxml.etree.FallbackElementClassLookup-class.html#__init__,Method lxml.etree.HTMLParser.__init__()=lxml.etree.HTMLParser-class.html#__init__,Method lxml.etree.LxmlError.__init__()=lxml.etree.LxmlError-class.html#__init__,Method lxml.etree.PIBase.__init__()=lxml.etree.PIBase-class.html#__init__,Method lxml.etree.ParseError.__init__()=lxml.etree.ParseError-class.html#__init__,Method lxml.etree.PyErrorLog.__init__()=lxml.etree.PyErrorLog-class.html#__init__,Method lxml.etree.QName.__init__()=lxml.etree.QName-class.html#__init__,Method lxml.etree.RelaxNG.__init__()=lxml.etree.RelaxNG-class.html#__init__,Method lxml.etree.Schematron.__init__()=lxml.etree.Schematron-class.html#__init__,Method lxml.etree.TreeBuilder.__init__()=lxml.etree.TreeBuilder-class.html#__init__,Method lxml.etree.XInclude.__init__()=lxml.etree.XInclude-class.html#__init__,Method lxml.etree.XMLParser.__init__()=lxml.etree.XMLParser-class.html#__init__,Method lxml.etree.XMLSchema.__init__()=lxml.etree.XMLSchema-class.html#__init__,Method lxml.etree.XPath.__init__()=lxml.etree.XPath-class.html#__init__,Method lxml.etree.XPathDocumentEvaluator.__init__()=lxml.etree.XPathDocumentEvaluator-class.html#__init__,Method lxml.etree.XPathElementEvaluator.__init__()=lxml.etree.XPathElementEvaluator-class.html#__init__,Method lxml.etree.XSLT.__init__()=lxml.etree.XSLT-class.html#__init__,Method lxml.etree.XSLTAccessControl.__init__()=lxml.etree.XSLTAccessControl-class.html#__init__,Method lxml.etree._BaseErrorLog.__init__()=lxml.etree._BaseErrorLog-class.html#__init__,Method lxml.etree._DomainErrorLog.__init__()=lxml.etree._DomainErrorLog-class.html#__init__,Method lxml.etree._ErrorLog.__init__()=lxml.etree._ErrorLog-class.html#__init__,Method lxml.etree._ListErrorLog.__init__()=lxml.etree._ListErrorLog-class.html#__init__,Method lxml.etree._RotatingErrorLog.__init__()=lxml.etree._RotatingErrorLog-class.html#__init__,Method lxml.etree._TargetParserResult.__init__()=lxml.etree._TargetParserResult-class.html#__init__,Method lxml.etree._XPathEvaluatorBase.__init__()=lxml.etree._XPathEvaluatorBase-class.html#__init__,Method lxml.etree.iterparse.__init__()=lxml.etree.iterparse-class.html#__init__,Method lxml.etree.iterwalk.__init__()=lxml.etree.iterwalk-class.html#__init__,Method lxml.etree.xmlfile.__init__()=lxml.etree.xmlfile-class.html#__init__,Method lxml.html.CheckboxValues.__init__()=lxml.html.CheckboxValues-class.html#__init__,Method lxml.html.FieldsDict.__init__()=lxml.html.FieldsDict-class.html#__init__,Method lxml.html.HTMLParser.__init__()=lxml.html.HTMLParser-class.html#__init__,Method lxml.html.HtmlElementClassLookup.__init__()=lxml.html.HtmlElementClassLookup-class.html#__init__,Method lxml.html.InputGetter.__init__()=lxml.html.InputGetter-class.html#__init__,Method lxml.html.MultipleSelectOptions.__init__()=lxml.html.MultipleSelectOptions-class.html#__init__,Method lxml.html.XHTMLParser.__init__()=lxml.html.XHTMLParser-class.html#__init__,Method lxml.html._MethodFunc.__init__()=lxml.html._MethodFunc-class.html#__init__,Method lxml.html.clean.Cleaner.__init__()=lxml.html.clean.Cleaner-class.html#__init__,Method lxml.html.formfill.DefaultErrorCreator.__init__()=lxml.html.formfill.DefaultErrorCreator-class.html#__init__,Method lxml.html.html5parser.HTMLParser.__init__()=lxml.html.html5parser.HTMLParser-class.html#__init__,Method lxml.html.html5parser.XHTMLParser.__init__()=lxml.html.html5parser.XHTMLParser-class.html#__init__,Method lxml.isoschematron.Schematron.__init__()=lxml.isoschematron.Schematron-class.html#__init__,Method lxml.objectify.ElementMaker.__init__()=lxml.objectify.ElementMaker-class.html#__init__,Method lxml.objectify.ObjectPath.__init__()=lxml.objectify.ObjectPath-class.html#__init__,Method lxml.objectify.ObjectifyElementClassLookup.__init__()=lxml.objectify.ObjectifyElementClassLookup-class.html#__init__,Method lxml.objectify.PyType.__init__()=lxml.objectify.PyType-class.html#__init__,Method lxml.sax.ElementTreeContentHandler.__init__()=lxml.sax.ElementTreeContentHandler-class.html#__init__,Method lxml.sax.ElementTreeProducer.__init__()=lxml.sax.ElementTreeProducer-class.html#__init__,Method lxml.tests.common_imports.LargeFileLike.__init__()=lxml.tests.common_imports.LargeFileLike-class.html#__init__,Method lxml.tests.common_imports.LargeFileLikeUnicode.__init__()=lxml.tests.common_imports.LargeFileLikeUnicode-class.html#__init__,Method lxml.tests.common_imports.SillyFileLike.__init__()=lxml.tests.common_imports.SillyFileLike-class.html#__init__,Method lxml.tests.dummy_http_server.HTTPRequestCollector.__init__()=lxml.tests.dummy_http_server.HTTPRequestCollector-class.html#__init__,Method lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.__init__()=lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike-class.html#__init__,Method lxml.tests.test_threading.ThreadPipelineTestCase.Worker.__init__()=lxml.tests.test_threading.ThreadPipelineTestCase.Worker-class.html#__init__,Method lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver.__init__()=lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver-class.html#__init__"><a title="lxml.builder.ElementMaker.__init__
lxml.cssselect.CSSSelector.__init__
lxml.doctestcompare._RestoreChecker.__init__
lxml.etree.AttributeBasedElementClassLookup.__init__
lxml.tests.common_imports.LargeFileLike.__init__
lxml.tests.common_imports.LargeFileLikeUnicode.__init__
lxml.tests.common_imports.SillyFileLike.__init__
+lxml.tests.dummy_http_server.HTTPRequestCollector.__init__
lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.__init__
lxml.tests.test_threading.ThreadPipelineTestCase.Worker.__init__
lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver.__init__" class="py-name" href="#" onclick="return doclink('link-268', '__init__', 'link-268');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
<a name="L557"></a><tt class="py-lineno"> 557</tt> <tt class="py-line"><tt class="py-comment"># parsing</tt> </tt>
<a name="L558"></a><tt class="py-lineno"> 558</tt> <tt class="py-line"><tt class="py-comment">################################################################################</tt> </tt>
<a name="L559"></a><tt class="py-lineno"> 559</tt> <tt class="py-line"> </tt>
-<a name="document_fromstring"></a><div id="document_fromstring-def"><a name="L560"></a><tt class="py-lineno"> 560</tt> <a class="py-toggle" href="#" id="document_fromstring-toggle" onclick="return toggle('document_fromstring');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html-module.html#document_fromstring">document_fromstring</a><tt class="py-op">(</tt><tt class="py-param">html</tt><tt class="py-op">,</tt> <tt class="py-param">parser</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-param">kw</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="document_fromstring-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="document_fromstring-expanded"><a name="L561"></a><tt class="py-lineno"> 561</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-293" 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-293', 'parser', 'link-293');">parser</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L562"></a><tt class="py-lineno"> 562</tt> <tt class="py-line"> <tt id="link-294" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-294', 'parser', 'link-293');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-295" class="py-name" targets="Variable lxml.html.html5parser.html_parser=lxml.html.html5parser-module.html#html_parser,Variable lxml.html.html_parser=lxml.html-module.html#html_parser"><a title="lxml.html.html5parser.html_parser
-lxml.html.html_parser" class="py-name" href="#" onclick="return doclink('link-295', 'html_parser', 'link-295');">html_parser</a></tt> </tt>
-<a name="L563"></a><tt class="py-lineno"> 563</tt> <tt class="py-line"> <tt id="link-296" 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-296', 'value', 'link-176');">value</a></tt> <tt class="py-op">=</tt> <tt id="link-297" class="py-name"><a title="lxml.etree
+<a name="L560"></a><tt class="py-lineno"> 560</tt> <tt class="py-line"><tt class="py-name">_looks_like_full_html_unicode</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>
+<a name="L561"></a><tt class="py-lineno"> 561</tt> <tt class="py-line"> <tt class="py-name">unicode</tt><tt class="py-op">(</tt><tt class="py-string">r'^\s*<(?:html|!doctype)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt id="link-293" class="py-name"><a title="lxml.html.builder.I" class="py-name" href="#" onclick="return doclink('link-293', 'I', 'link-39');">I</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">match</tt> </tt>
+<a name="L562"></a><tt class="py-lineno"> 562</tt> <tt class="py-line"><tt class="py-name">_looks_like_full_html_bytes</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>
+<a name="L563"></a><tt class="py-lineno"> 563</tt> <tt class="py-line"> <tt class="py-string">r'^\s*<(?:html|!doctype)'</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-op">,</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt id="link-294" class="py-name"><a title="lxml.html.builder.I" class="py-name" href="#" onclick="return doclink('link-294', 'I', 'link-39');">I</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">match</tt> </tt>
+<a name="L564"></a><tt class="py-lineno"> 564</tt> <tt class="py-line"> </tt>
+<a name="document_fromstring"></a><div id="document_fromstring-def"><a name="L565"></a><tt class="py-lineno"> 565</tt> <a class="py-toggle" href="#" id="document_fromstring-toggle" onclick="return toggle('document_fromstring');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html-module.html#document_fromstring">document_fromstring</a><tt class="py-op">(</tt><tt class="py-param">html</tt><tt class="py-op">,</tt> <tt class="py-param">parser</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-param">kw</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="document_fromstring-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="document_fromstring-expanded"><a name="L566"></a><tt class="py-lineno"> 566</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-295" 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-295', 'parser', 'link-295');">parser</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L567"></a><tt class="py-lineno"> 567</tt> <tt class="py-line"> <tt id="link-296" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-296', 'parser', 'link-295');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-297" class="py-name" targets="Variable lxml.html.html5parser.html_parser=lxml.html.html5parser-module.html#html_parser,Variable lxml.html.html_parser=lxml.html-module.html#html_parser"><a title="lxml.html.html5parser.html_parser
+lxml.html.html_parser" class="py-name" href="#" onclick="return doclink('link-297', 'html_parser', 'link-297');">html_parser</a></tt> </tt>
+<a name="L568"></a><tt class="py-lineno"> 568</tt> <tt class="py-line"> <tt id="link-298" 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-298', 'value', 'link-176');">value</a></tt> <tt class="py-op">=</tt> <tt id="link-299" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-297', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-298" class="py-name"><a title="lxml.etree.fromstring
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-299', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-300" 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-298', 'fromstring', 'link-242');">fromstring</a></tt><tt class="py-op">(</tt><tt id="link-299" class="py-name"><a title="lxml.html
+lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-300', 'fromstring', 'link-242');">fromstring</a></tt><tt class="py-op">(</tt><tt id="link-301" 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-299', 'html', 'link-5');">html</a></tt><tt class="py-op">,</tt> <tt id="link-300" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-300', 'parser', 'link-293');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-name">kw</tt><tt class="py-op">)</tt> </tt>
-<a name="L564"></a><tt class="py-lineno"> 564</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-301" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-301', 'html', 'link-5');">html</a></tt><tt class="py-op">,</tt> <tt id="link-302" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-302', 'parser', 'link-295');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-name">kw</tt><tt class="py-op">)</tt> </tt>
+<a name="L569"></a><tt class="py-lineno"> 569</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-303" 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-301', 'value', 'link-176');">value</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L565"></a><tt class="py-lineno"> 565</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-302" class="py-name"><a title="lxml.etree
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-303', 'value', 'link-176');">value</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L570"></a><tt class="py-lineno"> 570</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-304" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-302', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-303" class="py-name" targets="Class lxml.etree.ParserError=lxml.etree.ParserError-class.html"><a title="lxml.etree.ParserError" class="py-name" href="#" onclick="return doclink('link-303', 'ParserError', 'link-303');">ParserError</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L566"></a><tt class="py-lineno"> 566</tt> <tt class="py-line"> <tt class="py-string">"Document is empty"</tt><tt class="py-op">)</tt> </tt>
-<a name="L567"></a><tt class="py-lineno"> 567</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-304" 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-304', 'value', 'link-176');">value</a></tt> </tt>
-</div><a name="L568"></a><tt class="py-lineno"> 568</tt> <tt class="py-line"> </tt>
-<a name="fragments_fromstring"></a><div id="fragments_fromstring-def"><a name="L569"></a><tt class="py-lineno"> 569</tt> <a class="py-toggle" href="#" id="fragments_fromstring-toggle" onclick="return toggle('fragments_fromstring');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html-module.html#fragments_fromstring">fragments_fromstring</a><tt class="py-op">(</tt><tt class="py-param">html</tt><tt class="py-op">,</tt> <tt class="py-param">no_leading_text</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-param">base_url</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L570"></a><tt class="py-lineno"> 570</tt> <tt class="py-line"> <tt class="py-param">parser</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-param">kw</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="fragments_fromstring-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="fragments_fromstring-expanded"><a name="L571"></a><tt class="py-lineno"> 571</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L572"></a><tt class="py-lineno"> 572</tt> <tt class="py-line"><tt class="py-docstring"> Parses several HTML elements, returning a list of elements.</tt> </tt>
-<a name="L573"></a><tt class="py-lineno"> 573</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L574"></a><tt class="py-lineno"> 574</tt> <tt class="py-line"><tt class="py-docstring"> The first item in the list may be a string (though leading</tt> </tt>
-<a name="L575"></a><tt class="py-lineno"> 575</tt> <tt class="py-line"><tt class="py-docstring"> whitespace is removed). If no_leading_text is true, then it will</tt> </tt>
-<a name="L576"></a><tt class="py-lineno"> 576</tt> <tt class="py-line"><tt class="py-docstring"> be an error if there is leading text, and it will always be a list</tt> </tt>
-<a name="L577"></a><tt class="py-lineno"> 577</tt> <tt class="py-line"><tt class="py-docstring"> of only elements.</tt> </tt>
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-304', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-305" class="py-name" targets="Class lxml.etree.ParserError=lxml.etree.ParserError-class.html"><a title="lxml.etree.ParserError" class="py-name" href="#" onclick="return doclink('link-305', 'ParserError', 'link-305');">ParserError</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L571"></a><tt class="py-lineno"> 571</tt> <tt class="py-line"> <tt class="py-string">"Document is empty"</tt><tt class="py-op">)</tt> </tt>
+<a name="L572"></a><tt class="py-lineno"> 572</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-306" 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-306', 'value', 'link-176');">value</a></tt> </tt>
+</div><a name="L573"></a><tt class="py-lineno"> 573</tt> <tt class="py-line"> </tt>
+<a name="fragments_fromstring"></a><div id="fragments_fromstring-def"><a name="L574"></a><tt class="py-lineno"> 574</tt> <a class="py-toggle" href="#" id="fragments_fromstring-toggle" onclick="return toggle('fragments_fromstring');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html-module.html#fragments_fromstring">fragments_fromstring</a><tt class="py-op">(</tt><tt class="py-param">html</tt><tt class="py-op">,</tt> <tt class="py-param">no_leading_text</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-param">base_url</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L575"></a><tt class="py-lineno"> 575</tt> <tt class="py-line"> <tt class="py-param">parser</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-param">kw</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="fragments_fromstring-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="fragments_fromstring-expanded"><a name="L576"></a><tt class="py-lineno"> 576</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L577"></a><tt class="py-lineno"> 577</tt> <tt class="py-line"><tt class="py-docstring"> Parses several HTML elements, returning a list of elements.</tt> </tt>
<a name="L578"></a><tt class="py-lineno"> 578</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L579"></a><tt class="py-lineno"> 579</tt> <tt class="py-line"><tt class="py-docstring"> base_url will set the document's base_url attribute (and the tree's docinfo.URL)</tt> </tt>
-<a name="L580"></a><tt class="py-lineno"> 580</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L581"></a><tt class="py-lineno"> 581</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-305" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-305', 'parser', 'link-293');">parser</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L582"></a><tt class="py-lineno"> 582</tt> <tt class="py-line"> <tt id="link-306" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-306', 'parser', 'link-293');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-307" class="py-name"><a title="lxml.html.html5parser.html_parser
-lxml.html.html_parser" class="py-name" href="#" onclick="return doclink('link-307', 'html_parser', 'link-295');">html_parser</a></tt> </tt>
-<a name="L583"></a><tt class="py-lineno"> 583</tt> <tt class="py-line"> <tt class="py-comment"># FIXME: check what happens when you give html with a body, head, etc.</tt> </tt>
-<a name="L584"></a><tt class="py-lineno"> 584</tt> <tt class="py-line"> <tt id="link-308" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-308', 'start', 'link-189');">start</a></tt> <tt class="py-op">=</tt> <tt id="link-309" class="py-name"><a title="lxml.html
+<a name="L579"></a><tt class="py-lineno"> 579</tt> <tt class="py-line"><tt class="py-docstring"> The first item in the list may be a string (though leading</tt> </tt>
+<a name="L580"></a><tt class="py-lineno"> 580</tt> <tt class="py-line"><tt class="py-docstring"> whitespace is removed). If no_leading_text is true, then it will</tt> </tt>
+<a name="L581"></a><tt class="py-lineno"> 581</tt> <tt class="py-line"><tt class="py-docstring"> be an error if there is leading text, and it will always be a list</tt> </tt>
+<a name="L582"></a><tt class="py-lineno"> 582</tt> <tt class="py-line"><tt class="py-docstring"> of only elements.</tt> </tt>
+<a name="L583"></a><tt class="py-lineno"> 583</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L584"></a><tt class="py-lineno"> 584</tt> <tt class="py-line"><tt class="py-docstring"> base_url will set the document's base_url attribute (and the tree's docinfo.URL)</tt> </tt>
+<a name="L585"></a><tt class="py-lineno"> 585</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L586"></a><tt class="py-lineno"> 586</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-307" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-307', 'parser', 'link-295');">parser</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L587"></a><tt class="py-lineno"> 587</tt> <tt class="py-line"> <tt id="link-308" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-308', 'parser', 'link-295');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-309" class="py-name"><a title="lxml.html.html5parser.html_parser
+lxml.html.html_parser" class="py-name" href="#" onclick="return doclink('link-309', 'html_parser', 'link-297');">html_parser</a></tt> </tt>
+<a name="L588"></a><tt class="py-lineno"> 588</tt> <tt class="py-line"> <tt class="py-comment"># FIXME: check what happens when you give html with a body, head, etc.</tt> </tt>
+<a name="L589"></a><tt class="py-lineno"> 589</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-310" 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-310', 'html', 'link-5');">html</a></tt><tt class="py-op">,</tt> <tt class="py-name">bytes</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L590"></a><tt class="py-lineno"> 590</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">_looks_like_full_html_bytes</tt><tt class="py-op">(</tt><tt id="link-311" 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-309', 'html', 'link-5');">html</a></tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">20</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">lstrip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">lower</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L585"></a><tt class="py-lineno"> 585</tt> <tt class="py-line"> <tt class="py-keyword">if</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-keyword">and</tt> <tt id="link-310" 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-310', 'hasattr', 'link-310');">hasattr</a></tt><tt class="py-op">(</tt><tt id="link-311" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-311', 'start', 'link-189');">start</a></tt><tt class="py-op">,</tt> <tt class="py-string">'decode'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> <tt class="py-comment"># Py3 can't mix bytes into startswith()</tt> </tt>
-<a name="L586"></a><tt class="py-lineno"> 586</tt> <tt class="py-line"> <tt id="link-312" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-312', 'start', 'link-189');">start</a></tt> <tt class="py-op">=</tt> <tt id="link-313" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-313', 'start', 'link-189');">start</a></tt><tt class="py-op">.</tt><tt class="py-name">decode</tt><tt class="py-op">(</tt><tt class="py-string">'ISO8859-1'</tt><tt class="py-op">)</tt> </tt>
-<a name="L587"></a><tt class="py-lineno"> 587</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-314" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-314', 'start', 'link-189');">start</a></tt><tt class="py-op">.</tt><tt class="py-name">startswith</tt><tt class="py-op">(</tt><tt class="py-string">'<html'</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt id="link-315" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-315', 'start', 'link-189');">start</a></tt><tt class="py-op">.</tt><tt class="py-name">startswith</tt><tt class="py-op">(</tt><tt class="py-string">'<!doctype'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L588"></a><tt class="py-lineno"> 588</tt> <tt class="py-line"> <tt id="link-316" class="py-name"><a title="lxml.html
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-311', 'html', 'link-5');">html</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L591"></a><tt class="py-lineno"> 591</tt> <tt class="py-line"> <tt id="link-312" 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-316', 'html', 'link-5');">html</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'<html><body>%s</body></html>'</tt> <tt class="py-op">%</tt> <tt id="link-317" class="py-name"><a title="lxml.html
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-312', 'html', 'link-5');">html</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'<html><body>%s</body></html>'</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-op">%</tt> <tt id="link-313" 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-317', 'html', 'link-5');">html</a></tt> </tt>
-<a name="L589"></a><tt class="py-lineno"> 589</tt> <tt class="py-line"> <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-318" class="py-name" targets="Function lxml.html.html5parser.document_fromstring()=lxml.html.html5parser-module.html#document_fromstring"><a title="lxml.html.html5parser.document_fromstring" class="py-name" href="#" onclick="return doclink('link-318', 'document_fromstring', 'link-318');">document_fromstring</a></tt><tt class="py-op">(</tt><tt id="link-319" class="py-name"><a title="lxml.html
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-313', 'html', 'link-5');">html</a></tt> </tt>
+<a name="L592"></a><tt class="py-lineno"> 592</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L593"></a><tt class="py-lineno"> 593</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">_looks_like_full_html_unicode</tt><tt class="py-op">(</tt><tt id="link-314" 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-319', 'html', 'link-5');">html</a></tt><tt class="py-op">,</tt> <tt id="link-320" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-320', 'parser', 'link-293');">parser</a></tt><tt class="py-op">=</tt><tt id="link-321" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-321', 'parser', 'link-293');">parser</a></tt><tt class="py-op">,</tt> <tt id="link-322" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-322', 'base_url', 'link-61');">base_url</a></tt><tt class="py-op">=</tt><tt id="link-323" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-323', 'base_url', 'link-61');">base_url</a></tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-name">kw</tt><tt class="py-op">)</tt> </tt>
-<a name="L590"></a><tt class="py-lineno"> 590</tt> <tt class="py-line"> <tt class="py-keyword">assert</tt> <tt class="py-name">_nons</tt><tt class="py-op">(</tt><tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-324" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-314', 'html', 'link-5');">html</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L594"></a><tt class="py-lineno"> 594</tt> <tt class="py-line"> <tt id="link-315" 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-315', 'html', 'link-5');">html</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'<html><body>%s</body></html>'</tt> <tt class="py-op">%</tt> <tt id="link-316" 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-316', 'html', 'link-5');">html</a></tt> </tt>
+<a name="L595"></a><tt class="py-lineno"> 595</tt> <tt class="py-line"> <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-317" class="py-name" targets="Function lxml.html.html5parser.document_fromstring()=lxml.html.html5parser-module.html#document_fromstring"><a title="lxml.html.html5parser.document_fromstring" class="py-name" href="#" onclick="return doclink('link-317', 'document_fromstring', 'link-317');">document_fromstring</a></tt><tt class="py-op">(</tt><tt id="link-318" 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-318', 'html', 'link-5');">html</a></tt><tt class="py-op">,</tt> <tt id="link-319" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-319', 'parser', 'link-295');">parser</a></tt><tt class="py-op">=</tt><tt id="link-320" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-320', 'parser', 'link-295');">parser</a></tt><tt class="py-op">,</tt> <tt id="link-321" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-321', 'base_url', 'link-61');">base_url</a></tt><tt class="py-op">=</tt><tt id="link-322" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-322', 'base_url', 'link-61');">base_url</a></tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-name">kw</tt><tt class="py-op">)</tt> </tt>
+<a name="L596"></a><tt class="py-lineno"> 596</tt> <tt class="py-line"> <tt class="py-keyword">assert</tt> <tt class="py-name">_nons</tt><tt class="py-op">(</tt><tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-323" 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-324', 'tag', 'link-50');">tag</a></tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-string">'html'</tt> </tt>
-<a name="L591"></a><tt class="py-lineno"> 591</tt> <tt class="py-line"> <tt class="py-name">bodies</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">e</tt> <tt class="py-keyword">for</tt> <tt class="py-name">e</tt> <tt class="py-keyword">in</tt> <tt class="py-name">doc</tt> <tt class="py-keyword">if</tt> <tt class="py-name">_nons</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-325" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-323', 'tag', 'link-50');">tag</a></tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-string">'html'</tt> </tt>
+<a name="L597"></a><tt class="py-lineno"> 597</tt> <tt class="py-line"> <tt class="py-name">bodies</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">e</tt> <tt class="py-keyword">for</tt> <tt class="py-name">e</tt> <tt class="py-keyword">in</tt> <tt class="py-name">doc</tt> <tt class="py-keyword">if</tt> <tt class="py-name">_nons</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-324" 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-325', 'tag', 'link-50');">tag</a></tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-string">'body'</tt><tt class="py-op">]</tt> </tt>
-<a name="L592"></a><tt class="py-lineno"> 592</tt> <tt class="py-line"> <tt class="py-keyword">assert</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">bodies</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-string">"too many bodies: %r in %r"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">bodies</tt><tt class="py-op">,</tt> <tt id="link-326" class="py-name"><a title="lxml.html
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-324', 'tag', 'link-50');">tag</a></tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-string">'body'</tt><tt class="py-op">]</tt> </tt>
+<a name="L598"></a><tt class="py-lineno"> 598</tt> <tt class="py-line"> <tt class="py-keyword">assert</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">bodies</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-string">"too many bodies: %r in %r"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">bodies</tt><tt class="py-op">,</tt> <tt id="link-325" 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-326', 'html', 'link-5');">html</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L593"></a><tt class="py-lineno"> 593</tt> <tt class="py-line"> <tt id="link-327" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-327', 'body', 'link-72');">body</a></tt> <tt class="py-op">=</tt> <tt class="py-name">bodies</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="L594"></a><tt class="py-lineno"> 594</tt> <tt class="py-line"> <tt id="link-328" 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-328', 'elements', 'link-328');">elements</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L595"></a><tt class="py-lineno"> 595</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">no_leading_text</tt> <tt class="py-keyword">and</tt> <tt id="link-329" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-329', 'body', 'link-72');">body</a></tt><tt class="py-op">.</tt><tt id="link-330" class="py-name"><a title="lxml.etree.QName.text
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-325', 'html', 'link-5');">html</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L599"></a><tt class="py-lineno"> 599</tt> <tt class="py-line"> <tt id="link-326" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-326', 'body', 'link-72');">body</a></tt> <tt class="py-op">=</tt> <tt class="py-name">bodies</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L600"></a><tt class="py-lineno"> 600</tt> <tt class="py-line"> <tt id="link-327" 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-327', 'elements', 'link-327');">elements</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L601"></a><tt class="py-lineno"> 601</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">no_leading_text</tt> <tt class="py-keyword">and</tt> <tt id="link-328" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-328', 'body', 'link-72');">body</a></tt><tt class="py-op">.</tt><tt id="link-329" 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-330', 'text', 'link-104');">text</a></tt> <tt class="py-keyword">and</tt> <tt id="link-331" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-331', 'body', 'link-72');">body</a></tt><tt class="py-op">.</tt><tt id="link-332" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-329', 'text', 'link-104');">text</a></tt> <tt class="py-keyword">and</tt> <tt id="link-330" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-330', 'body', 'link-72');">body</a></tt><tt class="py-op">.</tt><tt id="link-331" 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-332', 'text', 'link-104');">text</a></tt><tt class="py-op">.</tt><tt id="link-333" class="py-name"><a title="lxml.doctestcompare.strip" class="py-name" href="#" onclick="return doclink('link-333', 'strip', 'link-216');">strip</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L596"></a><tt class="py-lineno"> 596</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-334" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-331', 'text', 'link-104');">text</a></tt><tt class="py-op">.</tt><tt id="link-332" class="py-name"><a title="lxml.doctestcompare.strip" class="py-name" href="#" onclick="return doclink('link-332', 'strip', 'link-216');">strip</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L602"></a><tt class="py-lineno"> 602</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-333" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-334', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-335" class="py-name"><a title="lxml.etree.ParserError" class="py-name" href="#" onclick="return doclink('link-335', 'ParserError', 'link-303');">ParserError</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L597"></a><tt class="py-lineno"> 597</tt> <tt class="py-line"> <tt class="py-string">"There is leading text: %r"</tt> <tt class="py-op">%</tt> <tt id="link-336" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-336', 'body', 'link-72');">body</a></tt><tt class="py-op">.</tt><tt id="link-337" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-333', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-334" class="py-name"><a title="lxml.etree.ParserError" class="py-name" href="#" onclick="return doclink('link-334', 'ParserError', 'link-305');">ParserError</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L603"></a><tt class="py-lineno"> 603</tt> <tt class="py-line"> <tt class="py-string">"There is leading text: %r"</tt> <tt class="py-op">%</tt> <tt id="link-335" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-335', 'body', 'link-72');">body</a></tt><tt class="py-op">.</tt><tt id="link-336" 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-337', 'text', 'link-104');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L598"></a><tt class="py-lineno"> 598</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-338" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-338', 'body', 'link-72');">body</a></tt><tt class="py-op">.</tt><tt id="link-339" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-336', 'text', 'link-104');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L604"></a><tt class="py-lineno"> 604</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-337" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-337', 'body', 'link-72');">body</a></tt><tt class="py-op">.</tt><tt id="link-338" 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-339', 'text', 'link-104');">text</a></tt> <tt class="py-keyword">and</tt> <tt id="link-340" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-340', 'body', 'link-72');">body</a></tt><tt class="py-op">.</tt><tt id="link-341" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-338', 'text', 'link-104');">text</a></tt> <tt class="py-keyword">and</tt> <tt id="link-339" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-339', 'body', 'link-72');">body</a></tt><tt class="py-op">.</tt><tt id="link-340" 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-341', 'text', 'link-104');">text</a></tt><tt class="py-op">.</tt><tt id="link-342" class="py-name"><a title="lxml.doctestcompare.strip" class="py-name" href="#" onclick="return doclink('link-342', 'strip', 'link-216');">strip</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L599"></a><tt class="py-lineno"> 599</tt> <tt class="py-line"> <tt id="link-343" class="py-name"><a title="lxml.etree.DTD.elements" class="py-name" href="#" onclick="return doclink('link-343', 'elements', 'link-328');">elements</a></tt><tt class="py-op">.</tt><tt id="link-344" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-344', 'append', 'link-275');">append</a></tt><tt class="py-op">(</tt><tt id="link-345" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-345', 'body', 'link-72');">body</a></tt><tt class="py-op">.</tt><tt id="link-346" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-340', 'text', 'link-104');">text</a></tt><tt class="py-op">.</tt><tt id="link-341" class="py-name"><a title="lxml.doctestcompare.strip" class="py-name" href="#" onclick="return doclink('link-341', 'strip', 'link-216');">strip</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L605"></a><tt class="py-lineno"> 605</tt> <tt class="py-line"> <tt id="link-342" class="py-name"><a title="lxml.etree.DTD.elements" class="py-name" href="#" onclick="return doclink('link-342', 'elements', 'link-327');">elements</a></tt><tt class="py-op">.</tt><tt id="link-343" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-343', 'append', 'link-275');">append</a></tt><tt class="py-op">(</tt><tt id="link-344" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-344', 'body', 'link-72');">body</a></tt><tt class="py-op">.</tt><tt id="link-345" 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-346', 'text', 'link-104');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L600"></a><tt class="py-lineno"> 600</tt> <tt class="py-line"> <tt id="link-347" class="py-name"><a title="lxml.etree.DTD.elements" class="py-name" href="#" onclick="return doclink('link-347', 'elements', 'link-328');">elements</a></tt><tt class="py-op">.</tt><tt id="link-348" 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-348', 'extend', 'link-348');">extend</a></tt><tt class="py-op">(</tt><tt id="link-349" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-349', 'body', 'link-72');">body</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L601"></a><tt class="py-lineno"> 601</tt> <tt class="py-line"> <tt class="py-comment"># FIXME: removing the reference to the parent artificial document</tt> </tt>
-<a name="L602"></a><tt class="py-lineno"> 602</tt> <tt class="py-line"> <tt class="py-comment"># would be nice</tt> </tt>
-<a name="L603"></a><tt class="py-lineno"> 603</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-350" class="py-name"><a title="lxml.etree.DTD.elements" class="py-name" href="#" onclick="return doclink('link-350', 'elements', 'link-328');">elements</a></tt> </tt>
-</div><a name="L604"></a><tt class="py-lineno"> 604</tt> <tt class="py-line"> </tt>
-<a name="fragment_fromstring"></a><div id="fragment_fromstring-def"><a name="L605"></a><tt class="py-lineno"> 605</tt> <a class="py-toggle" href="#" id="fragment_fromstring-toggle" onclick="return toggle('fragment_fromstring');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html-module.html#fragment_fromstring">fragment_fromstring</a><tt class="py-op">(</tt><tt class="py-param">html</tt><tt class="py-op">,</tt> <tt class="py-param">create_parent</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-param">base_url</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L606"></a><tt class="py-lineno"> 606</tt> <tt class="py-line"> <tt class="py-param">parser</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-param">kw</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="fragment_fromstring-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="fragment_fromstring-expanded"><a name="L607"></a><tt class="py-lineno"> 607</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L608"></a><tt class="py-lineno"> 608</tt> <tt class="py-line"><tt class="py-docstring"> Parses a single HTML element; it is an error if there is more than</tt> </tt>
-<a name="L609"></a><tt class="py-lineno"> 609</tt> <tt class="py-line"><tt class="py-docstring"> one element, or if anything but whitespace precedes or follows the</tt> </tt>
-<a name="L610"></a><tt class="py-lineno"> 610</tt> <tt class="py-line"><tt class="py-docstring"> element.</tt> </tt>
-<a name="L611"></a><tt class="py-lineno"> 611</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L612"></a><tt class="py-lineno"> 612</tt> <tt class="py-line"><tt class="py-docstring"> If create_parent is true (or is a tag name) then a parent node</tt> </tt>
-<a name="L613"></a><tt class="py-lineno"> 613</tt> <tt class="py-line"><tt class="py-docstring"> will be created to encapsulate the HTML in a single element. In</tt> </tt>
-<a name="L614"></a><tt class="py-lineno"> 614</tt> <tt class="py-line"><tt class="py-docstring"> this case, leading or trailing text is allowed.</tt> </tt>
-<a name="L615"></a><tt class="py-lineno"> 615</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L616"></a><tt class="py-lineno"> 616</tt> <tt class="py-line"><tt class="py-docstring"> base_url will set the document's base_url attribute (and the tree's docinfo.URL)</tt> </tt>
-<a name="L617"></a><tt class="py-lineno"> 617</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L618"></a><tt class="py-lineno"> 618</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-351" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-351', 'parser', 'link-293');">parser</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L619"></a><tt class="py-lineno"> 619</tt> <tt class="py-line"> <tt id="link-352" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-352', 'parser', 'link-293');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-353" class="py-name"><a title="lxml.html.html5parser.html_parser
-lxml.html.html_parser" class="py-name" href="#" onclick="return doclink('link-353', 'html_parser', 'link-295');">html_parser</a></tt> </tt>
-<a name="L620"></a><tt class="py-lineno"> 620</tt> <tt class="py-line"> </tt>
-<a name="L621"></a><tt class="py-lineno"> 621</tt> <tt class="py-line"> <tt class="py-name">accept_leading_text</tt> <tt class="py-op">=</tt> <tt class="py-name">bool</tt><tt class="py-op">(</tt><tt class="py-name">create_parent</tt><tt class="py-op">)</tt> </tt>
-<a name="L622"></a><tt class="py-lineno"> 622</tt> <tt class="py-line"> </tt>
-<a name="L623"></a><tt class="py-lineno"> 623</tt> <tt class="py-line"> <tt id="link-354" class="py-name"><a title="lxml.etree.DTD.elements" class="py-name" href="#" onclick="return doclink('link-354', 'elements', 'link-328');">elements</a></tt> <tt class="py-op">=</tt> <tt id="link-355" class="py-name" targets="Function lxml.html.html5parser.fragments_fromstring()=lxml.html.html5parser-module.html#fragments_fromstring"><a title="lxml.html.html5parser.fragments_fromstring" class="py-name" href="#" onclick="return doclink('link-355', 'fragments_fromstring', 'link-355');">fragments_fromstring</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L624"></a><tt class="py-lineno"> 624</tt> <tt class="py-line"> <tt id="link-356" class="py-name"><a title="lxml.html
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-345', 'text', 'link-104');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L606"></a><tt class="py-lineno"> 606</tt> <tt class="py-line"> <tt id="link-346" class="py-name"><a title="lxml.etree.DTD.elements" class="py-name" href="#" onclick="return doclink('link-346', 'elements', 'link-327');">elements</a></tt><tt class="py-op">.</tt><tt id="link-347" 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-347', 'extend', 'link-347');">extend</a></tt><tt class="py-op">(</tt><tt id="link-348" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-348', 'body', 'link-72');">body</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L607"></a><tt class="py-lineno"> 607</tt> <tt class="py-line"> <tt class="py-comment"># FIXME: removing the reference to the parent artificial document</tt> </tt>
+<a name="L608"></a><tt class="py-lineno"> 608</tt> <tt class="py-line"> <tt class="py-comment"># would be nice</tt> </tt>
+<a name="L609"></a><tt class="py-lineno"> 609</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-349" class="py-name"><a title="lxml.etree.DTD.elements" class="py-name" href="#" onclick="return doclink('link-349', 'elements', 'link-327');">elements</a></tt> </tt>
+</div><a name="L610"></a><tt class="py-lineno"> 610</tt> <tt class="py-line"> </tt>
+<a name="fragment_fromstring"></a><div id="fragment_fromstring-def"><a name="L611"></a><tt class="py-lineno"> 611</tt> <a class="py-toggle" href="#" id="fragment_fromstring-toggle" onclick="return toggle('fragment_fromstring');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html-module.html#fragment_fromstring">fragment_fromstring</a><tt class="py-op">(</tt><tt class="py-param">html</tt><tt class="py-op">,</tt> <tt class="py-param">create_parent</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-param">base_url</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L612"></a><tt class="py-lineno"> 612</tt> <tt class="py-line"> <tt class="py-param">parser</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-param">kw</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="fragment_fromstring-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="fragment_fromstring-expanded"><a name="L613"></a><tt class="py-lineno"> 613</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L614"></a><tt class="py-lineno"> 614</tt> <tt class="py-line"><tt class="py-docstring"> Parses a single HTML element; it is an error if there is more than</tt> </tt>
+<a name="L615"></a><tt class="py-lineno"> 615</tt> <tt class="py-line"><tt class="py-docstring"> one element, or if anything but whitespace precedes or follows the</tt> </tt>
+<a name="L616"></a><tt class="py-lineno"> 616</tt> <tt class="py-line"><tt class="py-docstring"> element.</tt> </tt>
+<a name="L617"></a><tt class="py-lineno"> 617</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L618"></a><tt class="py-lineno"> 618</tt> <tt class="py-line"><tt class="py-docstring"> If create_parent is true (or is a tag name) then a parent node</tt> </tt>
+<a name="L619"></a><tt class="py-lineno"> 619</tt> <tt class="py-line"><tt class="py-docstring"> will be created to encapsulate the HTML in a single element. In</tt> </tt>
+<a name="L620"></a><tt class="py-lineno"> 620</tt> <tt class="py-line"><tt class="py-docstring"> this case, leading or trailing text is allowed.</tt> </tt>
+<a name="L621"></a><tt class="py-lineno"> 621</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L622"></a><tt class="py-lineno"> 622</tt> <tt class="py-line"><tt class="py-docstring"> base_url will set the document's base_url attribute (and the tree's docinfo.URL)</tt> </tt>
+<a name="L623"></a><tt class="py-lineno"> 623</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L624"></a><tt class="py-lineno"> 624</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-350" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-350', 'parser', 'link-295');">parser</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L625"></a><tt class="py-lineno"> 625</tt> <tt class="py-line"> <tt id="link-351" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-351', 'parser', 'link-295');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-352" class="py-name"><a title="lxml.html.html5parser.html_parser
+lxml.html.html_parser" class="py-name" href="#" onclick="return doclink('link-352', 'html_parser', 'link-297');">html_parser</a></tt> </tt>
+<a name="L626"></a><tt class="py-lineno"> 626</tt> <tt class="py-line"> </tt>
+<a name="L627"></a><tt class="py-lineno"> 627</tt> <tt class="py-line"> <tt class="py-name">accept_leading_text</tt> <tt class="py-op">=</tt> <tt class="py-name">bool</tt><tt class="py-op">(</tt><tt class="py-name">create_parent</tt><tt class="py-op">)</tt> </tt>
+<a name="L628"></a><tt class="py-lineno"> 628</tt> <tt class="py-line"> </tt>
+<a name="L629"></a><tt class="py-lineno"> 629</tt> <tt class="py-line"> <tt id="link-353" class="py-name"><a title="lxml.etree.DTD.elements" class="py-name" href="#" onclick="return doclink('link-353', 'elements', 'link-327');">elements</a></tt> <tt class="py-op">=</tt> <tt id="link-354" class="py-name" targets="Function lxml.html.html5parser.fragments_fromstring()=lxml.html.html5parser-module.html#fragments_fromstring"><a title="lxml.html.html5parser.fragments_fromstring" class="py-name" href="#" onclick="return doclink('link-354', 'fragments_fromstring', 'link-354');">fragments_fromstring</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L630"></a><tt class="py-lineno"> 630</tt> <tt class="py-line"> <tt id="link-355" 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-356', 'html', 'link-5');">html</a></tt><tt class="py-op">,</tt> <tt id="link-357" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-357', 'parser', 'link-293');">parser</a></tt><tt class="py-op">=</tt><tt id="link-358" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-358', 'parser', 'link-293');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-name">no_leading_text</tt><tt class="py-op">=</tt><tt class="py-keyword">not</tt> <tt class="py-name">accept_leading_text</tt><tt class="py-op">,</tt> </tt>
-<a name="L625"></a><tt class="py-lineno"> 625</tt> <tt class="py-line"> <tt id="link-359" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-359', 'base_url', 'link-61');">base_url</a></tt><tt class="py-op">=</tt><tt id="link-360" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-360', 'base_url', 'link-61');">base_url</a></tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-name">kw</tt><tt class="py-op">)</tt> </tt>
-<a name="L626"></a><tt class="py-lineno"> 626</tt> <tt class="py-line"> </tt>
-<a name="L627"></a><tt class="py-lineno"> 627</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">create_parent</tt><tt class="py-op">:</tt> </tt>
-<a name="L628"></a><tt class="py-lineno"> 628</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">create_parent</tt><tt class="py-op">,</tt> <tt id="link-361" class="py-name"><a title="lxml.html.basestring
-lxml.html.clean.basestring" class="py-name" href="#" onclick="return doclink('link-361', 'basestring', 'link-13');">basestring</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L629"></a><tt class="py-lineno"> 629</tt> <tt class="py-line"> <tt class="py-name">create_parent</tt> <tt class="py-op">=</tt> <tt class="py-string">'div'</tt> </tt>
-<a name="L630"></a><tt class="py-lineno"> 630</tt> <tt class="py-line"> <tt class="py-name">new_root</tt> <tt class="py-op">=</tt> <tt id="link-362" class="py-name" targets="Function lxml.etree.Element()=lxml.etree-module.html#Element,Function lxml.objectify.Element()=lxml.objectify-module.html#Element,Method lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element()=lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#Element,Class xml.etree.ElementTree.Element=xml.etree.ElementTree.Element-class.html"><a title="lxml.etree.Element
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-355', 'html', 'link-5');">html</a></tt><tt class="py-op">,</tt> <tt id="link-356" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-356', 'parser', 'link-295');">parser</a></tt><tt class="py-op">=</tt><tt id="link-357" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-357', 'parser', 'link-295');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-name">no_leading_text</tt><tt class="py-op">=</tt><tt class="py-keyword">not</tt> <tt class="py-name">accept_leading_text</tt><tt class="py-op">,</tt> </tt>
+<a name="L631"></a><tt class="py-lineno"> 631</tt> <tt class="py-line"> <tt id="link-358" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-358', 'base_url', 'link-61');">base_url</a></tt><tt class="py-op">=</tt><tt id="link-359" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-359', 'base_url', 'link-61');">base_url</a></tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-name">kw</tt><tt class="py-op">)</tt> </tt>
+<a name="L632"></a><tt class="py-lineno"> 632</tt> <tt class="py-line"> </tt>
+<a name="L633"></a><tt class="py-lineno"> 633</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">create_parent</tt><tt class="py-op">:</tt> </tt>
+<a name="L634"></a><tt class="py-lineno"> 634</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">create_parent</tt><tt class="py-op">,</tt> <tt id="link-360" class="py-name"><a title="lxml.html.basestring
+lxml.html.clean.basestring" class="py-name" href="#" onclick="return doclink('link-360', 'basestring', 'link-13');">basestring</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L635"></a><tt class="py-lineno"> 635</tt> <tt class="py-line"> <tt class="py-name">create_parent</tt> <tt class="py-op">=</tt> <tt class="py-string">'div'</tt> </tt>
+<a name="L636"></a><tt class="py-lineno"> 636</tt> <tt class="py-line"> <tt class="py-name">new_root</tt> <tt class="py-op">=</tt> <tt id="link-361" class="py-name" targets="Function lxml.etree.Element()=lxml.etree-module.html#Element,Function lxml.objectify.Element()=lxml.objectify-module.html#Element,Method lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element()=lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#Element,Class xml.etree.ElementTree.Element=xml.etree.ElementTree.Element-class.html"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-362', 'Element', 'link-362');">Element</a></tt><tt class="py-op">(</tt><tt class="py-name">create_parent</tt><tt class="py-op">)</tt> </tt>
-<a name="L631"></a><tt class="py-lineno"> 631</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-363" class="py-name"><a title="lxml.etree.DTD.elements" class="py-name" href="#" onclick="return doclink('link-363', 'elements', 'link-328');">elements</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L632"></a><tt class="py-lineno"> 632</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-364" class="py-name"><a title="lxml.etree.DTD.elements" class="py-name" href="#" onclick="return doclink('link-364', 'elements', 'link-328');">elements</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-365" class="py-name"><a title="lxml.html.basestring
-lxml.html.clean.basestring" class="py-name" href="#" onclick="return doclink('link-365', 'basestring', 'link-13');">basestring</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L633"></a><tt class="py-lineno"> 633</tt> <tt class="py-line"> <tt class="py-name">new_root</tt><tt class="py-op">.</tt><tt id="link-366" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-361', 'Element', 'link-361');">Element</a></tt><tt class="py-op">(</tt><tt class="py-name">create_parent</tt><tt class="py-op">)</tt> </tt>
+<a name="L637"></a><tt class="py-lineno"> 637</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-362" class="py-name"><a title="lxml.etree.DTD.elements" class="py-name" href="#" onclick="return doclink('link-362', 'elements', 'link-327');">elements</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L638"></a><tt class="py-lineno"> 638</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-363" class="py-name"><a title="lxml.etree.DTD.elements" class="py-name" href="#" onclick="return doclink('link-363', 'elements', 'link-327');">elements</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-364" class="py-name"><a title="lxml.html.basestring
+lxml.html.clean.basestring" class="py-name" href="#" onclick="return doclink('link-364', 'basestring', 'link-13');">basestring</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L639"></a><tt class="py-lineno"> 639</tt> <tt class="py-line"> <tt class="py-name">new_root</tt><tt class="py-op">.</tt><tt id="link-365" 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-366', 'text', 'link-104');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-367" class="py-name"><a title="lxml.etree.DTD.elements" class="py-name" href="#" onclick="return doclink('link-367', 'elements', 'link-328');">elements</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="L634"></a><tt class="py-lineno"> 634</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt id="link-368" class="py-name"><a title="lxml.etree.DTD.elements" class="py-name" href="#" onclick="return doclink('link-368', 'elements', 'link-328');">elements</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="L635"></a><tt class="py-lineno"> 635</tt> <tt class="py-line"> <tt class="py-name">new_root</tt><tt class="py-op">.</tt><tt id="link-369" class="py-name"><a title="lxml.etree._Element.extend" class="py-name" href="#" onclick="return doclink('link-369', 'extend', 'link-348');">extend</a></tt><tt class="py-op">(</tt><tt id="link-370" class="py-name"><a title="lxml.etree.DTD.elements" class="py-name" href="#" onclick="return doclink('link-370', 'elements', 'link-328');">elements</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L636"></a><tt class="py-lineno"> 636</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">new_root</tt> </tt>
-<a name="L637"></a><tt class="py-lineno"> 637</tt> <tt class="py-line"> </tt>
-<a name="L638"></a><tt class="py-lineno"> 638</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-371" class="py-name"><a title="lxml.etree.DTD.elements" class="py-name" href="#" onclick="return doclink('link-371', 'elements', 'link-328');">elements</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L639"></a><tt class="py-lineno"> 639</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-372" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-365', 'text', 'link-104');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-366" class="py-name"><a title="lxml.etree.DTD.elements" class="py-name" href="#" onclick="return doclink('link-366', 'elements', 'link-327');">elements</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L640"></a><tt class="py-lineno"> 640</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt id="link-367" class="py-name"><a title="lxml.etree.DTD.elements" class="py-name" href="#" onclick="return doclink('link-367', 'elements', 'link-327');">elements</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L641"></a><tt class="py-lineno"> 641</tt> <tt class="py-line"> <tt class="py-name">new_root</tt><tt class="py-op">.</tt><tt id="link-368" class="py-name"><a title="lxml.etree._Element.extend" class="py-name" href="#" onclick="return doclink('link-368', 'extend', 'link-347');">extend</a></tt><tt class="py-op">(</tt><tt id="link-369" class="py-name"><a title="lxml.etree.DTD.elements" class="py-name" href="#" onclick="return doclink('link-369', 'elements', 'link-327');">elements</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L642"></a><tt class="py-lineno"> 642</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">new_root</tt> </tt>
+<a name="L643"></a><tt class="py-lineno"> 643</tt> <tt class="py-line"> </tt>
+<a name="L644"></a><tt class="py-lineno"> 644</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-370" class="py-name"><a title="lxml.etree.DTD.elements" class="py-name" href="#" onclick="return doclink('link-370', 'elements', 'link-327');">elements</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L645"></a><tt class="py-lineno"> 645</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-371" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-372', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-373" class="py-name"><a title="lxml.etree.ParserError" class="py-name" href="#" onclick="return doclink('link-373', 'ParserError', 'link-303');">ParserError</a></tt><tt class="py-op">(</tt><tt class="py-string">'No elements found'</tt><tt class="py-op">)</tt> </tt>
-<a name="L640"></a><tt class="py-lineno"> 640</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-374" class="py-name"><a title="lxml.etree.DTD.elements" class="py-name" href="#" onclick="return doclink('link-374', 'elements', 'link-328');">elements</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="L641"></a><tt class="py-lineno"> 641</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-375" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-371', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-372" class="py-name"><a title="lxml.etree.ParserError" class="py-name" href="#" onclick="return doclink('link-372', 'ParserError', 'link-305');">ParserError</a></tt><tt class="py-op">(</tt><tt class="py-string">'No elements found'</tt><tt class="py-op">)</tt> </tt>
+<a name="L646"></a><tt class="py-lineno"> 646</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-373" class="py-name"><a title="lxml.etree.DTD.elements" class="py-name" href="#" onclick="return doclink('link-373', 'elements', 'link-327');">elements</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="L647"></a><tt class="py-lineno"> 647</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-374" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-375', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-376" class="py-name"><a title="lxml.etree.ParserError" class="py-name" href="#" onclick="return doclink('link-376', 'ParserError', 'link-303');">ParserError</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L642"></a><tt class="py-lineno"> 642</tt> <tt class="py-line"> <tt class="py-string">"Multiple elements found (%s)"</tt> </tt>
-<a name="L643"></a><tt class="py-lineno"> 643</tt> <tt class="py-line"> <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-op">[</tt><tt class="py-name">_element_name</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">e</tt> <tt class="py-keyword">in</tt> <tt id="link-377" class="py-name"><a title="lxml.etree.DTD.elements" class="py-name" href="#" onclick="return doclink('link-377', 'elements', 'link-328');">elements</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L644"></a><tt class="py-lineno"> 644</tt> <tt class="py-line"> <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-378" class="py-name"><a title="lxml.etree.DTD.elements" class="py-name" href="#" onclick="return doclink('link-378', 'elements', 'link-328');">elements</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="L645"></a><tt class="py-lineno"> 645</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-379" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-379', 'tail', 'link-102');">tail</a></tt> <tt class="py-keyword">and</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-380" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-380', 'tail', 'link-102');">tail</a></tt><tt class="py-op">.</tt><tt id="link-381" class="py-name"><a title="lxml.doctestcompare.strip" class="py-name" href="#" onclick="return doclink('link-381', 'strip', 'link-216');">strip</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L646"></a><tt class="py-lineno"> 646</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-382" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-374', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-375" class="py-name"><a title="lxml.etree.ParserError" class="py-name" href="#" onclick="return doclink('link-375', 'ParserError', 'link-305');">ParserError</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L648"></a><tt class="py-lineno"> 648</tt> <tt class="py-line"> <tt class="py-string">"Multiple elements found (%s)"</tt> </tt>
+<a name="L649"></a><tt class="py-lineno"> 649</tt> <tt class="py-line"> <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-op">[</tt><tt class="py-name">_element_name</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">e</tt> <tt class="py-keyword">in</tt> <tt id="link-376" class="py-name"><a title="lxml.etree.DTD.elements" class="py-name" href="#" onclick="return doclink('link-376', 'elements', 'link-327');">elements</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L650"></a><tt class="py-lineno"> 650</tt> <tt class="py-line"> <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-377" class="py-name"><a title="lxml.etree.DTD.elements" class="py-name" href="#" onclick="return doclink('link-377', 'elements', 'link-327');">elements</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L651"></a><tt class="py-lineno"> 651</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-378" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-378', 'tail', 'link-102');">tail</a></tt> <tt class="py-keyword">and</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-379" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-379', 'tail', 'link-102');">tail</a></tt><tt class="py-op">.</tt><tt id="link-380" class="py-name"><a title="lxml.doctestcompare.strip" class="py-name" href="#" onclick="return doclink('link-380', 'strip', 'link-216');">strip</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L652"></a><tt class="py-lineno"> 652</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-381" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-382', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-383" class="py-name"><a title="lxml.etree.ParserError" class="py-name" href="#" onclick="return doclink('link-383', 'ParserError', 'link-303');">ParserError</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L647"></a><tt class="py-lineno"> 647</tt> <tt class="py-line"> <tt class="py-string">"Element followed by text: %r"</tt> <tt class="py-op">%</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-384" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-384', 'tail', 'link-102');">tail</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L648"></a><tt class="py-lineno"> 648</tt> <tt class="py-line"> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-385" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-385', 'tail', 'link-102');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L649"></a><tt class="py-lineno"> 649</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">el</tt> </tt>
-</div><a name="L650"></a><tt class="py-lineno"> 650</tt> <tt class="py-line"> </tt>
-<a name="fromstring"></a><div id="fromstring-def"><a name="L651"></a><tt class="py-lineno"> 651</tt> <a class="py-toggle" href="#" id="fromstring-toggle" onclick="return toggle('fromstring');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html-module.html#fromstring">fromstring</a><tt class="py-op">(</tt><tt class="py-param">html</tt><tt class="py-op">,</tt> <tt class="py-param">base_url</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">parser</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-param">kw</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="fromstring-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="fromstring-expanded"><a name="L652"></a><tt class="py-lineno"> 652</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L653"></a><tt class="py-lineno"> 653</tt> <tt class="py-line"><tt class="py-docstring"> Parse the html, returning a single element/document.</tt> </tt>
-<a name="L654"></a><tt class="py-lineno"> 654</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L655"></a><tt class="py-lineno"> 655</tt> <tt class="py-line"><tt class="py-docstring"> This tries to minimally parse the chunk of text, without knowing if it</tt> </tt>
-<a name="L656"></a><tt class="py-lineno"> 656</tt> <tt class="py-line"><tt class="py-docstring"> is a fragment or a document.</tt> </tt>
-<a name="L657"></a><tt class="py-lineno"> 657</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L658"></a><tt class="py-lineno"> 658</tt> <tt class="py-line"><tt class="py-docstring"> base_url will set the document's base_url attribute (and the tree's docinfo.URL)</tt> </tt>
-<a name="L659"></a><tt class="py-lineno"> 659</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L660"></a><tt class="py-lineno"> 660</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-386" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-386', 'parser', 'link-293');">parser</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L661"></a><tt class="py-lineno"> 661</tt> <tt class="py-line"> <tt id="link-387" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-387', 'parser', 'link-293');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-388" class="py-name"><a title="lxml.html.html5parser.html_parser
-lxml.html.html_parser" class="py-name" href="#" onclick="return doclink('link-388', 'html_parser', 'link-295');">html_parser</a></tt> </tt>
-<a name="L662"></a><tt class="py-lineno"> 662</tt> <tt class="py-line"> <tt id="link-389" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-389', 'start', 'link-189');">start</a></tt> <tt class="py-op">=</tt> <tt id="link-390" class="py-name"><a title="lxml.html
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-381', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-382" class="py-name"><a title="lxml.etree.ParserError" class="py-name" href="#" onclick="return doclink('link-382', 'ParserError', 'link-305');">ParserError</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L653"></a><tt class="py-lineno"> 653</tt> <tt class="py-line"> <tt class="py-string">"Element followed by text: %r"</tt> <tt class="py-op">%</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-383" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-383', 'tail', 'link-102');">tail</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L654"></a><tt class="py-lineno"> 654</tt> <tt class="py-line"> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-384" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-384', 'tail', 'link-102');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L655"></a><tt class="py-lineno"> 655</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">el</tt> </tt>
+</div><a name="L656"></a><tt class="py-lineno"> 656</tt> <tt class="py-line"> </tt>
+<a name="fromstring"></a><div id="fromstring-def"><a name="L657"></a><tt class="py-lineno"> 657</tt> <a class="py-toggle" href="#" id="fromstring-toggle" onclick="return toggle('fromstring');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html-module.html#fromstring">fromstring</a><tt class="py-op">(</tt><tt class="py-param">html</tt><tt class="py-op">,</tt> <tt class="py-param">base_url</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">parser</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-param">kw</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="fromstring-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="fromstring-expanded"><a name="L658"></a><tt class="py-lineno"> 658</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L659"></a><tt class="py-lineno"> 659</tt> <tt class="py-line"><tt class="py-docstring"> Parse the html, returning a single element/document.</tt> </tt>
+<a name="L660"></a><tt class="py-lineno"> 660</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L661"></a><tt class="py-lineno"> 661</tt> <tt class="py-line"><tt class="py-docstring"> This tries to minimally parse the chunk of text, without knowing if it</tt> </tt>
+<a name="L662"></a><tt class="py-lineno"> 662</tt> <tt class="py-line"><tt class="py-docstring"> is a fragment or a document.</tt> </tt>
+<a name="L663"></a><tt class="py-lineno"> 663</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L664"></a><tt class="py-lineno"> 664</tt> <tt class="py-line"><tt class="py-docstring"> base_url will set the document's base_url attribute (and the tree's docinfo.URL)</tt> </tt>
+<a name="L665"></a><tt class="py-lineno"> 665</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L666"></a><tt class="py-lineno"> 666</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-385" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-385', 'parser', 'link-295');">parser</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L667"></a><tt class="py-lineno"> 667</tt> <tt class="py-line"> <tt id="link-386" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-386', 'parser', 'link-295');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-387" class="py-name"><a title="lxml.html.html5parser.html_parser
+lxml.html.html_parser" class="py-name" href="#" onclick="return doclink('link-387', 'html_parser', 'link-297');">html_parser</a></tt> </tt>
+<a name="L668"></a><tt class="py-lineno"> 668</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-388" 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-390', 'html', 'link-5');">html</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 class="py-name">lstrip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">lower</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L663"></a><tt class="py-lineno"> 663</tt> <tt class="py-line"> <tt class="py-keyword">if</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-keyword">and</tt> <tt id="link-391" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-391', 'hasattr', 'link-310');">hasattr</a></tt><tt class="py-op">(</tt><tt id="link-392" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-392', 'start', 'link-189');">start</a></tt><tt class="py-op">,</tt> <tt class="py-string">'decode'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> <tt class="py-comment"># Py3 can't mix bytes into startswith()</tt> </tt>
-<a name="L664"></a><tt class="py-lineno"> 664</tt> <tt class="py-line"> <tt id="link-393" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-393', 'start', 'link-189');">start</a></tt> <tt class="py-op">=</tt> <tt id="link-394" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-394', 'start', 'link-189');">start</a></tt><tt class="py-op">.</tt><tt class="py-name">decode</tt><tt class="py-op">(</tt><tt class="py-string">'ISO8859-1'</tt><tt class="py-op">)</tt> </tt>
-<a name="L665"></a><tt class="py-lineno"> 665</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-395" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-395', 'start', 'link-189');">start</a></tt><tt class="py-op">.</tt><tt class="py-name">startswith</tt><tt class="py-op">(</tt><tt class="py-string">'<html'</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt id="link-396" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-396', 'start', 'link-189');">start</a></tt><tt class="py-op">.</tt><tt class="py-name">startswith</tt><tt class="py-op">(</tt><tt class="py-string">'<!doctype'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L666"></a><tt class="py-lineno"> 666</tt> <tt class="py-line"> <tt class="py-comment"># Looks like a full HTML document</tt> </tt>
-<a name="L667"></a><tt class="py-lineno"> 667</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-397" class="py-name"><a title="lxml.html.html5parser.document_fromstring" class="py-name" href="#" onclick="return doclink('link-397', 'document_fromstring', 'link-318');">document_fromstring</a></tt><tt class="py-op">(</tt><tt id="link-398" class="py-name"><a title="lxml.html
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-388', 'html', 'link-5');">html</a></tt><tt class="py-op">,</tt> <tt class="py-name">bytes</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L669"></a><tt class="py-lineno"> 669</tt> <tt class="py-line"> <tt class="py-name">is_full_html</tt> <tt class="py-op">=</tt> <tt class="py-name">_looks_like_full_html_bytes</tt><tt class="py-op">(</tt><tt id="link-389" 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-398', 'html', 'link-5');">html</a></tt><tt class="py-op">,</tt> <tt id="link-399" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-399', 'parser', 'link-293');">parser</a></tt><tt class="py-op">=</tt><tt id="link-400" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-400', 'parser', 'link-293');">parser</a></tt><tt class="py-op">,</tt> <tt id="link-401" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-401', 'base_url', 'link-61');">base_url</a></tt><tt class="py-op">=</tt><tt id="link-402" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-402', 'base_url', 'link-61');">base_url</a></tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-name">kw</tt><tt class="py-op">)</tt> </tt>
-<a name="L668"></a><tt class="py-lineno"> 668</tt> <tt class="py-line"> <tt class="py-comment"># otherwise, lets parse it out...</tt> </tt>
-<a name="L669"></a><tt class="py-lineno"> 669</tt> <tt class="py-line"> <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-403" class="py-name"><a title="lxml.html.html5parser.document_fromstring" class="py-name" href="#" onclick="return doclink('link-403', 'document_fromstring', 'link-318');">document_fromstring</a></tt><tt class="py-op">(</tt><tt id="link-404" class="py-name"><a title="lxml.html
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-389', 'html', 'link-5');">html</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L670"></a><tt class="py-lineno"> 670</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L671"></a><tt class="py-lineno"> 671</tt> <tt class="py-line"> <tt class="py-name">is_full_html</tt> <tt class="py-op">=</tt> <tt class="py-name">_looks_like_full_html_unicode</tt><tt class="py-op">(</tt><tt id="link-390" 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-404', 'html', 'link-5');">html</a></tt><tt class="py-op">,</tt> <tt id="link-405" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-405', 'parser', 'link-293');">parser</a></tt><tt class="py-op">=</tt><tt id="link-406" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-406', 'parser', 'link-293');">parser</a></tt><tt class="py-op">,</tt> <tt id="link-407" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-407', 'base_url', 'link-61');">base_url</a></tt><tt class="py-op">=</tt><tt id="link-408" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-408', 'base_url', 'link-61');">base_url</a></tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-name">kw</tt><tt class="py-op">)</tt> </tt>
-<a name="L670"></a><tt class="py-lineno"> 670</tt> <tt class="py-line"> <tt class="py-name">bodies</tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-409" 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-409', 'findall', 'link-409');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">'body'</tt><tt class="py-op">)</tt> </tt>
-<a name="L671"></a><tt class="py-lineno"> 671</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">bodies</tt><tt class="py-op">:</tt> </tt>
-<a name="L672"></a><tt class="py-lineno"> 672</tt> <tt class="py-line"> <tt class="py-name">bodies</tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-410" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-410', 'findall', 'link-409');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">'{%s}body'</tt> <tt class="py-op">%</tt> <tt id="link-411" class="py-name"><a title="lxml.html.XHTML_NAMESPACE" class="py-name" href="#" onclick="return doclink('link-411', 'XHTML_NAMESPACE', 'link-16');">XHTML_NAMESPACE</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L673"></a><tt class="py-lineno"> 673</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">bodies</tt><tt class="py-op">:</tt> </tt>
-<a name="L674"></a><tt class="py-lineno"> 674</tt> <tt class="py-line"> <tt id="link-412" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-412', 'body', 'link-72');">body</a></tt> <tt class="py-op">=</tt> <tt class="py-name">bodies</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="L675"></a><tt class="py-lineno"> 675</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">bodies</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="L676"></a><tt class="py-lineno"> 676</tt> <tt class="py-line"> <tt class="py-comment"># Somehow there are multiple bodies, which is bad, but just</tt> </tt>
-<a name="L677"></a><tt class="py-lineno"> 677</tt> <tt class="py-line"> <tt class="py-comment"># smash them into one body</tt> </tt>
-<a name="L678"></a><tt class="py-lineno"> 678</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">other_body</tt> <tt class="py-keyword">in</tt> <tt class="py-name">bodies</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="L679"></a><tt class="py-lineno"> 679</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">other_body</tt><tt class="py-op">.</tt><tt id="link-413" class="py-name"><a title="lxml.etree.QName.text
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-390', 'html', 'link-5');">html</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L672"></a><tt class="py-lineno"> 672</tt> <tt class="py-line"> <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-391" class="py-name"><a title="lxml.html.html5parser.document_fromstring" class="py-name" href="#" onclick="return doclink('link-391', 'document_fromstring', 'link-317');">document_fromstring</a></tt><tt class="py-op">(</tt><tt id="link-392" 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-392', 'html', 'link-5');">html</a></tt><tt class="py-op">,</tt> <tt id="link-393" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-393', 'parser', 'link-295');">parser</a></tt><tt class="py-op">=</tt><tt id="link-394" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-394', 'parser', 'link-295');">parser</a></tt><tt class="py-op">,</tt> <tt id="link-395" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-395', 'base_url', 'link-61');">base_url</a></tt><tt class="py-op">=</tt><tt id="link-396" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-396', 'base_url', 'link-61');">base_url</a></tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-name">kw</tt><tt class="py-op">)</tt> </tt>
+<a name="L673"></a><tt class="py-lineno"> 673</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">is_full_html</tt><tt class="py-op">:</tt> </tt>
+<a name="L674"></a><tt class="py-lineno"> 674</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">doc</tt> </tt>
+<a name="L675"></a><tt class="py-lineno"> 675</tt> <tt class="py-line"> <tt class="py-comment"># otherwise, lets parse it out...</tt> </tt>
+<a name="L676"></a><tt class="py-lineno"> 676</tt> <tt class="py-line"> <tt class="py-name">bodies</tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-397" 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-397', 'findall', 'link-397');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">'body'</tt><tt class="py-op">)</tt> </tt>
+<a name="L677"></a><tt class="py-lineno"> 677</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">bodies</tt><tt class="py-op">:</tt> </tt>
+<a name="L678"></a><tt class="py-lineno"> 678</tt> <tt class="py-line"> <tt class="py-name">bodies</tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-398" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-398', 'findall', 'link-397');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">'{%s}body'</tt> <tt class="py-op">%</tt> <tt id="link-399" class="py-name"><a title="lxml.html.XHTML_NAMESPACE" class="py-name" href="#" onclick="return doclink('link-399', 'XHTML_NAMESPACE', 'link-16');">XHTML_NAMESPACE</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L679"></a><tt class="py-lineno"> 679</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">bodies</tt><tt class="py-op">:</tt> </tt>
+<a name="L680"></a><tt class="py-lineno"> 680</tt> <tt class="py-line"> <tt id="link-400" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-400', 'body', 'link-72');">body</a></tt> <tt class="py-op">=</tt> <tt class="py-name">bodies</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L681"></a><tt class="py-lineno"> 681</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">bodies</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="L682"></a><tt class="py-lineno"> 682</tt> <tt class="py-line"> <tt class="py-comment"># Somehow there are multiple bodies, which is bad, but just</tt> </tt>
+<a name="L683"></a><tt class="py-lineno"> 683</tt> <tt class="py-line"> <tt class="py-comment"># smash them into one body</tt> </tt>
+<a name="L684"></a><tt class="py-lineno"> 684</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">other_body</tt> <tt class="py-keyword">in</tt> <tt class="py-name">bodies</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="L685"></a><tt class="py-lineno"> 685</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">other_body</tt><tt class="py-op">.</tt><tt id="link-401" 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-413', 'text', 'link-104');">text</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L680"></a><tt class="py-lineno"> 680</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-414" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-414', 'body', 'link-72');">body</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L681"></a><tt class="py-lineno"> 681</tt> <tt class="py-line"> <tt id="link-415" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-415', 'body', 'link-72');">body</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 id="link-416" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-416', 'tail', 'link-102');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt id="link-417" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-417', 'body', 'link-72');">body</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 id="link-418" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-418', 'tail', 'link-102');">tail</a></tt> <tt class="py-keyword">or</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-name">other_body</tt><tt class="py-op">.</tt><tt id="link-419" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-401', 'text', 'link-104');">text</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L686"></a><tt class="py-lineno"> 686</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-402" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-402', 'body', 'link-72');">body</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L687"></a><tt class="py-lineno"> 687</tt> <tt class="py-line"> <tt id="link-403" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-403', 'body', 'link-72');">body</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 id="link-404" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-404', 'tail', 'link-102');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt id="link-405" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-405', 'body', 'link-72');">body</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 id="link-406" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-406', 'tail', 'link-102');">tail</a></tt> <tt class="py-keyword">or</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-name">other_body</tt><tt class="py-op">.</tt><tt id="link-407" 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-419', 'text', 'link-104');">text</a></tt> </tt>
-<a name="L682"></a><tt class="py-lineno"> 682</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L683"></a><tt class="py-lineno"> 683</tt> <tt class="py-line"> <tt id="link-420" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-420', 'body', 'link-72');">body</a></tt><tt class="py-op">.</tt><tt id="link-421" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-407', 'text', 'link-104');">text</a></tt> </tt>
+<a name="L688"></a><tt class="py-lineno"> 688</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L689"></a><tt class="py-lineno"> 689</tt> <tt class="py-line"> <tt id="link-408" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-408', 'body', 'link-72');">body</a></tt><tt class="py-op">.</tt><tt id="link-409" 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-421', 'text', 'link-104');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt id="link-422" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-422', 'body', 'link-72');">body</a></tt><tt class="py-op">.</tt><tt id="link-423" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-409', 'text', 'link-104');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt id="link-410" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-410', 'body', 'link-72');">body</a></tt><tt class="py-op">.</tt><tt id="link-411" 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-423', 'text', 'link-104');">text</a></tt> <tt class="py-keyword">or</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-name">other_body</tt><tt class="py-op">.</tt><tt id="link-424" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-411', 'text', 'link-104');">text</a></tt> <tt class="py-keyword">or</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-name">other_body</tt><tt class="py-op">.</tt><tt id="link-412" 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-424', 'text', 'link-104');">text</a></tt> </tt>
-<a name="L684"></a><tt class="py-lineno"> 684</tt> <tt class="py-line"> <tt id="link-425" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-425', 'body', 'link-72');">body</a></tt><tt class="py-op">.</tt><tt id="link-426" class="py-name"><a title="lxml.etree._Element.extend" class="py-name" href="#" onclick="return doclink('link-426', 'extend', 'link-348');">extend</a></tt><tt class="py-op">(</tt><tt class="py-name">other_body</tt><tt class="py-op">)</tt> </tt>
-<a name="L685"></a><tt class="py-lineno"> 685</tt> <tt class="py-line"> <tt class="py-comment"># We'll ignore tail</tt> </tt>
-<a name="L686"></a><tt class="py-lineno"> 686</tt> <tt class="py-line"> <tt class="py-comment"># I guess we are ignoring attributes too</tt> </tt>
-<a name="L687"></a><tt class="py-lineno"> 687</tt> <tt class="py-line"> <tt class="py-name">other_body</tt><tt class="py-op">.</tt><tt id="link-427" class="py-name"><a title="lxml.html.HtmlMixin.drop_tree" class="py-name" href="#" onclick="return doclink('link-427', 'drop_tree', 'link-156');">drop_tree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L688"></a><tt class="py-lineno"> 688</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L689"></a><tt class="py-lineno"> 689</tt> <tt class="py-line"> <tt id="link-428" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-428', 'body', 'link-72');">body</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L690"></a><tt class="py-lineno"> 690</tt> <tt class="py-line"> <tt class="py-name">heads</tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-429" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-429', 'findall', 'link-409');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">'head'</tt><tt class="py-op">)</tt> </tt>
-<a name="L691"></a><tt class="py-lineno"> 691</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">heads</tt><tt class="py-op">:</tt> </tt>
-<a name="L692"></a><tt class="py-lineno"> 692</tt> <tt class="py-line"> <tt class="py-name">heads</tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-430" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-430', 'findall', 'link-409');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">'{%s}head'</tt> <tt class="py-op">%</tt> <tt id="link-431" class="py-name"><a title="lxml.html.XHTML_NAMESPACE" class="py-name" href="#" onclick="return doclink('link-431', 'XHTML_NAMESPACE', 'link-16');">XHTML_NAMESPACE</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L693"></a><tt class="py-lineno"> 693</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">heads</tt><tt class="py-op">:</tt> </tt>
-<a name="L694"></a><tt class="py-lineno"> 694</tt> <tt class="py-line"> <tt class="py-comment"># Well, we have some sort of structure, so lets keep it all</tt> </tt>
-<a name="L695"></a><tt class="py-lineno"> 695</tt> <tt class="py-line"> <tt id="link-432" class="py-name"><a title="lxml.html.HtmlMixin.head" class="py-name" href="#" onclick="return doclink('link-432', 'head', 'link-78');">head</a></tt> <tt class="py-op">=</tt> <tt class="py-name">heads</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="L696"></a><tt class="py-lineno"> 696</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">heads</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="L697"></a><tt class="py-lineno"> 697</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">other_head</tt> <tt class="py-keyword">in</tt> <tt class="py-name">heads</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="L698"></a><tt class="py-lineno"> 698</tt> <tt class="py-line"> <tt id="link-433" class="py-name"><a title="lxml.html.HtmlMixin.head" class="py-name" href="#" onclick="return doclink('link-433', 'head', 'link-78');">head</a></tt><tt class="py-op">.</tt><tt id="link-434" class="py-name"><a title="lxml.etree._Element.extend" class="py-name" href="#" onclick="return doclink('link-434', 'extend', 'link-348');">extend</a></tt><tt class="py-op">(</tt><tt class="py-name">other_head</tt><tt class="py-op">)</tt> </tt>
-<a name="L699"></a><tt class="py-lineno"> 699</tt> <tt class="py-line"> <tt class="py-comment"># We don't care about text or tail in a head</tt> </tt>
-<a name="L700"></a><tt class="py-lineno"> 700</tt> <tt class="py-line"> <tt class="py-name">other_head</tt><tt class="py-op">.</tt><tt id="link-435" class="py-name"><a title="lxml.html.HtmlMixin.drop_tree" class="py-name" href="#" onclick="return doclink('link-435', 'drop_tree', 'link-156');">drop_tree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L701"></a><tt class="py-lineno"> 701</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">doc</tt> </tt>
-<a name="L702"></a><tt class="py-lineno"> 702</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-436" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-436', 'body', 'link-72');">body</a></tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">1</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-keyword">not</tt> <tt id="link-437" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-437', 'body', 'link-72');">body</a></tt><tt class="py-op">.</tt><tt id="link-438" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-412', 'text', 'link-104');">text</a></tt> </tt>
+<a name="L690"></a><tt class="py-lineno"> 690</tt> <tt class="py-line"> <tt id="link-413" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-413', 'body', 'link-72');">body</a></tt><tt class="py-op">.</tt><tt id="link-414" class="py-name"><a title="lxml.etree._Element.extend" class="py-name" href="#" onclick="return doclink('link-414', 'extend', 'link-347');">extend</a></tt><tt class="py-op">(</tt><tt class="py-name">other_body</tt><tt class="py-op">)</tt> </tt>
+<a name="L691"></a><tt class="py-lineno"> 691</tt> <tt class="py-line"> <tt class="py-comment"># We'll ignore tail</tt> </tt>
+<a name="L692"></a><tt class="py-lineno"> 692</tt> <tt class="py-line"> <tt class="py-comment"># I guess we are ignoring attributes too</tt> </tt>
+<a name="L693"></a><tt class="py-lineno"> 693</tt> <tt class="py-line"> <tt class="py-name">other_body</tt><tt class="py-op">.</tt><tt id="link-415" class="py-name"><a title="lxml.html.HtmlMixin.drop_tree" class="py-name" href="#" onclick="return doclink('link-415', 'drop_tree', 'link-156');">drop_tree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L694"></a><tt class="py-lineno"> 694</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L695"></a><tt class="py-lineno"> 695</tt> <tt class="py-line"> <tt id="link-416" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-416', 'body', 'link-72');">body</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L696"></a><tt class="py-lineno"> 696</tt> <tt class="py-line"> <tt class="py-name">heads</tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-417" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-417', 'findall', 'link-397');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">'head'</tt><tt class="py-op">)</tt> </tt>
+<a name="L697"></a><tt class="py-lineno"> 697</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">heads</tt><tt class="py-op">:</tt> </tt>
+<a name="L698"></a><tt class="py-lineno"> 698</tt> <tt class="py-line"> <tt class="py-name">heads</tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-418" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-418', 'findall', 'link-397');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">'{%s}head'</tt> <tt class="py-op">%</tt> <tt id="link-419" class="py-name"><a title="lxml.html.XHTML_NAMESPACE" class="py-name" href="#" onclick="return doclink('link-419', 'XHTML_NAMESPACE', 'link-16');">XHTML_NAMESPACE</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L699"></a><tt class="py-lineno"> 699</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">heads</tt><tt class="py-op">:</tt> </tt>
+<a name="L700"></a><tt class="py-lineno"> 700</tt> <tt class="py-line"> <tt class="py-comment"># Well, we have some sort of structure, so lets keep it all</tt> </tt>
+<a name="L701"></a><tt class="py-lineno"> 701</tt> <tt class="py-line"> <tt id="link-420" class="py-name"><a title="lxml.html.HtmlMixin.head" class="py-name" href="#" onclick="return doclink('link-420', 'head', 'link-78');">head</a></tt> <tt class="py-op">=</tt> <tt class="py-name">heads</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L702"></a><tt class="py-lineno"> 702</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">heads</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="L703"></a><tt class="py-lineno"> 703</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">other_head</tt> <tt class="py-keyword">in</tt> <tt class="py-name">heads</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="L704"></a><tt class="py-lineno"> 704</tt> <tt class="py-line"> <tt id="link-421" class="py-name"><a title="lxml.html.HtmlMixin.head" class="py-name" href="#" onclick="return doclink('link-421', 'head', 'link-78');">head</a></tt><tt class="py-op">.</tt><tt id="link-422" class="py-name"><a title="lxml.etree._Element.extend" class="py-name" href="#" onclick="return doclink('link-422', 'extend', 'link-347');">extend</a></tt><tt class="py-op">(</tt><tt class="py-name">other_head</tt><tt class="py-op">)</tt> </tt>
+<a name="L705"></a><tt class="py-lineno"> 705</tt> <tt class="py-line"> <tt class="py-comment"># We don't care about text or tail in a head</tt> </tt>
+<a name="L706"></a><tt class="py-lineno"> 706</tt> <tt class="py-line"> <tt class="py-name">other_head</tt><tt class="py-op">.</tt><tt id="link-423" class="py-name"><a title="lxml.html.HtmlMixin.drop_tree" class="py-name" href="#" onclick="return doclink('link-423', 'drop_tree', 'link-156');">drop_tree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L707"></a><tt class="py-lineno"> 707</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">doc</tt> </tt>
+<a name="L708"></a><tt class="py-lineno"> 708</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-424" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-424', 'body', 'link-72');">body</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L709"></a><tt class="py-lineno"> 709</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">doc</tt> </tt>
+<a name="L710"></a><tt class="py-lineno"> 710</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-425" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-425', 'body', 'link-72');">body</a></tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">1</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-keyword">not</tt> <tt id="link-426" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-426', 'body', 'link-72');">body</a></tt><tt class="py-op">.</tt><tt id="link-427" 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-438', 'text', 'link-104');">text</a></tt> <tt class="py-keyword">or</tt> <tt class="py-keyword">not</tt> <tt id="link-439" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-439', 'body', 'link-72');">body</a></tt><tt class="py-op">.</tt><tt id="link-440" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-427', 'text', 'link-104');">text</a></tt> <tt class="py-keyword">or</tt> <tt class="py-keyword">not</tt> <tt id="link-428" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-428', 'body', 'link-72');">body</a></tt><tt class="py-op">.</tt><tt id="link-429" 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-440', 'text', 'link-104');">text</a></tt><tt class="py-op">.</tt><tt id="link-441" class="py-name"><a title="lxml.doctestcompare.strip" class="py-name" href="#" onclick="return doclink('link-441', 'strip', 'link-216');">strip</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L703"></a><tt class="py-lineno"> 703</tt> <tt class="py-line"> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-keyword">not</tt> <tt id="link-442" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-442', 'body', 'link-72');">body</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 id="link-443" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-443', 'tail', 'link-102');">tail</a></tt> <tt class="py-keyword">or</tt> <tt class="py-keyword">not</tt> <tt id="link-444" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-444', 'body', 'link-72');">body</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 id="link-445" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-445', 'tail', 'link-102');">tail</a></tt><tt class="py-op">.</tt><tt id="link-446" class="py-name"><a title="lxml.doctestcompare.strip" class="py-name" href="#" onclick="return doclink('link-446', 'strip', 'link-216');">strip</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="L704"></a><tt class="py-lineno"> 704</tt> <tt class="py-line"> <tt class="py-comment"># The body has just one element, so it was probably a single</tt> </tt>
-<a name="L705"></a><tt class="py-lineno"> 705</tt> <tt class="py-line"> <tt class="py-comment"># element passed in</tt> </tt>
-<a name="L706"></a><tt class="py-lineno"> 706</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-447" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-447', 'body', 'link-72');">body</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="L707"></a><tt class="py-lineno"> 707</tt> <tt class="py-line"> <tt class="py-comment"># Now we have a body which represents a bunch of tags which have the</tt> </tt>
-<a name="L708"></a><tt class="py-lineno"> 708</tt> <tt class="py-line"> <tt class="py-comment"># content that was passed in. We will create a fake container, which</tt> </tt>
-<a name="L709"></a><tt class="py-lineno"> 709</tt> <tt class="py-line"> <tt class="py-comment"># is the body tag, except <body> implies too much structure.</tt> </tt>
-<a name="L710"></a><tt class="py-lineno"> 710</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-448" class="py-name" targets="Function lxml.html.diff._contains_block_level_tag()=lxml.html.diff-module.html#_contains_block_level_tag"><a title="lxml.html.diff._contains_block_level_tag" class="py-name" href="#" onclick="return doclink('link-448', '_contains_block_level_tag', 'link-448');">_contains_block_level_tag</a></tt><tt class="py-op">(</tt><tt id="link-449" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-449', 'body', 'link-72');">body</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L711"></a><tt class="py-lineno"> 711</tt> <tt class="py-line"> <tt id="link-450" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-450', 'body', 'link-72');">body</a></tt><tt class="py-op">.</tt><tt id="link-451" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-429', 'text', 'link-104');">text</a></tt><tt class="py-op">.</tt><tt id="link-430" class="py-name"><a title="lxml.doctestcompare.strip" class="py-name" href="#" onclick="return doclink('link-430', 'strip', 'link-216');">strip</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L711"></a><tt class="py-lineno"> 711</tt> <tt class="py-line"> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-keyword">not</tt> <tt id="link-431" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-431', 'body', 'link-72');">body</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 id="link-432" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-432', 'tail', 'link-102');">tail</a></tt> <tt class="py-keyword">or</tt> <tt class="py-keyword">not</tt> <tt id="link-433" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-433', 'body', 'link-72');">body</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 id="link-434" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-434', 'tail', 'link-102');">tail</a></tt><tt class="py-op">.</tt><tt id="link-435" class="py-name"><a title="lxml.doctestcompare.strip" class="py-name" href="#" onclick="return doclink('link-435', 'strip', 'link-216');">strip</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="L712"></a><tt class="py-lineno"> 712</tt> <tt class="py-line"> <tt class="py-comment"># The body has just one element, so it was probably a single</tt> </tt>
+<a name="L713"></a><tt class="py-lineno"> 713</tt> <tt class="py-line"> <tt class="py-comment"># element passed in</tt> </tt>
+<a name="L714"></a><tt class="py-lineno"> 714</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-436" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-436', 'body', 'link-72');">body</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L715"></a><tt class="py-lineno"> 715</tt> <tt class="py-line"> <tt class="py-comment"># Now we have a body which represents a bunch of tags which have the</tt> </tt>
+<a name="L716"></a><tt class="py-lineno"> 716</tt> <tt class="py-line"> <tt class="py-comment"># content that was passed in. We will create a fake container, which</tt> </tt>
+<a name="L717"></a><tt class="py-lineno"> 717</tt> <tt class="py-line"> <tt class="py-comment"># is the body tag, except <body> implies too much structure.</tt> </tt>
+<a name="L718"></a><tt class="py-lineno"> 718</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-437" class="py-name" targets="Function lxml.html.diff._contains_block_level_tag()=lxml.html.diff-module.html#_contains_block_level_tag"><a title="lxml.html.diff._contains_block_level_tag" class="py-name" href="#" onclick="return doclink('link-437', '_contains_block_level_tag', 'link-437');">_contains_block_level_tag</a></tt><tt class="py-op">(</tt><tt id="link-438" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-438', 'body', 'link-72');">body</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L719"></a><tt class="py-lineno"> 719</tt> <tt class="py-line"> <tt id="link-439" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-439', 'body', 'link-72');">body</a></tt><tt class="py-op">.</tt><tt id="link-440" 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-451', 'tag', 'link-50');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'div'</tt> </tt>
-<a name="L712"></a><tt class="py-lineno"> 712</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L713"></a><tt class="py-lineno"> 713</tt> <tt class="py-line"> <tt id="link-452" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-452', 'body', 'link-72');">body</a></tt><tt class="py-op">.</tt><tt id="link-453" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-440', 'tag', 'link-50');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'div'</tt> </tt>
+<a name="L720"></a><tt class="py-lineno"> 720</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L721"></a><tt class="py-lineno"> 721</tt> <tt class="py-line"> <tt id="link-441" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-441', 'body', 'link-72');">body</a></tt><tt class="py-op">.</tt><tt id="link-442" 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-453', 'tag', 'link-50');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'span'</tt> </tt>
-<a name="L714"></a><tt class="py-lineno"> 714</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-454" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-454', 'body', 'link-72');">body</a></tt> </tt>
-</div><a name="L715"></a><tt class="py-lineno"> 715</tt> <tt class="py-line"> </tt>
-<a name="parse"></a><div id="parse-def"><a name="L716"></a><tt class="py-lineno"> 716</tt> <a class="py-toggle" href="#" id="parse-toggle" onclick="return toggle('parse');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html-module.html#parse">parse</a><tt class="py-op">(</tt><tt class="py-param">filename_or_url</tt><tt class="py-op">,</tt> <tt class="py-param">parser</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">base_url</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-param">kw</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="parse-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="parse-expanded"><a name="L717"></a><tt class="py-lineno"> 717</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L718"></a><tt class="py-lineno"> 718</tt> <tt class="py-line"><tt class="py-docstring"> Parse a filename, URL, or file-like object into an HTML document</tt> </tt>
-<a name="L719"></a><tt class="py-lineno"> 719</tt> <tt class="py-line"><tt class="py-docstring"> tree. Note: this returns a tree, not an element. Use</tt> </tt>
-<a name="L720"></a><tt class="py-lineno"> 720</tt> <tt class="py-line"><tt class="py-docstring"> ``parse(...).getroot()`` to get the document root.</tt> </tt>
-<a name="L721"></a><tt class="py-lineno"> 721</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L722"></a><tt class="py-lineno"> 722</tt> <tt class="py-line"><tt class="py-docstring"> You can override the base URL with the ``base_url`` keyword. This</tt> </tt>
-<a name="L723"></a><tt class="py-lineno"> 723</tt> <tt class="py-line"><tt class="py-docstring"> is most useful when parsing from a file-like object.</tt> </tt>
-<a name="L724"></a><tt class="py-lineno"> 724</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L725"></a><tt class="py-lineno"> 725</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-455" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-455', 'parser', 'link-293');">parser</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L726"></a><tt class="py-lineno"> 726</tt> <tt class="py-line"> <tt id="link-456" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-456', 'parser', 'link-293');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-457" class="py-name"><a title="lxml.html.html5parser.html_parser
-lxml.html.html_parser" class="py-name" href="#" onclick="return doclink('link-457', 'html_parser', 'link-295');">html_parser</a></tt> </tt>
-<a name="L727"></a><tt class="py-lineno"> 727</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-458" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-442', 'tag', 'link-50');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'span'</tt> </tt>
+<a name="L722"></a><tt class="py-lineno"> 722</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-443" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-443', 'body', 'link-72');">body</a></tt> </tt>
+</div><a name="L723"></a><tt class="py-lineno"> 723</tt> <tt class="py-line"> </tt>
+<a name="parse"></a><div id="parse-def"><a name="L724"></a><tt class="py-lineno"> 724</tt> <a class="py-toggle" href="#" id="parse-toggle" onclick="return toggle('parse');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html-module.html#parse">parse</a><tt class="py-op">(</tt><tt class="py-param">filename_or_url</tt><tt class="py-op">,</tt> <tt class="py-param">parser</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">base_url</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-param">kw</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="parse-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="parse-expanded"><a name="L725"></a><tt class="py-lineno"> 725</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L726"></a><tt class="py-lineno"> 726</tt> <tt class="py-line"><tt class="py-docstring"> Parse a filename, URL, or file-like object into an HTML document</tt> </tt>
+<a name="L727"></a><tt class="py-lineno"> 727</tt> <tt class="py-line"><tt class="py-docstring"> tree. Note: this returns a tree, not an element. Use</tt> </tt>
+<a name="L728"></a><tt class="py-lineno"> 728</tt> <tt class="py-line"><tt class="py-docstring"> ``parse(...).getroot()`` to get the document root.</tt> </tt>
+<a name="L729"></a><tt class="py-lineno"> 729</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L730"></a><tt class="py-lineno"> 730</tt> <tt class="py-line"><tt class="py-docstring"> You can override the base URL with the ``base_url`` keyword. This</tt> </tt>
+<a name="L731"></a><tt class="py-lineno"> 731</tt> <tt class="py-line"><tt class="py-docstring"> is most useful when parsing from a file-like object.</tt> </tt>
+<a name="L732"></a><tt class="py-lineno"> 732</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L733"></a><tt class="py-lineno"> 733</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-444" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-444', 'parser', 'link-295');">parser</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L734"></a><tt class="py-lineno"> 734</tt> <tt class="py-line"> <tt id="link-445" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-445', 'parser', 'link-295');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-446" class="py-name"><a title="lxml.html.html5parser.html_parser
+lxml.html.html_parser" class="py-name" href="#" onclick="return doclink('link-446', 'html_parser', 'link-297');">html_parser</a></tt> </tt>
+<a name="L735"></a><tt class="py-lineno"> 735</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-447" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-458', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-459" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-447', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-448" 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-459', 'parse', 'link-0');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">filename_or_url</tt><tt class="py-op">,</tt> <tt id="link-460" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-460', 'parser', 'link-293');">parser</a></tt><tt class="py-op">,</tt> <tt id="link-461" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-461', 'base_url', 'link-61');">base_url</a></tt><tt class="py-op">=</tt><tt id="link-462" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-462', 'base_url', 'link-61');">base_url</a></tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-name">kw</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L728"></a><tt class="py-lineno"> 728</tt> <tt class="py-line"> </tt>
-<a name="_contains_block_level_tag"></a><div id="_contains_block_level_tag-def"><a name="L729"></a><tt class="py-lineno"> 729</tt> <a class="py-toggle" href="#" id="_contains_block_level_tag-toggle" onclick="return toggle('_contains_block_level_tag');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html-module.html#_contains_block_level_tag">_contains_block_level_tag</a><tt class="py-op">(</tt><tt class="py-param">el</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_contains_block_level_tag-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="_contains_block_level_tag-expanded"><a name="L730"></a><tt class="py-lineno"> 730</tt> <tt class="py-line"> <tt class="py-comment"># FIXME: I could do this with XPath, but would that just be</tt> </tt>
-<a name="L731"></a><tt class="py-lineno"> 731</tt> <tt class="py-line"> <tt class="py-comment"># unnecessarily slow?</tt> </tt>
-<a name="L732"></a><tt class="py-lineno"> 732</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">el</tt><tt class="py-op">.</tt><tt id="link-463" class="py-name"><a title="lxml.etree._Element.iter
-lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-463', 'iter', 'link-162');">iter</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L733"></a><tt class="py-lineno"> 733</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">_nons</tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-464" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-448', 'parse', 'link-0');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">filename_or_url</tt><tt class="py-op">,</tt> <tt id="link-449" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-449', 'parser', 'link-295');">parser</a></tt><tt class="py-op">,</tt> <tt id="link-450" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-450', 'base_url', 'link-61');">base_url</a></tt><tt class="py-op">=</tt><tt id="link-451" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-451', 'base_url', 'link-61');">base_url</a></tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-name">kw</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L736"></a><tt class="py-lineno"> 736</tt> <tt class="py-line"> </tt>
+<a name="_contains_block_level_tag"></a><div id="_contains_block_level_tag-def"><a name="L737"></a><tt class="py-lineno"> 737</tt> <a class="py-toggle" href="#" id="_contains_block_level_tag-toggle" onclick="return toggle('_contains_block_level_tag');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html-module.html#_contains_block_level_tag">_contains_block_level_tag</a><tt class="py-op">(</tt><tt class="py-param">el</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_contains_block_level_tag-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="_contains_block_level_tag-expanded"><a name="L738"></a><tt class="py-lineno"> 738</tt> <tt class="py-line"> <tt class="py-comment"># FIXME: I could do this with XPath, but would that just be</tt> </tt>
+<a name="L739"></a><tt class="py-lineno"> 739</tt> <tt class="py-line"> <tt class="py-comment"># unnecessarily slow?</tt> </tt>
+<a name="L740"></a><tt class="py-lineno"> 740</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">el</tt><tt class="py-op">.</tt><tt id="link-452" class="py-name"><a title="lxml.etree._Element.iter
+lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-452', 'iter', 'link-162');">iter</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L741"></a><tt class="py-lineno"> 741</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">_nons</tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-453" 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-464', 'tag', 'link-50');">tag</a></tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt id="link-465" class="py-name"><a title="lxml.html.defs" class="py-name" href="#" onclick="return doclink('link-465', 'defs', 'link-6');">defs</a></tt><tt class="py-op">.</tt><tt id="link-466" class="py-name" targets="Variable lxml.html.defs.block_tags=lxml.html.defs-module.html#block_tags"><a title="lxml.html.defs.block_tags" class="py-name" href="#" onclick="return doclink('link-466', 'block_tags', 'link-466');">block_tags</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L734"></a><tt class="py-lineno"> 734</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
-<a name="L735"></a><tt class="py-lineno"> 735</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
-</div><a name="L736"></a><tt class="py-lineno"> 736</tt> <tt class="py-line"> </tt>
-<a name="_element_name"></a><div id="_element_name-def"><a name="L737"></a><tt class="py-lineno"> 737</tt> <a class="py-toggle" href="#" id="_element_name-toggle" onclick="return toggle('_element_name');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html-module.html#_element_name">_element_name</a><tt class="py-op">(</tt><tt class="py-param">el</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_element_name-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="_element_name-expanded"><a name="L738"></a><tt class="py-lineno"> 738</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">el</tt><tt class="py-op">,</tt> <tt id="link-467" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-453', 'tag', 'link-50');">tag</a></tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt id="link-454" class="py-name"><a title="lxml.html.defs" class="py-name" href="#" onclick="return doclink('link-454', 'defs', 'link-6');">defs</a></tt><tt class="py-op">.</tt><tt id="link-455" class="py-name" targets="Variable lxml.html.defs.block_tags=lxml.html.defs-module.html#block_tags"><a title="lxml.html.defs.block_tags" class="py-name" href="#" onclick="return doclink('link-455', 'block_tags', 'link-455');">block_tags</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L742"></a><tt class="py-lineno"> 742</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
+<a name="L743"></a><tt class="py-lineno"> 743</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
+</div><a name="L744"></a><tt class="py-lineno"> 744</tt> <tt class="py-line"> </tt>
+<a name="_element_name"></a><div id="_element_name-def"><a name="L745"></a><tt class="py-lineno"> 745</tt> <a class="py-toggle" href="#" id="_element_name-toggle" onclick="return toggle('_element_name');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html-module.html#_element_name">_element_name</a><tt class="py-op">(</tt><tt class="py-param">el</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_element_name-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="_element_name-expanded"><a name="L746"></a><tt class="py-lineno"> 746</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">el</tt><tt class="py-op">,</tt> <tt id="link-456" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-467', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-468" class="py-name" targets="Class lxml.etree.CommentBase=lxml.etree.CommentBase-class.html"><a title="lxml.etree.CommentBase" class="py-name" href="#" onclick="return doclink('link-468', 'CommentBase', 'link-468');">CommentBase</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L739"></a><tt class="py-lineno"> 739</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">'comment'</tt> </tt>
-<a name="L740"></a><tt class="py-lineno"> 740</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">,</tt> <tt id="link-469" class="py-name"><a title="lxml.html.basestring
-lxml.html.clean.basestring" class="py-name" href="#" onclick="return doclink('link-469', 'basestring', 'link-13');">basestring</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L741"></a><tt class="py-lineno"> 741</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">'string'</tt> </tt>
-<a name="L742"></a><tt class="py-lineno"> 742</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L743"></a><tt class="py-lineno"> 743</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">_nons</tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-470" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-456', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-457" class="py-name" targets="Class lxml.etree.CommentBase=lxml.etree.CommentBase-class.html"><a title="lxml.etree.CommentBase" class="py-name" href="#" onclick="return doclink('link-457', 'CommentBase', 'link-457');">CommentBase</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L747"></a><tt class="py-lineno"> 747</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">'comment'</tt> </tt>
+<a name="L748"></a><tt class="py-lineno"> 748</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">,</tt> <tt id="link-458" class="py-name"><a title="lxml.html.basestring
+lxml.html.clean.basestring" class="py-name" href="#" onclick="return doclink('link-458', 'basestring', 'link-13');">basestring</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L749"></a><tt class="py-lineno"> 749</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">'string'</tt> </tt>
+<a name="L750"></a><tt class="py-lineno"> 750</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L751"></a><tt class="py-lineno"> 751</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">_nons</tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-459" 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-470', 'tag', 'link-50');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L744"></a><tt class="py-lineno"> 744</tt> <tt class="py-line"> </tt>
-<a name="L745"></a><tt class="py-lineno"> 745</tt> <tt class="py-line"><tt class="py-comment">################################################################################</tt> </tt>
-<a name="L746"></a><tt class="py-lineno"> 746</tt> <tt class="py-line"><tt class="py-comment"># form handling</tt> </tt>
-<a name="L747"></a><tt class="py-lineno"> 747</tt> <tt class="py-line"><tt class="py-comment">################################################################################</tt> </tt>
-<a name="L748"></a><tt class="py-lineno"> 748</tt> <tt class="py-line"> </tt>
-<a name="FormElement"></a><div id="FormElement-def"><a name="L749"></a><tt class="py-lineno"> 749</tt> <a class="py-toggle" href="#" id="FormElement-toggle" onclick="return toggle('FormElement');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.html.FormElement-class.html">FormElement</a><tt class="py-op">(</tt><tt class="py-base-class">HtmlElement</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="FormElement-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="FormElement-expanded"><a name="L750"></a><tt class="py-lineno"> 750</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L751"></a><tt class="py-lineno"> 751</tt> <tt class="py-line"><tt class="py-docstring"> Represents a <form> element.</tt> </tt>
-<a name="L752"></a><tt class="py-lineno"> 752</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L753"></a><tt class="py-lineno"> 753</tt> <tt class="py-line"> </tt>
-<a name="FormElement.inputs"></a><div id="FormElement.inputs-def"><a name="L754"></a><tt class="py-lineno"> 754</tt> <a class="py-toggle" href="#" id="FormElement.inputs-toggle" onclick="return toggle('FormElement.inputs');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.FormElement-class.html#inputs">inputs</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="FormElement.inputs-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="FormElement.inputs-expanded"><a name="L755"></a><tt class="py-lineno"> 755</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L756"></a><tt class="py-lineno"> 756</tt> <tt class="py-line"><tt class="py-docstring"> Returns an accessor for all the input elements in the form.</tt> </tt>
-<a name="L757"></a><tt class="py-lineno"> 757</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L758"></a><tt class="py-lineno"> 758</tt> <tt class="py-line"><tt class="py-docstring"> See `InputGetter` for more information about the object.</tt> </tt>
-<a name="L759"></a><tt class="py-lineno"> 759</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L760"></a><tt class="py-lineno"> 760</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-471" class="py-name" targets="Class lxml.html.InputGetter=lxml.html.InputGetter-class.html"><a title="lxml.html.InputGetter" class="py-name" href="#" onclick="return doclink('link-471', 'InputGetter', 'link-471');">InputGetter</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L761"></a><tt class="py-lineno"> 761</tt> <tt class="py-line"> <tt id="link-472" class="py-name" targets="Variable lxml.html.FormElement.inputs=lxml.html.FormElement-class.html#inputs"><a title="lxml.html.FormElement.inputs" class="py-name" href="#" onclick="return doclink('link-472', 'inputs', 'link-472');">inputs</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-473" class="py-name"><a title="lxml.html.FormElement.inputs" class="py-name" href="#" onclick="return doclink('link-473', 'inputs', 'link-472');">inputs</a></tt><tt class="py-op">,</tt> <tt class="py-name">doc</tt><tt class="py-op">=</tt><tt id="link-474" class="py-name"><a title="lxml.html.FormElement.inputs" class="py-name" href="#" onclick="return doclink('link-474', 'inputs', 'link-472');">inputs</a></tt><tt class="py-op">.</tt><tt id="link-475" class="py-name"><a title="lxml.html.ElementSoup.__doc__
-lxml.html.soupparser.__doc__" class="py-name" href="#" onclick="return doclink('link-475', '__doc__', 'link-64');">__doc__</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L762"></a><tt class="py-lineno"> 762</tt> <tt class="py-line"> </tt>
-<a name="FormElement._fields__get"></a><div id="FormElement._fields__get-def"><a name="L763"></a><tt class="py-lineno"> 763</tt> <a class="py-toggle" href="#" id="FormElement._fields__get-toggle" onclick="return toggle('FormElement._fields__get');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.FormElement-class.html#_fields__get">_fields__get</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="FormElement._fields__get-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="FormElement._fields__get-expanded"><a name="L764"></a><tt class="py-lineno"> 764</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L765"></a><tt class="py-lineno"> 765</tt> <tt class="py-line"><tt class="py-docstring"> Dictionary-like object that represents all the fields in this</tt> </tt>
-<a name="L766"></a><tt class="py-lineno"> 766</tt> <tt class="py-line"><tt class="py-docstring"> form. You can set values in this dictionary to effect the</tt> </tt>
-<a name="L767"></a><tt class="py-lineno"> 767</tt> <tt class="py-line"><tt class="py-docstring"> form.</tt> </tt>
-<a name="L768"></a><tt class="py-lineno"> 768</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L769"></a><tt class="py-lineno"> 769</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-476" class="py-name" targets="Class lxml.html.FieldsDict=lxml.html.FieldsDict-class.html"><a title="lxml.html.FieldsDict" class="py-name" href="#" onclick="return doclink('link-476', 'FieldsDict', 'link-476');">FieldsDict</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-477" class="py-name"><a title="lxml.html.FormElement.inputs" class="py-name" href="#" onclick="return doclink('link-477', 'inputs', 'link-472');">inputs</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="FormElement._fields__set"></a><div id="FormElement._fields__set-def"><a name="L770"></a><tt class="py-lineno"> 770</tt> <a class="py-toggle" href="#" id="FormElement._fields__set-toggle" onclick="return toggle('FormElement._fields__set');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.FormElement-class.html#_fields__set">_fields__set</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="FormElement._fields__set-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="FormElement._fields__set-expanded"><a name="L771"></a><tt class="py-lineno"> 771</tt> <tt class="py-line"> <tt class="py-name">prev_keys</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-478" class="py-name" targets="Variable lxml.html.FormElement.fields=lxml.html.FormElement-class.html#fields"><a title="lxml.html.FormElement.fields" class="py-name" href="#" onclick="return doclink('link-478', 'fields', 'link-478');">fields</a></tt><tt class="py-op">.</tt><tt id="link-479" class="py-name"><a title="lxml.etree._Attrib.keys
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-459', 'tag', 'link-50');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L752"></a><tt class="py-lineno"> 752</tt> <tt class="py-line"> </tt>
+<a name="L753"></a><tt class="py-lineno"> 753</tt> <tt class="py-line"><tt class="py-comment">################################################################################</tt> </tt>
+<a name="L754"></a><tt class="py-lineno"> 754</tt> <tt class="py-line"><tt class="py-comment"># form handling</tt> </tt>
+<a name="L755"></a><tt class="py-lineno"> 755</tt> <tt class="py-line"><tt class="py-comment">################################################################################</tt> </tt>
+<a name="L756"></a><tt class="py-lineno"> 756</tt> <tt class="py-line"> </tt>
+<a name="FormElement"></a><div id="FormElement-def"><a name="L757"></a><tt class="py-lineno"> 757</tt> <a class="py-toggle" href="#" id="FormElement-toggle" onclick="return toggle('FormElement');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.html.FormElement-class.html">FormElement</a><tt class="py-op">(</tt><tt class="py-base-class">HtmlElement</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FormElement-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="FormElement-expanded"><a name="L758"></a><tt class="py-lineno"> 758</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L759"></a><tt class="py-lineno"> 759</tt> <tt class="py-line"><tt class="py-docstring"> Represents a <form> element.</tt> </tt>
+<a name="L760"></a><tt class="py-lineno"> 760</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L761"></a><tt class="py-lineno"> 761</tt> <tt class="py-line"> </tt>
+<a name="FormElement.inputs"></a><div id="FormElement.inputs-def"><a name="L762"></a><tt class="py-lineno"> 762</tt> <a class="py-toggle" href="#" id="FormElement.inputs-toggle" onclick="return toggle('FormElement.inputs');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.FormElement-class.html#inputs">inputs</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FormElement.inputs-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="FormElement.inputs-expanded"><a name="L763"></a><tt class="py-lineno"> 763</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L764"></a><tt class="py-lineno"> 764</tt> <tt class="py-line"><tt class="py-docstring"> Returns an accessor for all the input elements in the form.</tt> </tt>
+<a name="L765"></a><tt class="py-lineno"> 765</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L766"></a><tt class="py-lineno"> 766</tt> <tt class="py-line"><tt class="py-docstring"> See `InputGetter` for more information about the object.</tt> </tt>
+<a name="L767"></a><tt class="py-lineno"> 767</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L768"></a><tt class="py-lineno"> 768</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-460" class="py-name" targets="Class lxml.html.InputGetter=lxml.html.InputGetter-class.html"><a title="lxml.html.InputGetter" class="py-name" href="#" onclick="return doclink('link-460', 'InputGetter', 'link-460');">InputGetter</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L769"></a><tt class="py-lineno"> 769</tt> <tt class="py-line"> <tt id="link-461" class="py-name" targets="Variable lxml.html.FormElement.inputs=lxml.html.FormElement-class.html#inputs"><a title="lxml.html.FormElement.inputs" class="py-name" href="#" onclick="return doclink('link-461', 'inputs', 'link-461');">inputs</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-462" class="py-name"><a title="lxml.html.FormElement.inputs" class="py-name" href="#" onclick="return doclink('link-462', 'inputs', 'link-461');">inputs</a></tt><tt class="py-op">,</tt> <tt class="py-name">doc</tt><tt class="py-op">=</tt><tt id="link-463" class="py-name"><a title="lxml.html.FormElement.inputs" class="py-name" href="#" onclick="return doclink('link-463', 'inputs', 'link-461');">inputs</a></tt><tt class="py-op">.</tt><tt id="link-464" class="py-name"><a title="lxml.html.ElementSoup.__doc__
+lxml.html.soupparser.__doc__" class="py-name" href="#" onclick="return doclink('link-464', '__doc__', 'link-64');">__doc__</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L770"></a><tt class="py-lineno"> 770</tt> <tt class="py-line"> </tt>
+<a name="FormElement._fields__get"></a><div id="FormElement._fields__get-def"><a name="L771"></a><tt class="py-lineno"> 771</tt> <a class="py-toggle" href="#" id="FormElement._fields__get-toggle" onclick="return toggle('FormElement._fields__get');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.FormElement-class.html#_fields__get">_fields__get</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FormElement._fields__get-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="FormElement._fields__get-expanded"><a name="L772"></a><tt class="py-lineno"> 772</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L773"></a><tt class="py-lineno"> 773</tt> <tt class="py-line"><tt class="py-docstring"> Dictionary-like object that represents all the fields in this</tt> </tt>
+<a name="L774"></a><tt class="py-lineno"> 774</tt> <tt class="py-line"><tt class="py-docstring"> form. You can set values in this dictionary to effect the</tt> </tt>
+<a name="L775"></a><tt class="py-lineno"> 775</tt> <tt class="py-line"><tt class="py-docstring"> form.</tt> </tt>
+<a name="L776"></a><tt class="py-lineno"> 776</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L777"></a><tt class="py-lineno"> 777</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-465" class="py-name" targets="Class lxml.html.FieldsDict=lxml.html.FieldsDict-class.html"><a title="lxml.html.FieldsDict" class="py-name" href="#" onclick="return doclink('link-465', 'FieldsDict', 'link-465');">FieldsDict</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-466" class="py-name"><a title="lxml.html.FormElement.inputs" class="py-name" href="#" onclick="return doclink('link-466', 'inputs', 'link-461');">inputs</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="FormElement._fields__set"></a><div id="FormElement._fields__set-def"><a name="L778"></a><tt class="py-lineno"> 778</tt> <a class="py-toggle" href="#" id="FormElement._fields__set-toggle" onclick="return toggle('FormElement._fields__set');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.FormElement-class.html#_fields__set">_fields__set</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FormElement._fields__set-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="FormElement._fields__set-expanded"><a name="L779"></a><tt class="py-lineno"> 779</tt> <tt class="py-line"> <tt class="py-name">prev_keys</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-467" class="py-name" targets="Variable lxml.html.FormElement.fields=lxml.html.FormElement-class.html#fields"><a title="lxml.html.FormElement.fields" class="py-name" href="#" onclick="return doclink('link-467', 'fields', 'link-467');">fields</a></tt><tt class="py-op">.</tt><tt id="link-468" 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-479', 'keys', 'link-274');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L772"></a><tt class="py-lineno"> 772</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">key</tt><tt class="py-op">,</tt> <tt id="link-480" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.InputGetter.keys" class="py-name" href="#" onclick="return doclink('link-468', 'keys', 'link-274');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L780"></a><tt class="py-lineno"> 780</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">key</tt><tt class="py-op">,</tt> <tt id="link-469" 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-480', 'value', 'link-176');">value</a></tt> <tt class="py-keyword">in</tt> <tt id="link-481" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-469', 'value', 'link-176');">value</a></tt> <tt class="py-keyword">in</tt> <tt id="link-470" 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-481', 'value', 'link-176');">value</a></tt><tt class="py-op">.</tt><tt id="link-482" class="py-name"><a title="lxml.etree._Attrib.items
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-470', 'value', 'link-176');">value</a></tt><tt class="py-op">.</tt><tt id="link-471" 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-482', 'items', 'link-281');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L773"></a><tt class="py-lineno"> 773</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">key</tt> <tt class="py-keyword">in</tt> <tt class="py-name">prev_keys</tt><tt class="py-op">:</tt> </tt>
-<a name="L774"></a><tt class="py-lineno"> 774</tt> <tt class="py-line"> <tt class="py-name">prev_keys</tt><tt class="py-op">.</tt><tt id="link-483" class="py-name"><a title="lxml.etree._Element.remove
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-471', 'items', 'link-281');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L781"></a><tt class="py-lineno"> 781</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">key</tt> <tt class="py-keyword">in</tt> <tt class="py-name">prev_keys</tt><tt class="py-op">:</tt> </tt>
+<a name="L782"></a><tt class="py-lineno"> 782</tt> <tt class="py-line"> <tt class="py-name">prev_keys</tt><tt class="py-op">.</tt><tt id="link-472" class="py-name"><a title="lxml.etree._Element.remove
lxml.html.CheckboxValues.remove
-lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-483', 'remove', 'link-110');">remove</a></tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">)</tt> </tt>
-<a name="L775"></a><tt class="py-lineno"> 775</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-484" class="py-name"><a title="lxml.html.FormElement.fields" class="py-name" href="#" onclick="return doclink('link-484', 'fields', 'link-478');">fields</a></tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-485" 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-485', 'value', 'link-176');">value</a></tt> </tt>
-<a name="L776"></a><tt class="py-lineno"> 776</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">key</tt> <tt class="py-keyword">in</tt> <tt class="py-name">prev_keys</tt><tt class="py-op">:</tt> </tt>
-<a name="L777"></a><tt class="py-lineno"> 777</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">key</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L778"></a><tt class="py-lineno"> 778</tt> <tt class="py-line"> <tt class="py-comment"># Case of an unnamed input; these aren't really</tt> </tt>
-<a name="L779"></a><tt class="py-lineno"> 779</tt> <tt class="py-line"> <tt class="py-comment"># expressed in form_values() anyway.</tt> </tt>
-<a name="L780"></a><tt class="py-lineno"> 780</tt> <tt class="py-line"> <tt class="py-keyword">continue</tt> </tt>
-<a name="L781"></a><tt class="py-lineno"> 781</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-486" class="py-name"><a title="lxml.html.FormElement.fields" class="py-name" href="#" onclick="return doclink('link-486', 'fields', 'link-478');">fields</a></tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-</div><a name="L782"></a><tt class="py-lineno"> 782</tt> <tt class="py-line"> </tt>
-<a name="L783"></a><tt class="py-lineno"> 783</tt> <tt class="py-line"> <tt id="link-487" class="py-name"><a title="lxml.html.FormElement.fields" class="py-name" href="#" onclick="return doclink('link-487', 'fields', 'link-478');">fields</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-488" class="py-name" targets="Method lxml.html.FormElement._fields__get()=lxml.html.FormElement-class.html#_fields__get"><a title="lxml.html.FormElement._fields__get" class="py-name" href="#" onclick="return doclink('link-488', '_fields__get', 'link-488');">_fields__get</a></tt><tt class="py-op">,</tt> <tt id="link-489" class="py-name" targets="Method lxml.html.FormElement._fields__set()=lxml.html.FormElement-class.html#_fields__set"><a title="lxml.html.FormElement._fields__set" class="py-name" href="#" onclick="return doclink('link-489', '_fields__set', 'link-489');">_fields__set</a></tt><tt class="py-op">,</tt> <tt class="py-name">doc</tt><tt class="py-op">=</tt><tt id="link-490" class="py-name"><a title="lxml.html.FormElement._fields__get" class="py-name" href="#" onclick="return doclink('link-490', '_fields__get', 'link-488');">_fields__get</a></tt><tt class="py-op">.</tt><tt id="link-491" class="py-name"><a title="lxml.html.ElementSoup.__doc__
-lxml.html.soupparser.__doc__" class="py-name" href="#" onclick="return doclink('link-491', '__doc__', 'link-64');">__doc__</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L784"></a><tt class="py-lineno"> 784</tt> <tt class="py-line"> </tt>
-<a name="FormElement._name"></a><div id="FormElement._name-def"><a name="L785"></a><tt class="py-lineno"> 785</tt> <a class="py-toggle" href="#" id="FormElement._name-toggle" onclick="return toggle('FormElement._name');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.FormElement-class.html#_name">_name</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="FormElement._name-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="FormElement._name-expanded"><a name="L786"></a><tt class="py-lineno"> 786</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-492" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-472', 'remove', 'link-110');">remove</a></tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">)</tt> </tt>
+<a name="L783"></a><tt class="py-lineno"> 783</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-473" class="py-name"><a title="lxml.html.FormElement.fields" class="py-name" href="#" onclick="return doclink('link-473', 'fields', 'link-467');">fields</a></tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-474" 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-474', 'value', 'link-176');">value</a></tt> </tt>
+<a name="L784"></a><tt class="py-lineno"> 784</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">key</tt> <tt class="py-keyword">in</tt> <tt class="py-name">prev_keys</tt><tt class="py-op">:</tt> </tt>
+<a name="L785"></a><tt class="py-lineno"> 785</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">key</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L786"></a><tt class="py-lineno"> 786</tt> <tt class="py-line"> <tt class="py-comment"># Case of an unnamed input; these aren't really</tt> </tt>
+<a name="L787"></a><tt class="py-lineno"> 787</tt> <tt class="py-line"> <tt class="py-comment"># expressed in form_values() anyway.</tt> </tt>
+<a name="L788"></a><tt class="py-lineno"> 788</tt> <tt class="py-line"> <tt class="py-keyword">continue</tt> </tt>
+<a name="L789"></a><tt class="py-lineno"> 789</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-475" class="py-name"><a title="lxml.html.FormElement.fields" class="py-name" href="#" onclick="return doclink('link-475', 'fields', 'link-467');">fields</a></tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+</div><a name="L790"></a><tt class="py-lineno"> 790</tt> <tt class="py-line"> </tt>
+<a name="L791"></a><tt class="py-lineno"> 791</tt> <tt class="py-line"> <tt id="link-476" class="py-name"><a title="lxml.html.FormElement.fields" class="py-name" href="#" onclick="return doclink('link-476', 'fields', 'link-467');">fields</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-477" class="py-name" targets="Method lxml.html.FormElement._fields__get()=lxml.html.FormElement-class.html#_fields__get"><a title="lxml.html.FormElement._fields__get" class="py-name" href="#" onclick="return doclink('link-477', '_fields__get', 'link-477');">_fields__get</a></tt><tt class="py-op">,</tt> <tt id="link-478" class="py-name" targets="Method lxml.html.FormElement._fields__set()=lxml.html.FormElement-class.html#_fields__set"><a title="lxml.html.FormElement._fields__set" class="py-name" href="#" onclick="return doclink('link-478', '_fields__set', 'link-478');">_fields__set</a></tt><tt class="py-op">,</tt> <tt class="py-name">doc</tt><tt class="py-op">=</tt><tt id="link-479" class="py-name"><a title="lxml.html.FormElement._fields__get" class="py-name" href="#" onclick="return doclink('link-479', '_fields__get', 'link-477');">_fields__get</a></tt><tt class="py-op">.</tt><tt id="link-480" class="py-name"><a title="lxml.html.ElementSoup.__doc__
+lxml.html.soupparser.__doc__" class="py-name" href="#" onclick="return doclink('link-480', '__doc__', 'link-64');">__doc__</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L792"></a><tt class="py-lineno"> 792</tt> <tt class="py-line"> </tt>
+<a name="FormElement._name"></a><div id="FormElement._name-def"><a name="L793"></a><tt class="py-lineno"> 793</tt> <a class="py-toggle" href="#" id="FormElement._name-toggle" onclick="return toggle('FormElement._name');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.FormElement-class.html#_name">_name</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FormElement._name-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="FormElement._name-expanded"><a name="L794"></a><tt class="py-lineno"> 794</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-481" 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-492', 'get', 'link-82');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'name'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L787"></a><tt class="py-lineno"> 787</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-493" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-481', 'get', 'link-82');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'name'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L795"></a><tt class="py-lineno"> 795</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-482" 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-493', 'get', 'link-82');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'name'</tt><tt class="py-op">)</tt> </tt>
-<a name="L788"></a><tt class="py-lineno"> 788</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-494" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-482', 'get', 'link-82');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'name'</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">elif</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-483" 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-494', 'get', 'link-82');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'id'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L789"></a><tt class="py-lineno"> 789</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">'#'</tt> <tt class="py-op">+</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-495" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-483', 'get', 'link-82');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'id'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L797"></a><tt class="py-lineno"> 797</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">'#'</tt> <tt class="py-op">+</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-484" 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-495', 'get', 'link-82');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'id'</tt><tt class="py-op">)</tt> </tt>
-<a name="L790"></a><tt class="py-lineno"> 790</tt> <tt class="py-line"> <tt id="link-496" class="py-name"><a title="lxml.html.HtmlMixin.forms
-lxml.html.clean.Cleaner.forms" class="py-name" href="#" onclick="return doclink('link-496', 'forms', 'link-66');">forms</a></tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-497" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-497', 'body', 'link-72');">body</a></tt><tt class="py-op">.</tt><tt id="link-498" class="py-name"><a title="lxml.etree._Element.iter
-lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-498', 'iter', 'link-162');">iter</a></tt><tt class="py-op">(</tt><tt class="py-string">'form'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L791"></a><tt class="py-lineno"> 791</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-499" class="py-name"><a title="lxml.html.HtmlMixin.forms
-lxml.html.clean.Cleaner.forms" class="py-name" href="#" onclick="return doclink('link-499', 'forms', 'link-66');">forms</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L792"></a><tt class="py-lineno"> 792</tt> <tt class="py-line"> <tt id="link-500" class="py-name"><a title="lxml.html.HtmlMixin.forms
-lxml.html.clean.Cleaner.forms" class="py-name" href="#" onclick="return doclink('link-500', 'forms', 'link-66');">forms</a></tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-501" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-501', 'body', 'link-72');">body</a></tt><tt class="py-op">.</tt><tt id="link-502" class="py-name"><a title="lxml.etree._Element.iter
-lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-502', 'iter', 'link-162');">iter</a></tt><tt class="py-op">(</tt><tt class="py-string">'{%s}form'</tt> <tt class="py-op">%</tt> <tt id="link-503" class="py-name"><a title="lxml.html.XHTML_NAMESPACE" class="py-name" href="#" onclick="return doclink('link-503', 'XHTML_NAMESPACE', 'link-16');">XHTML_NAMESPACE</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L793"></a><tt class="py-lineno"> 793</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-504" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-504', 'str', 'link-11');">str</a></tt><tt class="py-op">(</tt><tt id="link-505" class="py-name"><a title="lxml.html.HtmlMixin.forms
-lxml.html.clean.Cleaner.forms" class="py-name" href="#" onclick="return doclink('link-505', 'forms', 'link-66');">forms</a></tt><tt class="py-op">.</tt><tt id="link-506" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-506', 'index', 'link-132');">index</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L794"></a><tt class="py-lineno"> 794</tt> <tt class="py-line"> </tt>
-<a name="FormElement.form_values"></a><div id="FormElement.form_values-def"><a name="L795"></a><tt class="py-lineno"> 795</tt> <a class="py-toggle" href="#" id="FormElement.form_values-toggle" onclick="return toggle('FormElement.form_values');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.FormElement-class.html#form_values">form_values</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="FormElement.form_values-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="FormElement.form_values-expanded"><a name="L796"></a><tt class="py-lineno"> 796</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L797"></a><tt class="py-lineno"> 797</tt> <tt class="py-line"><tt class="py-docstring"> Return a list of tuples of the field values for the form.</tt> </tt>
-<a name="L798"></a><tt class="py-lineno"> 798</tt> <tt class="py-line"><tt class="py-docstring"> This is suitable to be passed to ``urllib.urlencode()``.</tt> </tt>
-<a name="L799"></a><tt class="py-lineno"> 799</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L800"></a><tt class="py-lineno"> 800</tt> <tt class="py-line"> <tt class="py-name">results</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L801"></a><tt class="py-lineno"> 801</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">self</tt><tt class="py-op">.</tt><tt id="link-507" class="py-name"><a title="lxml.html.FormElement.inputs" class="py-name" href="#" onclick="return doclink('link-507', 'inputs', 'link-472');">inputs</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L802"></a><tt class="py-lineno"> 802</tt> <tt class="py-line"> <tt id="link-508" class="py-name"><a title="lxml.etree.DTD.name
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-484', 'get', 'link-82');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'id'</tt><tt class="py-op">)</tt> </tt>
+<a name="L798"></a><tt class="py-lineno"> 798</tt> <tt class="py-line"> <tt id="link-485" class="py-name"><a title="lxml.html.HtmlMixin.forms
+lxml.html.clean.Cleaner.forms" class="py-name" href="#" onclick="return doclink('link-485', 'forms', 'link-66');">forms</a></tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-486" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-486', 'body', 'link-72');">body</a></tt><tt class="py-op">.</tt><tt id="link-487" class="py-name"><a title="lxml.etree._Element.iter
+lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-487', 'iter', 'link-162');">iter</a></tt><tt class="py-op">(</tt><tt class="py-string">'form'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L799"></a><tt class="py-lineno"> 799</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-488" class="py-name"><a title="lxml.html.HtmlMixin.forms
+lxml.html.clean.Cleaner.forms" class="py-name" href="#" onclick="return doclink('link-488', 'forms', 'link-66');">forms</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L800"></a><tt class="py-lineno"> 800</tt> <tt class="py-line"> <tt id="link-489" class="py-name"><a title="lxml.html.HtmlMixin.forms
+lxml.html.clean.Cleaner.forms" class="py-name" href="#" onclick="return doclink('link-489', 'forms', 'link-66');">forms</a></tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-490" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-490', 'body', 'link-72');">body</a></tt><tt class="py-op">.</tt><tt id="link-491" class="py-name"><a title="lxml.etree._Element.iter
+lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-491', 'iter', 'link-162');">iter</a></tt><tt class="py-op">(</tt><tt class="py-string">'{%s}form'</tt> <tt class="py-op">%</tt> <tt id="link-492" class="py-name"><a title="lxml.html.XHTML_NAMESPACE" class="py-name" href="#" onclick="return doclink('link-492', 'XHTML_NAMESPACE', 'link-16');">XHTML_NAMESPACE</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L801"></a><tt class="py-lineno"> 801</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-493" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-493', 'str', 'link-11');">str</a></tt><tt class="py-op">(</tt><tt id="link-494" class="py-name"><a title="lxml.html.HtmlMixin.forms
+lxml.html.clean.Cleaner.forms" class="py-name" href="#" onclick="return doclink('link-494', 'forms', 'link-66');">forms</a></tt><tt class="py-op">.</tt><tt id="link-495" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-495', 'index', 'link-132');">index</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L802"></a><tt class="py-lineno"> 802</tt> <tt class="py-line"> </tt>
+<a name="FormElement.form_values"></a><div id="FormElement.form_values-def"><a name="L803"></a><tt class="py-lineno"> 803</tt> <a class="py-toggle" href="#" id="FormElement.form_values-toggle" onclick="return toggle('FormElement.form_values');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.FormElement-class.html#form_values">form_values</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FormElement.form_values-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="FormElement.form_values-expanded"><a name="L804"></a><tt class="py-lineno"> 804</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L805"></a><tt class="py-lineno"> 805</tt> <tt class="py-line"><tt class="py-docstring"> Return a list of tuples of the field values for the form.</tt> </tt>
+<a name="L806"></a><tt class="py-lineno"> 806</tt> <tt class="py-line"><tt class="py-docstring"> This is suitable to be passed to ``urllib.urlencode()``.</tt> </tt>
+<a name="L807"></a><tt class="py-lineno"> 807</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L808"></a><tt class="py-lineno"> 808</tt> <tt class="py-line"> <tt class="py-name">results</tt> <tt class="py-op">=</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-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-496" class="py-name"><a title="lxml.html.FormElement.inputs" class="py-name" href="#" onclick="return doclink('link-496', 'inputs', 'link-461');">inputs</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L810"></a><tt class="py-lineno"> 810</tt> <tt class="py-line"> <tt id="link-497" 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-508', 'name', 'link-232');">name</a></tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-509" class="py-name"><a title="lxml.etree.DTD.name
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-497', 'name', 'link-232');">name</a></tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-498" 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-509', 'name', 'link-232');">name</a></tt> </tt>
-<a name="L803"></a><tt class="py-lineno"> 803</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-510" class="py-name"><a title="lxml.etree.DTD.name
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-498', 'name', 'link-232');">name</a></tt> </tt>
+<a name="L811"></a><tt class="py-lineno"> 811</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-499" 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-510', 'name', 'link-232');">name</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-keyword">continue</tt> </tt>
-<a name="L805"></a><tt class="py-lineno"> 805</tt> <tt class="py-line"> <tt id="link-511" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-499', 'name', 'link-232');">name</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-keyword">continue</tt> </tt>
+<a name="L813"></a><tt class="py-lineno"> 813</tt> <tt class="py-line"> <tt id="link-500" 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-511', 'tag', 'link-50');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-name">_nons</tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-512" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-500', 'tag', 'link-50');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-name">_nons</tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-501" 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-512', 'tag', 'link-50');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L806"></a><tt class="py-lineno"> 806</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-513" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-501', 'tag', 'link-50');">tag</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-keyword">if</tt> <tt id="link-502" 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-513', 'tag', 'link-50');">tag</a></tt> <tt class="py-op">==</tt> <tt class="py-string">'textarea'</tt><tt class="py-op">:</tt> </tt>
-<a name="L807"></a><tt class="py-lineno"> 807</tt> <tt class="py-line"> <tt class="py-name">results</tt><tt class="py-op">.</tt><tt id="link-514" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-514', 'append', 'link-275');">append</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt id="link-515" class="py-name"><a title="lxml.etree.DTD.name
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-502', 'tag', 'link-50');">tag</a></tt> <tt class="py-op">==</tt> <tt class="py-string">'textarea'</tt><tt class="py-op">:</tt> </tt>
+<a name="L815"></a><tt class="py-lineno"> 815</tt> <tt class="py-line"> <tt class="py-name">results</tt><tt class="py-op">.</tt><tt id="link-503" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-503', 'append', 'link-275');">append</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt id="link-504" 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-515', 'name', 'link-232');">name</a></tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-516" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-504', 'name', 'link-232');">name</a></tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-505" 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-516', 'value', 'link-176');">value</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L808"></a><tt class="py-lineno"> 808</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt id="link-517" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-505', 'value', 'link-176');">value</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L816"></a><tt class="py-lineno"> 816</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt id="link-506" 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-517', 'tag', 'link-50');">tag</a></tt> <tt class="py-op">==</tt> <tt class="py-string">'select'</tt><tt class="py-op">:</tt> </tt>
-<a name="L809"></a><tt class="py-lineno"> 809</tt> <tt class="py-line"> <tt id="link-518" class="py-name"><a title="lxml.html.CheckboxGroup.value
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-506', 'tag', 'link-50');">tag</a></tt> <tt class="py-op">==</tt> <tt class="py-string">'select'</tt><tt class="py-op">:</tt> </tt>
+<a name="L817"></a><tt class="py-lineno"> 817</tt> <tt class="py-line"> <tt id="link-507" 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-518', 'value', 'link-176');">value</a></tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-519" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-507', 'value', 'link-176');">value</a></tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-508" 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-519', 'value', 'link-176');">value</a></tt> </tt>
-<a name="L810"></a><tt class="py-lineno"> 810</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-520" class="py-name" targets="Variable lxml.html.SelectElement.multiple=lxml.html.SelectElement-class.html#multiple"><a title="lxml.html.SelectElement.multiple" class="py-name" href="#" onclick="return doclink('link-520', 'multiple', 'link-520');">multiple</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L811"></a><tt class="py-lineno"> 811</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt id="link-521" class="py-name" targets="Variable lxml.tests.test_objectify.v=lxml.tests.test_objectify-module.html#v"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-521', 'v', 'link-521');">v</a></tt> <tt class="py-keyword">in</tt> <tt id="link-522" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-508', 'value', 'link-176');">value</a></tt> </tt>
+<a name="L818"></a><tt class="py-lineno"> 818</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-509" class="py-name" targets="Variable lxml.html.SelectElement.multiple=lxml.html.SelectElement-class.html#multiple"><a title="lxml.html.SelectElement.multiple" class="py-name" href="#" onclick="return doclink('link-509', 'multiple', 'link-509');">multiple</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L819"></a><tt class="py-lineno"> 819</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt id="link-510" class="py-name" targets="Variable lxml.tests.test_objectify.v=lxml.tests.test_objectify-module.html#v"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-510', 'v', 'link-510');">v</a></tt> <tt class="py-keyword">in</tt> <tt id="link-511" 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-522', 'value', 'link-176');">value</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">results</tt><tt class="py-op">.</tt><tt id="link-523" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-523', 'append', 'link-275');">append</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt id="link-524" class="py-name"><a title="lxml.etree.DTD.name
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-511', 'value', 'link-176');">value</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L820"></a><tt class="py-lineno"> 820</tt> <tt class="py-line"> <tt class="py-name">results</tt><tt class="py-op">.</tt><tt id="link-512" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-512', 'append', 'link-275');">append</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt id="link-513" 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-524', 'name', 'link-232');">name</a></tt><tt class="py-op">,</tt> <tt id="link-525" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-525', 'v', 'link-521');">v</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L813"></a><tt class="py-lineno"> 813</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt id="link-526" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-513', 'name', 'link-232');">name</a></tt><tt class="py-op">,</tt> <tt id="link-514" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-514', 'v', 'link-510');">v</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L821"></a><tt class="py-lineno"> 821</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt id="link-515" 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-526', 'value', 'link-176');">value</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="L814"></a><tt class="py-lineno"> 814</tt> <tt class="py-line"> <tt class="py-name">results</tt><tt class="py-op">.</tt><tt id="link-527" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-527', 'append', 'link-275');">append</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt id="link-528" class="py-name"><a title="lxml.etree.DTD.name
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-515', 'value', 'link-176');">value</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="L822"></a><tt class="py-lineno"> 822</tt> <tt class="py-line"> <tt class="py-name">results</tt><tt class="py-op">.</tt><tt id="link-516" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-516', 'append', 'link-275');">append</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt id="link-517" 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-528', 'name', 'link-232');">name</a></tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-529" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-517', 'name', 'link-232');">name</a></tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-518" 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-529', 'value', 'link-176');">value</a></tt><tt class="py-op">)</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">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L816"></a><tt class="py-lineno"> 816</tt> <tt class="py-line"> <tt class="py-keyword">assert</tt> <tt id="link-530" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-518', 'value', 'link-176');">value</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L823"></a><tt class="py-lineno"> 823</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L824"></a><tt class="py-lineno"> 824</tt> <tt class="py-line"> <tt class="py-keyword">assert</tt> <tt id="link-519" 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-530', 'tag', 'link-50');">tag</a></tt> <tt class="py-op">==</tt> <tt class="py-string">'input'</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt> </tt>
-<a name="L817"></a><tt class="py-lineno"> 817</tt> <tt class="py-line"> <tt class="py-string">"Unexpected tag: %r"</tt> <tt class="py-op">%</tt> <tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
-<a name="L818"></a><tt class="py-lineno"> 818</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-531" class="py-name" targets="Variable lxml.html.InputElement.checkable=lxml.html.InputElement-class.html#checkable"><a title="lxml.html.InputElement.checkable" class="py-name" href="#" onclick="return doclink('link-531', 'checkable', 'link-531');">checkable</a></tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-532" class="py-name" targets="Variable lxml.html.InputElement.checked=lxml.html.InputElement-class.html#checked"><a title="lxml.html.InputElement.checked" class="py-name" href="#" onclick="return doclink('link-532', 'checked', 'link-532');">checked</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L819"></a><tt class="py-lineno"> 819</tt> <tt class="py-line"> <tt class="py-keyword">continue</tt> </tt>
-<a name="L820"></a><tt class="py-lineno"> 820</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-533" class="py-name"><a title="lxml.etree._LogEntry.type
-lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-533', 'type', 'link-239');">type</a></tt> <tt class="py-keyword">in</tt> <tt class="py-op">(</tt><tt class="py-string">'submit'</tt><tt class="py-op">,</tt> <tt class="py-string">'image'</tt><tt class="py-op">,</tt> <tt class="py-string">'reset'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L821"></a><tt class="py-lineno"> 821</tt> <tt class="py-line"> <tt class="py-keyword">continue</tt> </tt>
-<a name="L822"></a><tt class="py-lineno"> 822</tt> <tt class="py-line"> <tt id="link-534" class="py-name"><a title="lxml.html.CheckboxGroup.value
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-519', 'tag', 'link-50');">tag</a></tt> <tt class="py-op">==</tt> <tt class="py-string">'input'</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-string">"Unexpected tag: %r"</tt> <tt class="py-op">%</tt> <tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
+<a name="L826"></a><tt class="py-lineno"> 826</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-520" class="py-name" targets="Variable lxml.html.InputElement.checkable=lxml.html.InputElement-class.html#checkable"><a title="lxml.html.InputElement.checkable" class="py-name" href="#" onclick="return doclink('link-520', 'checkable', 'link-520');">checkable</a></tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-521" class="py-name" targets="Variable lxml.html.InputElement.checked=lxml.html.InputElement-class.html#checked"><a title="lxml.html.InputElement.checked" class="py-name" href="#" onclick="return doclink('link-521', 'checked', 'link-521');">checked</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">continue</tt> </tt>
+<a name="L828"></a><tt class="py-lineno"> 828</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-522" class="py-name"><a title="lxml.etree._LogEntry.type
+lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-522', 'type', 'link-239');">type</a></tt> <tt class="py-keyword">in</tt> <tt class="py-op">(</tt><tt class="py-string">'submit'</tt><tt class="py-op">,</tt> <tt class="py-string">'image'</tt><tt class="py-op">,</tt> <tt class="py-string">'reset'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L829"></a><tt class="py-lineno"> 829</tt> <tt class="py-line"> <tt class="py-keyword">continue</tt> </tt>
+<a name="L830"></a><tt class="py-lineno"> 830</tt> <tt class="py-line"> <tt id="link-523" 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-534', 'value', 'link-176');">value</a></tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-535" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-523', 'value', 'link-176');">value</a></tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-524" 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-535', 'value', 'link-176');">value</a></tt> </tt>
-<a name="L823"></a><tt class="py-lineno"> 823</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-536" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-524', 'value', 'link-176');">value</a></tt> </tt>
+<a name="L831"></a><tt class="py-lineno"> 831</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-525" 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-536', 'value', 'link-176');">value</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="L824"></a><tt class="py-lineno"> 824</tt> <tt class="py-line"> <tt class="py-name">results</tt><tt class="py-op">.</tt><tt id="link-537" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-537', 'append', 'link-275');">append</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt id="link-538" class="py-name"><a title="lxml.etree.DTD.name
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-525', 'value', 'link-176');">value</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="L832"></a><tt class="py-lineno"> 832</tt> <tt class="py-line"> <tt class="py-name">results</tt><tt class="py-op">.</tt><tt id="link-526" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-526', 'append', 'link-275');">append</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt id="link-527" 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-538', 'name', 'link-232');">name</a></tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-539" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-527', 'name', 'link-232');">name</a></tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-528" 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-539', 'value', 'link-176');">value</a></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">return</tt> <tt class="py-name">results</tt> </tt>
-</div><a name="L826"></a><tt class="py-lineno"> 826</tt> <tt class="py-line"> </tt>
-<a name="FormElement._action__get"></a><div id="FormElement._action__get-def"><a name="L827"></a><tt class="py-lineno"> 827</tt> <a class="py-toggle" href="#" id="FormElement._action__get-toggle" onclick="return toggle('FormElement._action__get');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.FormElement-class.html#_action__get">_action__get</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="FormElement._action__get-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="FormElement._action__get-expanded"><a name="L828"></a><tt class="py-lineno"> 828</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L829"></a><tt class="py-lineno"> 829</tt> <tt class="py-line"><tt class="py-docstring"> Get/set the form's ``action`` attribute.</tt> </tt>
-<a name="L830"></a><tt class="py-lineno"> 830</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L831"></a><tt class="py-lineno"> 831</tt> <tt class="py-line"> <tt id="link-540" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-540', 'base_url', 'link-61');">base_url</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-541" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-541', 'base_url', 'link-61');">base_url</a></tt> </tt>
-<a name="L832"></a><tt class="py-lineno"> 832</tt> <tt class="py-line"> <tt id="link-542" 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-542', 'action', 'link-542');">action</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-543" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-528', 'value', 'link-176');">value</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L833"></a><tt class="py-lineno"> 833</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">results</tt> </tt>
+</div><a name="L834"></a><tt class="py-lineno"> 834</tt> <tt class="py-line"> </tt>
+<a name="FormElement._action__get"></a><div id="FormElement._action__get-def"><a name="L835"></a><tt class="py-lineno"> 835</tt> <a class="py-toggle" href="#" id="FormElement._action__get-toggle" onclick="return toggle('FormElement._action__get');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.FormElement-class.html#_action__get">_action__get</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FormElement._action__get-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="FormElement._action__get-expanded"><a name="L836"></a><tt class="py-lineno"> 836</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L837"></a><tt class="py-lineno"> 837</tt> <tt class="py-line"><tt class="py-docstring"> Get/set the form's ``action`` attribute.</tt> </tt>
+<a name="L838"></a><tt class="py-lineno"> 838</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L839"></a><tt class="py-lineno"> 839</tt> <tt class="py-line"> <tt id="link-529" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-529', 'base_url', 'link-61');">base_url</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-530" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-530', 'base_url', 'link-61');">base_url</a></tt> </tt>
+<a name="L840"></a><tt class="py-lineno"> 840</tt> <tt class="py-line"> <tt id="link-531" 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-531', 'action', 'link-531');">action</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-532" 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-543', 'get', 'link-82');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'action'</tt><tt class="py-op">)</tt> </tt>
-<a name="L833"></a><tt class="py-lineno"> 833</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-544" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-544', 'base_url', 'link-61');">base_url</a></tt> <tt class="py-keyword">and</tt> <tt id="link-545" class="py-name"><a title="lxml.html.FormElement.action" class="py-name" href="#" onclick="return doclink('link-545', 'action', 'link-542');">action</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="L834"></a><tt class="py-lineno"> 834</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">urljoin</tt><tt class="py-op">(</tt><tt id="link-546" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-546', 'base_url', 'link-61');">base_url</a></tt><tt class="py-op">,</tt> <tt id="link-547" class="py-name"><a title="lxml.html.FormElement.action" class="py-name" href="#" onclick="return doclink('link-547', 'action', 'link-542');">action</a></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">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L836"></a><tt class="py-lineno"> 836</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-548" class="py-name"><a title="lxml.html.FormElement.action" class="py-name" href="#" onclick="return doclink('link-548', 'action', 'link-542');">action</a></tt> </tt>
-</div><a name="FormElement._action__set"></a><div id="FormElement._action__set-def"><a name="L837"></a><tt class="py-lineno"> 837</tt> <a class="py-toggle" href="#" id="FormElement._action__set-toggle" onclick="return toggle('FormElement._action__set');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.FormElement-class.html#_action__set">_action__set</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="FormElement._action__set-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="FormElement._action__set-expanded"><a name="L838"></a><tt class="py-lineno"> 838</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-549" class="py-name"><a title="lxml.etree._Element.set
-lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-549', 'set', 'link-9');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'action'</tt><tt class="py-op">,</tt> <tt id="link-550" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-532', 'get', 'link-82');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'action'</tt><tt class="py-op">)</tt> </tt>
+<a name="L841"></a><tt class="py-lineno"> 841</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-533" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-533', 'base_url', 'link-61');">base_url</a></tt> <tt class="py-keyword">and</tt> <tt id="link-534" class="py-name"><a title="lxml.html.FormElement.action" class="py-name" href="#" onclick="return doclink('link-534', 'action', 'link-531');">action</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="L842"></a><tt class="py-lineno"> 842</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">urljoin</tt><tt class="py-op">(</tt><tt id="link-535" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-535', 'base_url', 'link-61');">base_url</a></tt><tt class="py-op">,</tt> <tt id="link-536" class="py-name"><a title="lxml.html.FormElement.action" class="py-name" href="#" onclick="return doclink('link-536', 'action', 'link-531');">action</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-keyword">else</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">return</tt> <tt id="link-537" class="py-name"><a title="lxml.html.FormElement.action" class="py-name" href="#" onclick="return doclink('link-537', 'action', 'link-531');">action</a></tt> </tt>
+</div><a name="FormElement._action__set"></a><div id="FormElement._action__set-def"><a name="L845"></a><tt class="py-lineno"> 845</tt> <a class="py-toggle" href="#" id="FormElement._action__set-toggle" onclick="return toggle('FormElement._action__set');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.FormElement-class.html#_action__set">_action__set</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FormElement._action__set-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="FormElement._action__set-expanded"><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 id="link-538" class="py-name"><a title="lxml.etree._Element.set
+lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-538', 'set', 'link-9');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'action'</tt><tt class="py-op">,</tt> <tt id="link-539" 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-550', 'value', 'link-176');">value</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="FormElement._action__del"></a><div id="FormElement._action__del-def"><a name="L839"></a><tt class="py-lineno"> 839</tt> <a class="py-toggle" href="#" id="FormElement._action__del-toggle" onclick="return toggle('FormElement._action__del');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.FormElement-class.html#_action__del">_action__del</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="FormElement._action__del-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="FormElement._action__del-expanded"><a name="L840"></a><tt class="py-lineno"> 840</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'action'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-551" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-539', 'value', 'link-176');">value</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="FormElement._action__del"></a><div id="FormElement._action__del-def"><a name="L847"></a><tt class="py-lineno"> 847</tt> <a class="py-toggle" href="#" id="FormElement._action__del-toggle" onclick="return toggle('FormElement._action__del');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.FormElement-class.html#_action__del">_action__del</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FormElement._action__del-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="FormElement._action__del-expanded"><a name="L848"></a><tt class="py-lineno"> 848</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'action'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-540" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-551', 'attrib', 'link-94');">attrib</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L841"></a><tt class="py-lineno"> 841</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-552" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-540', 'attrib', 'link-94');">attrib</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L849"></a><tt class="py-lineno"> 849</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-541" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-552', 'attrib', 'link-94');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'action'</tt><tt class="py-op">]</tt> </tt>
-</div><a name="L842"></a><tt class="py-lineno"> 842</tt> <tt class="py-line"> <tt id="link-553" class="py-name"><a title="lxml.html.FormElement.action" class="py-name" href="#" onclick="return doclink('link-553', 'action', 'link-542');">action</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-554" class="py-name" targets="Method lxml.html.FormElement._action__get()=lxml.html.FormElement-class.html#_action__get"><a title="lxml.html.FormElement._action__get" class="py-name" href="#" onclick="return doclink('link-554', '_action__get', 'link-554');">_action__get</a></tt><tt class="py-op">,</tt> <tt id="link-555" class="py-name" targets="Method lxml.html.FormElement._action__set()=lxml.html.FormElement-class.html#_action__set"><a title="lxml.html.FormElement._action__set" class="py-name" href="#" onclick="return doclink('link-555', '_action__set', 'link-555');">_action__set</a></tt><tt class="py-op">,</tt> <tt id="link-556" class="py-name" targets="Method lxml.html.FormElement._action__del()=lxml.html.FormElement-class.html#_action__del"><a title="lxml.html.FormElement._action__del" class="py-name" href="#" onclick="return doclink('link-556', '_action__del', 'link-556');">_action__del</a></tt><tt class="py-op">,</tt> <tt class="py-name">doc</tt><tt class="py-op">=</tt><tt id="link-557" class="py-name"><a title="lxml.html.FormElement._action__get" class="py-name" href="#" onclick="return doclink('link-557', '_action__get', 'link-554');">_action__get</a></tt><tt class="py-op">.</tt><tt id="link-558" class="py-name"><a title="lxml.html.ElementSoup.__doc__
-lxml.html.soupparser.__doc__" class="py-name" href="#" onclick="return doclink('link-558', '__doc__', 'link-64');">__doc__</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L843"></a><tt class="py-lineno"> 843</tt> <tt class="py-line"> </tt>
-<a name="FormElement._method__get"></a><div id="FormElement._method__get-def"><a name="L844"></a><tt class="py-lineno"> 844</tt> <a class="py-toggle" href="#" id="FormElement._method__get-toggle" onclick="return toggle('FormElement._method__get');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.FormElement-class.html#_method__get">_method__get</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="FormElement._method__get-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="FormElement._method__get-expanded"><a name="L845"></a><tt class="py-lineno"> 845</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L846"></a><tt class="py-lineno"> 846</tt> <tt class="py-line"><tt class="py-docstring"> Get/set the form's method. Always returns a capitalized</tt> </tt>
-<a name="L847"></a><tt class="py-lineno"> 847</tt> <tt class="py-line"><tt class="py-docstring"> string, and defaults to ``'GET'``</tt> </tt>
-<a name="L848"></a><tt class="py-lineno"> 848</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L849"></a><tt class="py-lineno"> 849</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-559" class="py-name"><a title="lxml.etree._Attrib.get
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-541', 'attrib', 'link-94');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'action'</tt><tt class="py-op">]</tt> </tt>
+</div><a name="L850"></a><tt class="py-lineno"> 850</tt> <tt class="py-line"> <tt id="link-542" class="py-name"><a title="lxml.html.FormElement.action" class="py-name" href="#" onclick="return doclink('link-542', 'action', 'link-531');">action</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-543" class="py-name" targets="Method lxml.html.FormElement._action__get()=lxml.html.FormElement-class.html#_action__get"><a title="lxml.html.FormElement._action__get" class="py-name" href="#" onclick="return doclink('link-543', '_action__get', 'link-543');">_action__get</a></tt><tt class="py-op">,</tt> <tt id="link-544" class="py-name" targets="Method lxml.html.FormElement._action__set()=lxml.html.FormElement-class.html#_action__set"><a title="lxml.html.FormElement._action__set" class="py-name" href="#" onclick="return doclink('link-544', '_action__set', 'link-544');">_action__set</a></tt><tt class="py-op">,</tt> <tt id="link-545" class="py-name" targets="Method lxml.html.FormElement._action__del()=lxml.html.FormElement-class.html#_action__del"><a title="lxml.html.FormElement._action__del" class="py-name" href="#" onclick="return doclink('link-545', '_action__del', 'link-545');">_action__del</a></tt><tt class="py-op">,</tt> <tt class="py-name">doc</tt><tt class="py-op">=</tt><tt id="link-546" class="py-name"><a title="lxml.html.FormElement._action__get" class="py-name" href="#" onclick="return doclink('link-546', '_action__get', 'link-543');">_action__get</a></tt><tt class="py-op">.</tt><tt id="link-547" class="py-name"><a title="lxml.html.ElementSoup.__doc__
+lxml.html.soupparser.__doc__" class="py-name" href="#" onclick="return doclink('link-547', '__doc__', 'link-64');">__doc__</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L851"></a><tt class="py-lineno"> 851</tt> <tt class="py-line"> </tt>
+<a name="FormElement._method__get"></a><div id="FormElement._method__get-def"><a name="L852"></a><tt class="py-lineno"> 852</tt> <a class="py-toggle" href="#" id="FormElement._method__get-toggle" onclick="return toggle('FormElement._method__get');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.FormElement-class.html#_method__get">_method__get</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FormElement._method__get-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="FormElement._method__get-expanded"><a name="L853"></a><tt class="py-lineno"> 853</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L854"></a><tt class="py-lineno"> 854</tt> <tt class="py-line"><tt class="py-docstring"> Get/set the form's method. Always returns a capitalized</tt> </tt>
+<a name="L855"></a><tt class="py-lineno"> 855</tt> <tt class="py-line"><tt class="py-docstring"> string, and defaults to ``'GET'``</tt> </tt>
+<a name="L856"></a><tt class="py-lineno"> 856</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L857"></a><tt class="py-lineno"> 857</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-548" 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-559', 'get', 'link-82');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'method'</tt><tt class="py-op">,</tt> <tt class="py-string">'GET'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">upper</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="FormElement._method__set"></a><div id="FormElement._method__set-def"><a name="L850"></a><tt class="py-lineno"> 850</tt> <a class="py-toggle" href="#" id="FormElement._method__set-toggle" onclick="return toggle('FormElement._method__set');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.FormElement-class.html#_method__set">_method__set</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="FormElement._method__set-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="FormElement._method__set-expanded"><a name="L851"></a><tt class="py-lineno"> 851</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-560" class="py-name"><a title="lxml.etree._Element.set
-lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-560', 'set', 'link-9');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'method'</tt><tt class="py-op">,</tt> <tt id="link-561" 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-561', 'value', 'link-176');">value</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="L852"></a><tt class="py-lineno"> 852</tt> <tt class="py-line"> <tt id="link-562" 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-562', 'method', 'link-562');">method</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-563" class="py-name" targets="Method lxml.html.FormElement._method__get()=lxml.html.FormElement-class.html#_method__get"><a title="lxml.html.FormElement._method__get" class="py-name" href="#" onclick="return doclink('link-563', '_method__get', 'link-563');">_method__get</a></tt><tt class="py-op">,</tt> <tt id="link-564" class="py-name" targets="Method lxml.html.FormElement._method__set()=lxml.html.FormElement-class.html#_method__set"><a title="lxml.html.FormElement._method__set" class="py-name" href="#" onclick="return doclink('link-564', '_method__set', 'link-564');">_method__set</a></tt><tt class="py-op">,</tt> <tt class="py-name">doc</tt><tt class="py-op">=</tt><tt id="link-565" class="py-name"><a title="lxml.html.FormElement._method__get" class="py-name" href="#" onclick="return doclink('link-565', '_method__get', 'link-563');">_method__get</a></tt><tt class="py-op">.</tt><tt id="link-566" class="py-name"><a title="lxml.html.ElementSoup.__doc__
-lxml.html.soupparser.__doc__" class="py-name" href="#" onclick="return doclink('link-566', '__doc__', 'link-64');">__doc__</a></tt><tt class="py-op">)</tt> </tt>
-</div><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-567" class="py-name" targets="Class lxml.html.HtmlElementClassLookup=lxml.html.HtmlElementClassLookup-class.html"><a title="lxml.html.HtmlElementClassLookup" class="py-name" href="#" onclick="return doclink('link-567', 'HtmlElementClassLookup', 'link-567');">HtmlElementClassLookup</a></tt><tt class="py-op">.</tt><tt id="link-568" class="py-name"><a title="lxml.html.HtmlElementClassLookup._default_element_classes" class="py-name" href="#" onclick="return doclink('link-568', '_default_element_classes', 'link-265');">_default_element_classes</a></tt><tt class="py-op">[</tt><tt class="py-string">'form'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-569" class="py-name" targets="Class lxml.html.FormElement=lxml.html.FormElement-class.html"><a title="lxml.html.FormElement" class="py-name" href="#" onclick="return doclink('link-569', 'FormElement', 'link-569');">FormElement</a></tt> </tt>
-<a name="L855"></a><tt class="py-lineno"> 855</tt> <tt class="py-line"> </tt>
-<a name="submit_form"></a><div id="submit_form-def"><a name="L856"></a><tt class="py-lineno"> 856</tt> <a class="py-toggle" href="#" id="submit_form-toggle" onclick="return toggle('submit_form');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html-module.html#submit_form">submit_form</a><tt class="py-op">(</tt><tt class="py-param">form</tt><tt class="py-op">,</tt> <tt class="py-param">extra_values</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">open_http</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="submit_form-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="submit_form-expanded"><a name="L857"></a><tt class="py-lineno"> 857</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L858"></a><tt class="py-lineno"> 858</tt> <tt class="py-line"><tt class="py-docstring"> Helper function to submit a form. Returns a file-like object, as from</tt> </tt>
-<a name="L859"></a><tt class="py-lineno"> 859</tt> <tt class="py-line"><tt class="py-docstring"> ``urllib.urlopen()``. This object also has a ``.geturl()`` function,</tt> </tt>
-<a name="L860"></a><tt class="py-lineno"> 860</tt> <tt class="py-line"><tt class="py-docstring"> which shows the URL if there were any redirects.</tt> </tt>
-<a name="L861"></a><tt class="py-lineno"> 861</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L862"></a><tt class="py-lineno"> 862</tt> <tt class="py-line"><tt class="py-docstring"> You can use this like::</tt> </tt>
-<a name="L863"></a><tt class="py-lineno"> 863</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L864"></a><tt class="py-lineno"> 864</tt> <tt class="py-line"><tt class="py-docstring"> form = doc.forms[0]</tt> </tt>
-<a name="L865"></a><tt class="py-lineno"> 865</tt> <tt class="py-line"><tt class="py-docstring"> form.inputs['foo'].value = 'bar' # etc</tt> </tt>
-<a name="L866"></a><tt class="py-lineno"> 866</tt> <tt class="py-line"><tt class="py-docstring"> response = form.submit()</tt> </tt>
-<a name="L867"></a><tt class="py-lineno"> 867</tt> <tt class="py-line"><tt class="py-docstring"> doc = parse(response)</tt> </tt>
-<a name="L868"></a><tt class="py-lineno"> 868</tt> <tt class="py-line"><tt class="py-docstring"> doc.make_links_absolute(response.geturl())</tt> </tt>
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-548', 'get', 'link-82');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'method'</tt><tt class="py-op">,</tt> <tt class="py-string">'GET'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">upper</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="FormElement._method__set"></a><div id="FormElement._method__set-def"><a name="L858"></a><tt class="py-lineno"> 858</tt> <a class="py-toggle" href="#" id="FormElement._method__set-toggle" onclick="return toggle('FormElement._method__set');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.FormElement-class.html#_method__set">_method__set</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FormElement._method__set-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="FormElement._method__set-expanded"><a name="L859"></a><tt class="py-lineno"> 859</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-549" class="py-name"><a title="lxml.etree._Element.set
+lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-549', 'set', 'link-9');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'method'</tt><tt class="py-op">,</tt> <tt id="link-550" 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-550', 'value', 'link-176');">value</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="L860"></a><tt class="py-lineno"> 860</tt> <tt class="py-line"> <tt id="link-551" 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-551', 'method', 'link-551');">method</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-552" class="py-name" targets="Method lxml.html.FormElement._method__get()=lxml.html.FormElement-class.html#_method__get"><a title="lxml.html.FormElement._method__get" class="py-name" href="#" onclick="return doclink('link-552', '_method__get', 'link-552');">_method__get</a></tt><tt class="py-op">,</tt> <tt id="link-553" class="py-name" targets="Method lxml.html.FormElement._method__set()=lxml.html.FormElement-class.html#_method__set"><a title="lxml.html.FormElement._method__set" class="py-name" href="#" onclick="return doclink('link-553', '_method__set', 'link-553');">_method__set</a></tt><tt class="py-op">,</tt> <tt class="py-name">doc</tt><tt class="py-op">=</tt><tt id="link-554" class="py-name"><a title="lxml.html.FormElement._method__get" class="py-name" href="#" onclick="return doclink('link-554', '_method__get', 'link-552');">_method__get</a></tt><tt class="py-op">.</tt><tt id="link-555" class="py-name"><a title="lxml.html.ElementSoup.__doc__
+lxml.html.soupparser.__doc__" class="py-name" href="#" onclick="return doclink('link-555', '__doc__', 'link-64');">__doc__</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L861"></a><tt class="py-lineno"> 861</tt> <tt class="py-line"> </tt>
+<a name="L862"></a><tt class="py-lineno"> 862</tt> <tt class="py-line"><tt id="link-556" class="py-name" targets="Class lxml.html.HtmlElementClassLookup=lxml.html.HtmlElementClassLookup-class.html"><a title="lxml.html.HtmlElementClassLookup" class="py-name" href="#" onclick="return doclink('link-556', 'HtmlElementClassLookup', 'link-556');">HtmlElementClassLookup</a></tt><tt class="py-op">.</tt><tt id="link-557" class="py-name"><a title="lxml.html.HtmlElementClassLookup._default_element_classes" class="py-name" href="#" onclick="return doclink('link-557', '_default_element_classes', 'link-265');">_default_element_classes</a></tt><tt class="py-op">[</tt><tt class="py-string">'form'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-558" class="py-name" targets="Class lxml.html.FormElement=lxml.html.FormElement-class.html"><a title="lxml.html.FormElement" class="py-name" href="#" onclick="return doclink('link-558', 'FormElement', 'link-558');">FormElement</a></tt> </tt>
+<a name="L863"></a><tt class="py-lineno"> 863</tt> <tt class="py-line"> </tt>
+<a name="submit_form"></a><div id="submit_form-def"><a name="L864"></a><tt class="py-lineno"> 864</tt> <a class="py-toggle" href="#" id="submit_form-toggle" onclick="return toggle('submit_form');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html-module.html#submit_form">submit_form</a><tt class="py-op">(</tt><tt class="py-param">form</tt><tt class="py-op">,</tt> <tt class="py-param">extra_values</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">open_http</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="submit_form-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="submit_form-expanded"><a name="L865"></a><tt class="py-lineno"> 865</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L866"></a><tt class="py-lineno"> 866</tt> <tt class="py-line"><tt class="py-docstring"> Helper function to submit a form. Returns a file-like object, as from</tt> </tt>
+<a name="L867"></a><tt class="py-lineno"> 867</tt> <tt class="py-line"><tt class="py-docstring"> ``urllib.urlopen()``. This object also has a ``.geturl()`` function,</tt> </tt>
+<a name="L868"></a><tt class="py-lineno"> 868</tt> <tt class="py-line"><tt class="py-docstring"> which shows the URL if there were any redirects.</tt> </tt>
<a name="L869"></a><tt class="py-lineno"> 869</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L870"></a><tt class="py-lineno"> 870</tt> <tt class="py-line"><tt class="py-docstring"> To change the HTTP requester, pass a function as ``open_http`` keyword</tt> </tt>
-<a name="L871"></a><tt class="py-lineno"> 871</tt> <tt class="py-line"><tt class="py-docstring"> argument that opens the URL for you. The function must have the following</tt> </tt>
-<a name="L872"></a><tt class="py-lineno"> 872</tt> <tt class="py-line"><tt class="py-docstring"> signature::</tt> </tt>
-<a name="L873"></a><tt class="py-lineno"> 873</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L874"></a><tt class="py-lineno"> 874</tt> <tt class="py-line"><tt class="py-docstring"> open_http(method, URL, values)</tt> </tt>
-<a name="L875"></a><tt class="py-lineno"> 875</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L876"></a><tt class="py-lineno"> 876</tt> <tt class="py-line"><tt class="py-docstring"> The action is one of 'GET' or 'POST', the URL is the target URL as a</tt> </tt>
-<a name="L877"></a><tt class="py-lineno"> 877</tt> <tt class="py-line"><tt class="py-docstring"> string, and the values are a sequence of ``(name, value)`` tuples with the</tt> </tt>
-<a name="L878"></a><tt class="py-lineno"> 878</tt> <tt class="py-line"><tt class="py-docstring"> form data.</tt> </tt>
-<a name="L879"></a><tt class="py-lineno"> 879</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L880"></a><tt class="py-lineno"> 880</tt> <tt class="py-line"> <tt id="link-570" class="py-name" targets="Method lxml.etree._Attrib.values()=lxml.etree._Attrib-class.html#values,Method lxml.etree._Element.values()=lxml.etree._Element-class.html#values,Method lxml.etree._IDDict.values()=lxml.etree._IDDict-class.html#values"><a title="lxml.etree._Attrib.values
+<a name="L870"></a><tt class="py-lineno"> 870</tt> <tt class="py-line"><tt class="py-docstring"> You can use this like::</tt> </tt>
+<a name="L871"></a><tt class="py-lineno"> 871</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L872"></a><tt class="py-lineno"> 872</tt> <tt class="py-line"><tt class="py-docstring"> form = doc.forms[0]</tt> </tt>
+<a name="L873"></a><tt class="py-lineno"> 873</tt> <tt class="py-line"><tt class="py-docstring"> form.inputs['foo'].value = 'bar' # etc</tt> </tt>
+<a name="L874"></a><tt class="py-lineno"> 874</tt> <tt class="py-line"><tt class="py-docstring"> response = form.submit()</tt> </tt>
+<a name="L875"></a><tt class="py-lineno"> 875</tt> <tt class="py-line"><tt class="py-docstring"> doc = parse(response)</tt> </tt>
+<a name="L876"></a><tt class="py-lineno"> 876</tt> <tt class="py-line"><tt class="py-docstring"> doc.make_links_absolute(response.geturl())</tt> </tt>
+<a name="L877"></a><tt class="py-lineno"> 877</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L878"></a><tt class="py-lineno"> 878</tt> <tt class="py-line"><tt class="py-docstring"> To change the HTTP requester, pass a function as ``open_http`` keyword</tt> </tt>
+<a name="L879"></a><tt class="py-lineno"> 879</tt> <tt class="py-line"><tt class="py-docstring"> argument that opens the URL for you. The function must have the following</tt> </tt>
+<a name="L880"></a><tt class="py-lineno"> 880</tt> <tt class="py-line"><tt class="py-docstring"> signature::</tt> </tt>
+<a name="L881"></a><tt class="py-lineno"> 881</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L882"></a><tt class="py-lineno"> 882</tt> <tt class="py-line"><tt class="py-docstring"> open_http(method, URL, values)</tt> </tt>
+<a name="L883"></a><tt class="py-lineno"> 883</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L884"></a><tt class="py-lineno"> 884</tt> <tt class="py-line"><tt class="py-docstring"> The action is one of 'GET' or 'POST', the URL is the target URL as a</tt> </tt>
+<a name="L885"></a><tt class="py-lineno"> 885</tt> <tt class="py-line"><tt class="py-docstring"> string, and the values are a sequence of ``(name, value)`` tuples with the</tt> </tt>
+<a name="L886"></a><tt class="py-lineno"> 886</tt> <tt class="py-line"><tt class="py-docstring"> form data.</tt> </tt>
+<a name="L887"></a><tt class="py-lineno"> 887</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L888"></a><tt class="py-lineno"> 888</tt> <tt class="py-line"> <tt id="link-559" class="py-name" targets="Method lxml.etree._Attrib.values()=lxml.etree._Attrib-class.html#values,Method lxml.etree._Element.values()=lxml.etree._Element-class.html#values,Method lxml.etree._IDDict.values()=lxml.etree._IDDict-class.html#values"><a title="lxml.etree._Attrib.values
lxml.etree._Element.values
-lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-570', 'values', 'link-570');">values</a></tt> <tt class="py-op">=</tt> <tt class="py-name">form</tt><tt class="py-op">.</tt><tt id="link-571" class="py-name" targets="Method lxml.html.FormElement.form_values()=lxml.html.FormElement-class.html#form_values"><a title="lxml.html.FormElement.form_values" class="py-name" href="#" onclick="return doclink('link-571', 'form_values', 'link-571');">form_values</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-keyword">if</tt> <tt class="py-name">extra_values</tt><tt class="py-op">:</tt> </tt>
-<a name="L882"></a><tt class="py-lineno"> 882</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-572" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-572', 'hasattr', 'link-310');">hasattr</a></tt><tt class="py-op">(</tt><tt class="py-name">extra_values</tt><tt class="py-op">,</tt> <tt class="py-string">'items'</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">extra_values</tt> <tt class="py-op">=</tt> <tt class="py-name">extra_values</tt><tt class="py-op">.</tt><tt id="link-573" class="py-name"><a title="lxml.etree._Attrib.items
+lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-559', 'values', 'link-559');">values</a></tt> <tt class="py-op">=</tt> <tt class="py-name">form</tt><tt class="py-op">.</tt><tt id="link-560" class="py-name" targets="Method lxml.html.FormElement.form_values()=lxml.html.FormElement-class.html#form_values"><a title="lxml.html.FormElement.form_values" class="py-name" href="#" onclick="return doclink('link-560', 'form_values', 'link-560');">form_values</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L889"></a><tt class="py-lineno"> 889</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">extra_values</tt><tt class="py-op">:</tt> </tt>
+<a name="L890"></a><tt class="py-lineno"> 890</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-561" 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-561', 'hasattr', 'link-561');">hasattr</a></tt><tt class="py-op">(</tt><tt class="py-name">extra_values</tt><tt class="py-op">,</tt> <tt class="py-string">'items'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L891"></a><tt class="py-lineno"> 891</tt> <tt class="py-line"> <tt class="py-name">extra_values</tt> <tt class="py-op">=</tt> <tt class="py-name">extra_values</tt><tt class="py-op">.</tt><tt id="link-562" 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-573', 'items', 'link-281');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L884"></a><tt class="py-lineno"> 884</tt> <tt class="py-line"> <tt id="link-574" class="py-name"><a title="lxml.etree._Attrib.values
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-562', 'items', 'link-281');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L892"></a><tt class="py-lineno"> 892</tt> <tt class="py-line"> <tt id="link-563" 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-574', 'values', 'link-570');">values</a></tt><tt class="py-op">.</tt><tt id="link-575" class="py-name"><a title="lxml.etree._Element.extend" class="py-name" href="#" onclick="return doclink('link-575', 'extend', 'link-348');">extend</a></tt><tt class="py-op">(</tt><tt class="py-name">extra_values</tt><tt class="py-op">)</tt> </tt>
-<a name="L885"></a><tt class="py-lineno"> 885</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">open_http</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L886"></a><tt class="py-lineno"> 886</tt> <tt class="py-line"> <tt class="py-name">open_http</tt> <tt class="py-op">=</tt> <tt class="py-name">open_http_urllib</tt> </tt>
-<a name="L887"></a><tt class="py-lineno"> 887</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">form</tt><tt class="py-op">.</tt><tt id="link-576" class="py-name"><a title="lxml.html.FormElement.action" class="py-name" href="#" onclick="return doclink('link-576', 'action', 'link-542');">action</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L888"></a><tt class="py-lineno"> 888</tt> <tt class="py-line"> <tt class="py-name">url</tt> <tt class="py-op">=</tt> <tt class="py-name">form</tt><tt class="py-op">.</tt><tt id="link-577" class="py-name"><a title="lxml.html.FormElement.action" class="py-name" href="#" onclick="return doclink('link-577', 'action', 'link-542');">action</a></tt> </tt>
-<a name="L889"></a><tt class="py-lineno"> 889</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L890"></a><tt class="py-lineno"> 890</tt> <tt class="py-line"> <tt class="py-name">url</tt> <tt class="py-op">=</tt> <tt class="py-name">form</tt><tt class="py-op">.</tt><tt id="link-578" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-578', 'base_url', 'link-61');">base_url</a></tt> </tt>
-<a name="L891"></a><tt class="py-lineno"> 891</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">open_http</tt><tt class="py-op">(</tt><tt class="py-name">form</tt><tt class="py-op">.</tt><tt id="link-579" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-579', 'method', 'link-562');">method</a></tt><tt class="py-op">,</tt> <tt class="py-name">url</tt><tt class="py-op">,</tt> <tt id="link-580" class="py-name"><a title="lxml.etree._Attrib.values
+lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-563', 'values', 'link-559');">values</a></tt><tt class="py-op">.</tt><tt id="link-564" class="py-name"><a title="lxml.etree._Element.extend" class="py-name" href="#" onclick="return doclink('link-564', 'extend', 'link-347');">extend</a></tt><tt class="py-op">(</tt><tt class="py-name">extra_values</tt><tt class="py-op">)</tt> </tt>
+<a name="L893"></a><tt class="py-lineno"> 893</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">open_http</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L894"></a><tt class="py-lineno"> 894</tt> <tt class="py-line"> <tt class="py-name">open_http</tt> <tt class="py-op">=</tt> <tt class="py-name">open_http_urllib</tt> </tt>
+<a name="L895"></a><tt class="py-lineno"> 895</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">form</tt><tt class="py-op">.</tt><tt id="link-565" class="py-name"><a title="lxml.html.FormElement.action" class="py-name" href="#" onclick="return doclink('link-565', 'action', 'link-531');">action</a></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">url</tt> <tt class="py-op">=</tt> <tt class="py-name">form</tt><tt class="py-op">.</tt><tt id="link-566" class="py-name"><a title="lxml.html.FormElement.action" class="py-name" href="#" onclick="return doclink('link-566', 'action', 'link-531');">action</a></tt> </tt>
+<a name="L897"></a><tt class="py-lineno"> 897</tt> <tt class="py-line"> <tt class="py-keyword">else</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">url</tt> <tt class="py-op">=</tt> <tt class="py-name">form</tt><tt class="py-op">.</tt><tt id="link-567" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-567', 'base_url', 'link-61');">base_url</a></tt> </tt>
+<a name="L899"></a><tt class="py-lineno"> 899</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">open_http</tt><tt class="py-op">(</tt><tt class="py-name">form</tt><tt class="py-op">.</tt><tt id="link-568" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-568', 'method', 'link-551');">method</a></tt><tt class="py-op">,</tt> <tt class="py-name">url</tt><tt class="py-op">,</tt> <tt id="link-569" 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-580', 'values', 'link-570');">values</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L892"></a><tt class="py-lineno"> 892</tt> <tt class="py-line"> </tt>
-<a name="open_http_urllib"></a><div id="open_http_urllib-def"><a name="L893"></a><tt class="py-lineno"> 893</tt> <a class="py-toggle" href="#" id="open_http_urllib-toggle" onclick="return toggle('open_http_urllib');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html-module.html#open_http_urllib">open_http_urllib</a><tt class="py-op">(</tt><tt class="py-param">method</tt><tt class="py-op">,</tt> <tt class="py-param">url</tt><tt class="py-op">,</tt> <tt class="py-param">values</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="open_http_urllib-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="open_http_urllib-expanded"><a name="L894"></a><tt class="py-lineno"> 894</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">url</tt><tt class="py-op">:</tt> </tt>
-<a name="L895"></a><tt class="py-lineno"> 895</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">"cannot submit, no URL provided"</tt><tt class="py-op">)</tt> </tt>
-<a name="L896"></a><tt class="py-lineno"> 896</tt> <tt class="py-line"> <tt class="py-comment">## FIXME: should test that it's not a relative URL or something</tt> </tt>
-<a name="L897"></a><tt class="py-lineno"> 897</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L898"></a><tt class="py-lineno"> 898</tt> <tt class="py-line"> <tt class="py-keyword">from</tt> <tt class="py-name">urllib</tt> <tt class="py-keyword">import</tt> <tt class="py-name">urlencode</tt><tt class="py-op">,</tt> <tt class="py-name">urlopen</tt> </tt>
-<a name="L899"></a><tt class="py-lineno"> 899</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">ImportError</tt><tt class="py-op">:</tt> <tt class="py-comment"># Python 3</tt> </tt>
-<a name="L900"></a><tt class="py-lineno"> 900</tt> <tt class="py-line"> <tt class="py-keyword">from</tt> <tt class="py-name">urllib</tt><tt class="py-op">.</tt><tt class="py-name">request</tt> <tt class="py-keyword">import</tt> <tt class="py-name">urlopen</tt> </tt>
-<a name="L901"></a><tt class="py-lineno"> 901</tt> <tt class="py-line"> <tt class="py-keyword">from</tt> <tt class="py-name">urllib</tt><tt class="py-op">.</tt><tt id="link-581" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-569', 'values', 'link-559');">values</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L900"></a><tt class="py-lineno"> 900</tt> <tt class="py-line"> </tt>
+<a name="open_http_urllib"></a><div id="open_http_urllib-def"><a name="L901"></a><tt class="py-lineno"> 901</tt> <a class="py-toggle" href="#" id="open_http_urllib-toggle" onclick="return toggle('open_http_urllib');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html-module.html#open_http_urllib">open_http_urllib</a><tt class="py-op">(</tt><tt class="py-param">method</tt><tt class="py-op">,</tt> <tt class="py-param">url</tt><tt class="py-op">,</tt> <tt class="py-param">values</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="open_http_urllib-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="open_http_urllib-expanded"><a name="L902"></a><tt class="py-lineno"> 902</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">url</tt><tt class="py-op">:</tt> </tt>
+<a name="L903"></a><tt class="py-lineno"> 903</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">"cannot submit, no URL provided"</tt><tt class="py-op">)</tt> </tt>
+<a name="L904"></a><tt class="py-lineno"> 904</tt> <tt class="py-line"> <tt class="py-comment">## FIXME: should test that it's not a relative URL or something</tt> </tt>
+<a name="L905"></a><tt class="py-lineno"> 905</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L906"></a><tt class="py-lineno"> 906</tt> <tt class="py-line"> <tt class="py-keyword">from</tt> <tt class="py-name">urllib</tt> <tt class="py-keyword">import</tt> <tt class="py-name">urlencode</tt><tt class="py-op">,</tt> <tt class="py-name">urlopen</tt> </tt>
+<a name="L907"></a><tt class="py-lineno"> 907</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">ImportError</tt><tt class="py-op">:</tt> <tt class="py-comment"># Python 3</tt> </tt>
+<a name="L908"></a><tt class="py-lineno"> 908</tt> <tt class="py-line"> <tt class="py-keyword">from</tt> <tt class="py-name">urllib</tt><tt class="py-op">.</tt><tt class="py-name">request</tt> <tt class="py-keyword">import</tt> <tt class="py-name">urlopen</tt> </tt>
+<a name="L909"></a><tt class="py-lineno"> 909</tt> <tt class="py-line"> <tt class="py-keyword">from</tt> <tt class="py-name">urllib</tt><tt class="py-op">.</tt><tt id="link-570" 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-581', 'parse', 'link-0');">parse</a></tt> <tt class="py-keyword">import</tt> <tt class="py-name">urlencode</tt> </tt>
-<a name="L902"></a><tt class="py-lineno"> 902</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-582" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-582', 'method', 'link-562');">method</a></tt> <tt class="py-op">==</tt> <tt class="py-string">'GET'</tt><tt class="py-op">:</tt> </tt>
-<a name="L903"></a><tt class="py-lineno"> 903</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'?'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">url</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">url</tt> <tt class="py-op">+=</tt> <tt class="py-string">'&'</tt> </tt>
-<a name="L905"></a><tt class="py-lineno"> 905</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L906"></a><tt class="py-lineno"> 906</tt> <tt class="py-line"> <tt class="py-name">url</tt> <tt class="py-op">+=</tt> <tt class="py-string">'?'</tt> </tt>
-<a name="L907"></a><tt class="py-lineno"> 907</tt> <tt class="py-line"> <tt class="py-name">url</tt> <tt class="py-op">+=</tt> <tt class="py-name">urlencode</tt><tt class="py-op">(</tt><tt id="link-583" class="py-name"><a title="lxml.etree._Attrib.values
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-570', 'parse', 'link-0');">parse</a></tt> <tt class="py-keyword">import</tt> <tt class="py-name">urlencode</tt> </tt>
+<a name="L910"></a><tt class="py-lineno"> 910</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-571" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-571', 'method', 'link-551');">method</a></tt> <tt class="py-op">==</tt> <tt class="py-string">'GET'</tt><tt class="py-op">:</tt> </tt>
+<a name="L911"></a><tt class="py-lineno"> 911</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'?'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">url</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">url</tt> <tt class="py-op">+=</tt> <tt class="py-string">'&'</tt> </tt>
+<a name="L913"></a><tt class="py-lineno"> 913</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L914"></a><tt class="py-lineno"> 914</tt> <tt class="py-line"> <tt class="py-name">url</tt> <tt class="py-op">+=</tt> <tt class="py-string">'?'</tt> </tt>
+<a name="L915"></a><tt class="py-lineno"> 915</tt> <tt class="py-line"> <tt class="py-name">url</tt> <tt class="py-op">+=</tt> <tt class="py-name">urlencode</tt><tt class="py-op">(</tt><tt id="link-572" 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-583', 'values', 'link-570');">values</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L908"></a><tt class="py-lineno"> 908</tt> <tt class="py-line"> <tt id="link-584" 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-584', 'data', 'link-584');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L909"></a><tt class="py-lineno"> 909</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L910"></a><tt class="py-lineno"> 910</tt> <tt class="py-line"> <tt id="link-585" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-585', 'data', 'link-584');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">urlencode</tt><tt class="py-op">(</tt><tt id="link-586" class="py-name"><a title="lxml.etree._Attrib.values
+lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-572', 'values', 'link-559');">values</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L916"></a><tt class="py-lineno"> 916</tt> <tt class="py-line"> <tt id="link-573" 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-573', 'data', 'link-573');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L917"></a><tt class="py-lineno"> 917</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L918"></a><tt class="py-lineno"> 918</tt> <tt class="py-line"> <tt id="link-574" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-574', 'data', 'link-573');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">urlencode</tt><tt class="py-op">(</tt><tt id="link-575" 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-586', 'values', 'link-570');">values</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L911"></a><tt class="py-lineno"> 911</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">urlopen</tt><tt class="py-op">(</tt><tt class="py-name">url</tt><tt class="py-op">,</tt> <tt id="link-587" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-587', 'data', 'link-584');">data</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L912"></a><tt class="py-lineno"> 912</tt> <tt class="py-line"> </tt>
-<a name="FieldsDict"></a><div id="FieldsDict-def"><a name="L913"></a><tt class="py-lineno"> 913</tt> <a class="py-toggle" href="#" id="FieldsDict-toggle" onclick="return toggle('FieldsDict');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.html.FieldsDict-class.html">FieldsDict</a><tt class="py-op">(</tt><tt class="py-base-class">DictMixin</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="FieldsDict-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="FieldsDict-expanded"><a name="L914"></a><tt class="py-lineno"> 914</tt> <tt class="py-line"> </tt>
-<a name="FieldsDict.__init__"></a><div id="FieldsDict.__init__-def"><a name="L915"></a><tt class="py-lineno"> 915</tt> <a class="py-toggle" href="#" id="FieldsDict.__init__-toggle" onclick="return toggle('FieldsDict.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.FieldsDict-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">inputs</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="FieldsDict.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="FieldsDict.__init__-expanded"><a name="L916"></a><tt class="py-lineno"> 916</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-588" class="py-name"><a title="lxml.html.FormElement.inputs" class="py-name" href="#" onclick="return doclink('link-588', 'inputs', 'link-472');">inputs</a></tt> <tt class="py-op">=</tt> <tt id="link-589" class="py-name"><a title="lxml.html.FormElement.inputs" class="py-name" href="#" onclick="return doclink('link-589', 'inputs', 'link-472');">inputs</a></tt> </tt>
-</div><a name="FieldsDict.__getitem__"></a><div id="FieldsDict.__getitem__-def"><a name="L917"></a><tt class="py-lineno"> 917</tt> <a class="py-toggle" href="#" id="FieldsDict.__getitem__-toggle" onclick="return toggle('FieldsDict.__getitem__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.FieldsDict-class.html#__getitem__">__getitem__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">item</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="FieldsDict.__getitem__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="FieldsDict.__getitem__-expanded"><a name="L918"></a><tt class="py-lineno"> 918</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-590" class="py-name"><a title="lxml.html.FormElement.inputs" class="py-name" href="#" onclick="return doclink('link-590', 'inputs', 'link-472');">inputs</a></tt><tt class="py-op">[</tt><tt class="py-name">item</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-591" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-575', 'values', 'link-559');">values</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L919"></a><tt class="py-lineno"> 919</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">urlopen</tt><tt class="py-op">(</tt><tt class="py-name">url</tt><tt class="py-op">,</tt> <tt id="link-576" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-576', 'data', 'link-573');">data</a></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="FieldsDict"></a><div id="FieldsDict-def"><a name="L921"></a><tt class="py-lineno"> 921</tt> <a class="py-toggle" href="#" id="FieldsDict-toggle" onclick="return toggle('FieldsDict');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.html.FieldsDict-class.html">FieldsDict</a><tt class="py-op">(</tt><tt class="py-base-class">DictMixin</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FieldsDict-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="FieldsDict-expanded"><a name="L922"></a><tt class="py-lineno"> 922</tt> <tt class="py-line"> </tt>
+<a name="FieldsDict.__init__"></a><div id="FieldsDict.__init__-def"><a name="L923"></a><tt class="py-lineno"> 923</tt> <a class="py-toggle" href="#" id="FieldsDict.__init__-toggle" onclick="return toggle('FieldsDict.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.FieldsDict-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">inputs</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FieldsDict.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="FieldsDict.__init__-expanded"><a name="L924"></a><tt class="py-lineno"> 924</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-577" class="py-name"><a title="lxml.html.FormElement.inputs" class="py-name" href="#" onclick="return doclink('link-577', 'inputs', 'link-461');">inputs</a></tt> <tt class="py-op">=</tt> <tt id="link-578" class="py-name"><a title="lxml.html.FormElement.inputs" class="py-name" href="#" onclick="return doclink('link-578', 'inputs', 'link-461');">inputs</a></tt> </tt>
+</div><a name="FieldsDict.__getitem__"></a><div id="FieldsDict.__getitem__-def"><a name="L925"></a><tt class="py-lineno"> 925</tt> <a class="py-toggle" href="#" id="FieldsDict.__getitem__-toggle" onclick="return toggle('FieldsDict.__getitem__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.FieldsDict-class.html#__getitem__">__getitem__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">item</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FieldsDict.__getitem__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="FieldsDict.__getitem__-expanded"><a name="L926"></a><tt class="py-lineno"> 926</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-579" class="py-name"><a title="lxml.html.FormElement.inputs" class="py-name" href="#" onclick="return doclink('link-579', 'inputs', 'link-461');">inputs</a></tt><tt class="py-op">[</tt><tt class="py-name">item</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-580" 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-591', 'value', 'link-176');">value</a></tt> </tt>
-</div><a name="FieldsDict.__setitem__"></a><div id="FieldsDict.__setitem__-def"><a name="L919"></a><tt class="py-lineno"> 919</tt> <a class="py-toggle" href="#" id="FieldsDict.__setitem__-toggle" onclick="return toggle('FieldsDict.__setitem__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.FieldsDict-class.html#__setitem__">__setitem__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">item</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="FieldsDict.__setitem__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="FieldsDict.__setitem__-expanded"><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 id="link-592" class="py-name"><a title="lxml.html.FormElement.inputs" class="py-name" href="#" onclick="return doclink('link-592', 'inputs', 'link-472');">inputs</a></tt><tt class="py-op">[</tt><tt class="py-name">item</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-593" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-580', 'value', 'link-176');">value</a></tt> </tt>
+</div><a name="FieldsDict.__setitem__"></a><div id="FieldsDict.__setitem__-def"><a name="L927"></a><tt class="py-lineno"> 927</tt> <a class="py-toggle" href="#" id="FieldsDict.__setitem__-toggle" onclick="return toggle('FieldsDict.__setitem__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.FieldsDict-class.html#__setitem__">__setitem__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">item</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FieldsDict.__setitem__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="FieldsDict.__setitem__-expanded"><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 id="link-581" class="py-name"><a title="lxml.html.FormElement.inputs" class="py-name" href="#" onclick="return doclink('link-581', 'inputs', 'link-461');">inputs</a></tt><tt class="py-op">[</tt><tt class="py-name">item</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-582" 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-593', 'value', 'link-176');">value</a></tt> <tt class="py-op">=</tt> <tt id="link-594" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-582', 'value', 'link-176');">value</a></tt> <tt class="py-op">=</tt> <tt id="link-583" 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-594', 'value', 'link-176');">value</a></tt> </tt>
-</div><a name="FieldsDict.__delitem__"></a><div id="FieldsDict.__delitem__-def"><a name="L921"></a><tt class="py-lineno"> 921</tt> <a class="py-toggle" href="#" id="FieldsDict.__delitem__-toggle" onclick="return toggle('FieldsDict.__delitem__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.FieldsDict-class.html#__delitem__">__delitem__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">item</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="FieldsDict.__delitem__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="FieldsDict.__delitem__-expanded"><a name="L922"></a><tt class="py-lineno"> 922</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">KeyError</tt><tt class="py-op">(</tt> </tt>
-<a name="L923"></a><tt class="py-lineno"> 923</tt> <tt class="py-line"> <tt class="py-string">"You cannot remove keys from ElementDict"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="FieldsDict.keys"></a><div id="FieldsDict.keys-def"><a name="L924"></a><tt class="py-lineno"> 924</tt> <a class="py-toggle" href="#" id="FieldsDict.keys-toggle" onclick="return toggle('FieldsDict.keys');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.FieldsDict-class.html#keys">keys</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="FieldsDict.keys-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="FieldsDict.keys-expanded"><a name="L925"></a><tt class="py-lineno"> 925</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-595" class="py-name"><a title="lxml.html.FormElement.inputs" class="py-name" href="#" onclick="return doclink('link-595', 'inputs', 'link-472');">inputs</a></tt><tt class="py-op">.</tt><tt id="link-596" class="py-name"><a title="lxml.etree._Attrib.keys
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-583', 'value', 'link-176');">value</a></tt> </tt>
+</div><a name="FieldsDict.__delitem__"></a><div id="FieldsDict.__delitem__-def"><a name="L929"></a><tt class="py-lineno"> 929</tt> <a class="py-toggle" href="#" id="FieldsDict.__delitem__-toggle" onclick="return toggle('FieldsDict.__delitem__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.FieldsDict-class.html#__delitem__">__delitem__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">item</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FieldsDict.__delitem__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="FieldsDict.__delitem__-expanded"><a name="L930"></a><tt class="py-lineno"> 930</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">KeyError</tt><tt class="py-op">(</tt> </tt>
+<a name="L931"></a><tt class="py-lineno"> 931</tt> <tt class="py-line"> <tt class="py-string">"You cannot remove keys from ElementDict"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="FieldsDict.keys"></a><div id="FieldsDict.keys-def"><a name="L932"></a><tt class="py-lineno"> 932</tt> <a class="py-toggle" href="#" id="FieldsDict.keys-toggle" onclick="return toggle('FieldsDict.keys');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.FieldsDict-class.html#keys">keys</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FieldsDict.keys-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="FieldsDict.keys-expanded"><a name="L933"></a><tt class="py-lineno"> 933</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-584" class="py-name"><a title="lxml.html.FormElement.inputs" class="py-name" href="#" onclick="return doclink('link-584', 'inputs', 'link-461');">inputs</a></tt><tt class="py-op">.</tt><tt id="link-585" 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-596', 'keys', 'link-274');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="FieldsDict.__contains__"></a><div id="FieldsDict.__contains__-def"><a name="L926"></a><tt class="py-lineno"> 926</tt> <a class="py-toggle" href="#" id="FieldsDict.__contains__-toggle" onclick="return toggle('FieldsDict.__contains__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.FieldsDict-class.html#__contains__">__contains__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">item</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="FieldsDict.__contains__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="FieldsDict.__contains__-expanded"><a name="L927"></a><tt class="py-lineno"> 927</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">item</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-597" class="py-name"><a title="lxml.html.FormElement.inputs" class="py-name" href="#" onclick="return doclink('link-597', 'inputs', 'link-472');">inputs</a></tt> </tt>
-</div><a name="FieldsDict.__iter__"></a><div id="FieldsDict.__iter__-def"><a name="L928"></a><tt class="py-lineno"> 928</tt> <a class="py-toggle" href="#" id="FieldsDict.__iter__-toggle" onclick="return toggle('FieldsDict.__iter__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.FieldsDict-class.html#__iter__">__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="FieldsDict.__iter__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="FieldsDict.__iter__-expanded"><a name="L929"></a><tt class="py-lineno"> 929</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-598" class="py-name"><a title="lxml.etree._Element.iter
-lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-598', 'iter', 'link-162');">iter</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-599" class="py-name"><a title="lxml.html.FormElement.inputs" class="py-name" href="#" onclick="return doclink('link-599', 'inputs', 'link-472');">inputs</a></tt><tt class="py-op">.</tt><tt id="link-600" class="py-name"><a title="lxml.etree._Attrib.keys
+lxml.html.InputGetter.keys" class="py-name" href="#" onclick="return doclink('link-585', 'keys', 'link-274');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="FieldsDict.__contains__"></a><div id="FieldsDict.__contains__-def"><a name="L934"></a><tt class="py-lineno"> 934</tt> <a class="py-toggle" href="#" id="FieldsDict.__contains__-toggle" onclick="return toggle('FieldsDict.__contains__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.FieldsDict-class.html#__contains__">__contains__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">item</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FieldsDict.__contains__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="FieldsDict.__contains__-expanded"><a name="L935"></a><tt class="py-lineno"> 935</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">item</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-586" class="py-name"><a title="lxml.html.FormElement.inputs" class="py-name" href="#" onclick="return doclink('link-586', 'inputs', 'link-461');">inputs</a></tt> </tt>
+</div><a name="FieldsDict.__iter__"></a><div id="FieldsDict.__iter__-def"><a name="L936"></a><tt class="py-lineno"> 936</tt> <a class="py-toggle" href="#" id="FieldsDict.__iter__-toggle" onclick="return toggle('FieldsDict.__iter__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.FieldsDict-class.html#__iter__">__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="FieldsDict.__iter__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="FieldsDict.__iter__-expanded"><a name="L937"></a><tt class="py-lineno"> 937</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-587" class="py-name"><a title="lxml.etree._Element.iter
+lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-587', 'iter', 'link-162');">iter</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-588" class="py-name"><a title="lxml.html.FormElement.inputs" class="py-name" href="#" onclick="return doclink('link-588', 'inputs', 'link-461');">inputs</a></tt><tt class="py-op">.</tt><tt id="link-589" 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-600', 'keys', 'link-274');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="FieldsDict.__len__"></a><div id="FieldsDict.__len__-def"><a name="L930"></a><tt class="py-lineno"> 930</tt> <a class="py-toggle" href="#" id="FieldsDict.__len__-toggle" onclick="return toggle('FieldsDict.__len__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.FieldsDict-class.html#__len__">__len__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="FieldsDict.__len__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="FieldsDict.__len__-expanded"><a name="L931"></a><tt class="py-lineno"> 931</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-601" class="py-name"><a title="lxml.html.FormElement.inputs" class="py-name" href="#" onclick="return doclink('link-601', 'inputs', 'link-472');">inputs</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L932"></a><tt class="py-lineno"> 932</tt> <tt class="py-line"> </tt>
-<a name="FieldsDict.__repr__"></a><div id="FieldsDict.__repr__-def"><a name="L933"></a><tt class="py-lineno"> 933</tt> <a class="py-toggle" href="#" id="FieldsDict.__repr__-toggle" onclick="return toggle('FieldsDict.__repr__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.FieldsDict-class.html#__repr__">__repr__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="FieldsDict.__repr__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="FieldsDict.__repr__-expanded"><a name="L934"></a><tt class="py-lineno"> 934</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">'<%s for form %s>'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt> </tt>
-<a name="L935"></a><tt class="py-lineno"> 935</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__class__</tt><tt class="py-op">.</tt><tt class="py-name">__name__</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 id="link-602" class="py-name"><a title="lxml.html.FormElement.inputs" class="py-name" href="#" onclick="return doclink('link-602', 'inputs', 'link-472');">inputs</a></tt><tt class="py-op">.</tt><tt class="py-name">form</tt><tt class="py-op">.</tt><tt id="link-603" class="py-name" targets="Method lxml.html.FormElement._name()=lxml.html.FormElement-class.html#_name"><a title="lxml.html.FormElement._name" class="py-name" href="#" onclick="return doclink('link-603', '_name', 'link-603');">_name</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L937"></a><tt class="py-lineno"> 937</tt> <tt class="py-line"> </tt>
-<a name="InputGetter"></a><div id="InputGetter-def"><a name="L938"></a><tt class="py-lineno"> 938</tt> <a class="py-toggle" href="#" id="InputGetter-toggle" onclick="return toggle('InputGetter');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.html.InputGetter-class.html">InputGetter</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="InputGetter-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="InputGetter-expanded"><a name="L939"></a><tt class="py-lineno"> 939</tt> <tt class="py-line"> </tt>
-<a name="L940"></a><tt class="py-lineno"> 940</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L941"></a><tt class="py-lineno"> 941</tt> <tt class="py-line"><tt class="py-docstring"> An accessor that represents all the input fields in a form.</tt> </tt>
-<a name="L942"></a><tt class="py-lineno"> 942</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L943"></a><tt class="py-lineno"> 943</tt> <tt class="py-line"><tt class="py-docstring"> You can get fields by name from this, with</tt> </tt>
-<a name="L944"></a><tt class="py-lineno"> 944</tt> <tt class="py-line"><tt class="py-docstring"> ``form.inputs['field_name']``. If there are a set of checkboxes</tt> </tt>
-<a name="L945"></a><tt class="py-lineno"> 945</tt> <tt class="py-line"><tt class="py-docstring"> with the same name, they are returned as a list (a `CheckboxGroup`</tt> </tt>
-<a name="L946"></a><tt class="py-lineno"> 946</tt> <tt class="py-line"><tt class="py-docstring"> which also allows value setting). Radio inputs are handled</tt> </tt>
-<a name="L947"></a><tt class="py-lineno"> 947</tt> <tt class="py-line"><tt class="py-docstring"> similarly.</tt> </tt>
-<a name="L948"></a><tt class="py-lineno"> 948</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L949"></a><tt class="py-lineno"> 949</tt> <tt class="py-line"><tt class="py-docstring"> You can also iterate over this to get all input elements. This</tt> </tt>
-<a name="L950"></a><tt class="py-lineno"> 950</tt> <tt class="py-line"><tt class="py-docstring"> won't return the same thing as if you get all the names, as</tt> </tt>
-<a name="L951"></a><tt class="py-lineno"> 951</tt> <tt class="py-line"><tt class="py-docstring"> checkboxes and radio elements are returned individually.</tt> </tt>
-<a name="L952"></a><tt class="py-lineno"> 952</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L953"></a><tt class="py-lineno"> 953</tt> <tt class="py-line"> </tt>
-<a name="L954"></a><tt class="py-lineno"> 954</tt> <tt class="py-line"> <tt id="link-604" class="py-name" targets="Variable lxml.html.InputGetter._name_xpath=lxml.html.InputGetter-class.html#_name_xpath,Variable lxml.html.formfill._name_xpath=lxml.html.formfill-module.html#_name_xpath"><a title="lxml.html.InputGetter._name_xpath
-lxml.html.formfill._name_xpath" class="py-name" href="#" onclick="return doclink('link-604', '_name_xpath', 'link-604');">_name_xpath</a></tt> <tt class="py-op">=</tt> <tt id="link-605" class="py-name"><a title="lxml.etree
+lxml.html.InputGetter.keys" class="py-name" href="#" onclick="return doclink('link-589', 'keys', 'link-274');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="FieldsDict.__len__"></a><div id="FieldsDict.__len__-def"><a name="L938"></a><tt class="py-lineno"> 938</tt> <a class="py-toggle" href="#" id="FieldsDict.__len__-toggle" onclick="return toggle('FieldsDict.__len__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.FieldsDict-class.html#__len__">__len__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FieldsDict.__len__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="FieldsDict.__len__-expanded"><a name="L939"></a><tt class="py-lineno"> 939</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-590" class="py-name"><a title="lxml.html.FormElement.inputs" class="py-name" href="#" onclick="return doclink('link-590', 'inputs', 'link-461');">inputs</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L940"></a><tt class="py-lineno"> 940</tt> <tt class="py-line"> </tt>
+<a name="FieldsDict.__repr__"></a><div id="FieldsDict.__repr__-def"><a name="L941"></a><tt class="py-lineno"> 941</tt> <a class="py-toggle" href="#" id="FieldsDict.__repr__-toggle" onclick="return toggle('FieldsDict.__repr__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.FieldsDict-class.html#__repr__">__repr__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FieldsDict.__repr__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="FieldsDict.__repr__-expanded"><a name="L942"></a><tt class="py-lineno"> 942</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">'<%s for form %s>'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt> </tt>
+<a name="L943"></a><tt class="py-lineno"> 943</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__class__</tt><tt class="py-op">.</tt><tt class="py-name">__name__</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">self</tt><tt class="py-op">.</tt><tt id="link-591" class="py-name"><a title="lxml.html.FormElement.inputs" class="py-name" href="#" onclick="return doclink('link-591', 'inputs', 'link-461');">inputs</a></tt><tt class="py-op">.</tt><tt class="py-name">form</tt><tt class="py-op">.</tt><tt id="link-592" class="py-name" targets="Method lxml.html.FormElement._name()=lxml.html.FormElement-class.html#_name"><a title="lxml.html.FormElement._name" class="py-name" href="#" onclick="return doclink('link-592', '_name', 'link-592');">_name</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L945"></a><tt class="py-lineno"> 945</tt> <tt class="py-line"> </tt>
+<a name="InputGetter"></a><div id="InputGetter-def"><a name="L946"></a><tt class="py-lineno"> 946</tt> <a class="py-toggle" href="#" id="InputGetter-toggle" onclick="return toggle('InputGetter');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.html.InputGetter-class.html">InputGetter</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="InputGetter-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="InputGetter-expanded"><a name="L947"></a><tt class="py-lineno"> 947</tt> <tt class="py-line"> </tt>
+<a name="L948"></a><tt class="py-lineno"> 948</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L949"></a><tt class="py-lineno"> 949</tt> <tt class="py-line"><tt class="py-docstring"> An accessor that represents all the input fields in a form.</tt> </tt>
+<a name="L950"></a><tt class="py-lineno"> 950</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L951"></a><tt class="py-lineno"> 951</tt> <tt class="py-line"><tt class="py-docstring"> You can get fields by name from this, with</tt> </tt>
+<a name="L952"></a><tt class="py-lineno"> 952</tt> <tt class="py-line"><tt class="py-docstring"> ``form.inputs['field_name']``. If there are a set of checkboxes</tt> </tt>
+<a name="L953"></a><tt class="py-lineno"> 953</tt> <tt class="py-line"><tt class="py-docstring"> with the same name, they are returned as a list (a `CheckboxGroup`</tt> </tt>
+<a name="L954"></a><tt class="py-lineno"> 954</tt> <tt class="py-line"><tt class="py-docstring"> which also allows value setting). Radio inputs are handled</tt> </tt>
+<a name="L955"></a><tt class="py-lineno"> 955</tt> <tt class="py-line"><tt class="py-docstring"> similarly.</tt> </tt>
+<a name="L956"></a><tt class="py-lineno"> 956</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L957"></a><tt class="py-lineno"> 957</tt> <tt class="py-line"><tt class="py-docstring"> You can also iterate over this to get all input elements. This</tt> </tt>
+<a name="L958"></a><tt class="py-lineno"> 958</tt> <tt class="py-line"><tt class="py-docstring"> won't return the same thing as if you get all the names, as</tt> </tt>
+<a name="L959"></a><tt class="py-lineno"> 959</tt> <tt class="py-line"><tt class="py-docstring"> checkboxes and radio elements are returned individually.</tt> </tt>
+<a name="L960"></a><tt class="py-lineno"> 960</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L961"></a><tt class="py-lineno"> 961</tt> <tt class="py-line"> </tt>
+<a name="L962"></a><tt class="py-lineno"> 962</tt> <tt class="py-line"> <tt id="link-593" class="py-name" targets="Variable lxml.html.InputGetter._name_xpath=lxml.html.InputGetter-class.html#_name_xpath,Variable lxml.html.formfill._name_xpath=lxml.html.formfill-module.html#_name_xpath"><a title="lxml.html.InputGetter._name_xpath
+lxml.html.formfill._name_xpath" class="py-name" href="#" onclick="return doclink('link-593', '_name_xpath', 'link-593');">_name_xpath</a></tt> <tt class="py-op">=</tt> <tt id="link-594" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-605', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-606" class="py-name"><a title="lxml.etree.XPath" class="py-name" href="#" onclick="return doclink('link-606', 'XPath', 'link-19');">XPath</a></tt><tt class="py-op">(</tt><tt class="py-string">".//*[@name = $name and (local-name(.) = 'select' or local-name(.) = 'input' or local-name(.) = 'textarea')]"</tt><tt class="py-op">)</tt> </tt>
-<a name="L955"></a><tt class="py-lineno"> 955</tt> <tt class="py-line"> <tt id="link-607" class="py-name" targets="Variable lxml.html.InputGetter._all_xpath=lxml.html.InputGetter-class.html#_all_xpath"><a title="lxml.html.InputGetter._all_xpath" class="py-name" href="#" onclick="return doclink('link-607', '_all_xpath', 'link-607');">_all_xpath</a></tt> <tt class="py-op">=</tt> <tt id="link-608" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-594', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-595" class="py-name"><a title="lxml.etree.XPath" class="py-name" href="#" onclick="return doclink('link-595', 'XPath', 'link-19');">XPath</a></tt><tt class="py-op">(</tt><tt class="py-string">".//*[@name = $name and (local-name(.) = 'select' or local-name(.) = 'input' or local-name(.) = 'textarea')]"</tt><tt class="py-op">)</tt> </tt>
+<a name="L963"></a><tt class="py-lineno"> 963</tt> <tt class="py-line"> <tt id="link-596" class="py-name" targets="Variable lxml.html.InputGetter._all_xpath=lxml.html.InputGetter-class.html#_all_xpath"><a title="lxml.html.InputGetter._all_xpath" class="py-name" href="#" onclick="return doclink('link-596', '_all_xpath', 'link-596');">_all_xpath</a></tt> <tt class="py-op">=</tt> <tt id="link-597" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-608', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-609" class="py-name"><a title="lxml.etree.XPath" class="py-name" href="#" onclick="return doclink('link-609', 'XPath', 'link-19');">XPath</a></tt><tt class="py-op">(</tt><tt class="py-string">".//*[local-name() = 'select' or local-name() = 'input' or local-name() = 'textarea']"</tt><tt class="py-op">)</tt> </tt>
-<a name="L956"></a><tt class="py-lineno"> 956</tt> <tt class="py-line"> </tt>
-<a name="InputGetter.__init__"></a><div id="InputGetter.__init__-def"><a name="L957"></a><tt class="py-lineno"> 957</tt> <a class="py-toggle" href="#" id="InputGetter.__init__-toggle" onclick="return toggle('InputGetter.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.InputGetter-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">form</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="InputGetter.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="InputGetter.__init__-expanded"><a name="L958"></a><tt class="py-lineno"> 958</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">form</tt> <tt class="py-op">=</tt> <tt class="py-name">form</tt> </tt>
-</div><a name="L959"></a><tt class="py-lineno"> 959</tt> <tt class="py-line"> </tt>
-<a name="InputGetter.__repr__"></a><div id="InputGetter.__repr__-def"><a name="L960"></a><tt class="py-lineno"> 960</tt> <a class="py-toggle" href="#" id="InputGetter.__repr__-toggle" onclick="return toggle('InputGetter.__repr__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.InputGetter-class.html#__repr__">__repr__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="InputGetter.__repr__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="InputGetter.__repr__-expanded"><a name="L961"></a><tt class="py-lineno"> 961</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">'<%s for form %s>'</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 class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__class__</tt><tt class="py-op">.</tt><tt class="py-name">__name__</tt><tt class="py-op">,</tt> </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">form</tt><tt class="py-op">.</tt><tt id="link-610" class="py-name"><a title="lxml.html.FormElement._name" class="py-name" href="#" onclick="return doclink('link-610', '_name', 'link-603');">_name</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><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-comment">## FIXME: there should be more methods, and it's unclear if this is</tt> </tt>
-<a name="L966"></a><tt class="py-lineno"> 966</tt> <tt class="py-line"> <tt class="py-comment">## a dictionary-like object or list-like object</tt> </tt>
-<a name="L967"></a><tt class="py-lineno"> 967</tt> <tt class="py-line"> </tt>
-<a name="InputGetter.__getitem__"></a><div id="InputGetter.__getitem__-def"><a name="L968"></a><tt class="py-lineno"> 968</tt> <a class="py-toggle" href="#" id="InputGetter.__getitem__-toggle" onclick="return toggle('InputGetter.__getitem__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.InputGetter-class.html#__getitem__">__getitem__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="InputGetter.__getitem__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="InputGetter.__getitem__-expanded"><a name="L969"></a><tt class="py-lineno"> 969</tt> <tt class="py-line"> <tt class="py-name">results</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-611" class="py-name"><a title="lxml.html.InputGetter._name_xpath
-lxml.html.formfill._name_xpath" class="py-name" href="#" onclick="return doclink('link-611', '_name_xpath', 'link-604');">_name_xpath</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">form</tt><tt class="py-op">,</tt> <tt id="link-612" class="py-name"><a title="lxml.etree.DTD.name
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-597', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-598" class="py-name"><a title="lxml.etree.XPath" class="py-name" href="#" onclick="return doclink('link-598', 'XPath', 'link-19');">XPath</a></tt><tt class="py-op">(</tt><tt class="py-string">".//*[local-name() = 'select' or local-name() = 'input' or local-name() = 'textarea']"</tt><tt class="py-op">)</tt> </tt>
+<a name="L964"></a><tt class="py-lineno"> 964</tt> <tt class="py-line"> </tt>
+<a name="InputGetter.__init__"></a><div id="InputGetter.__init__-def"><a name="L965"></a><tt class="py-lineno"> 965</tt> <a class="py-toggle" href="#" id="InputGetter.__init__-toggle" onclick="return toggle('InputGetter.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.InputGetter-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">form</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="InputGetter.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="InputGetter.__init__-expanded"><a name="L966"></a><tt class="py-lineno"> 966</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">form</tt> <tt class="py-op">=</tt> <tt class="py-name">form</tt> </tt>
+</div><a name="L967"></a><tt class="py-lineno"> 967</tt> <tt class="py-line"> </tt>
+<a name="InputGetter.__repr__"></a><div id="InputGetter.__repr__-def"><a name="L968"></a><tt class="py-lineno"> 968</tt> <a class="py-toggle" href="#" id="InputGetter.__repr__-toggle" onclick="return toggle('InputGetter.__repr__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.InputGetter-class.html#__repr__">__repr__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="InputGetter.__repr__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="InputGetter.__repr__-expanded"><a name="L969"></a><tt class="py-lineno"> 969</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">'<%s for form %s>'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt> </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">__class__</tt><tt class="py-op">.</tt><tt class="py-name">__name__</tt><tt class="py-op">,</tt> </tt>
+<a name="L971"></a><tt class="py-lineno"> 971</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">form</tt><tt class="py-op">.</tt><tt id="link-599" class="py-name"><a title="lxml.html.FormElement._name" class="py-name" href="#" onclick="return doclink('link-599', '_name', 'link-592');">_name</a></tt><tt class="py-op">(</tt><tt class="py-op">)</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 class="py-comment">## FIXME: there should be more methods, and it's unclear if this is</tt> </tt>
+<a name="L974"></a><tt class="py-lineno"> 974</tt> <tt class="py-line"> <tt class="py-comment">## a dictionary-like object or list-like object</tt> </tt>
+<a name="L975"></a><tt class="py-lineno"> 975</tt> <tt class="py-line"> </tt>
+<a name="InputGetter.__getitem__"></a><div id="InputGetter.__getitem__-def"><a name="L976"></a><tt class="py-lineno"> 976</tt> <a class="py-toggle" href="#" id="InputGetter.__getitem__-toggle" onclick="return toggle('InputGetter.__getitem__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.InputGetter-class.html#__getitem__">__getitem__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="InputGetter.__getitem__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="InputGetter.__getitem__-expanded"><a name="L977"></a><tt class="py-lineno"> 977</tt> <tt class="py-line"> <tt class="py-name">results</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-600" class="py-name"><a title="lxml.html.InputGetter._name_xpath
+lxml.html.formfill._name_xpath" class="py-name" href="#" onclick="return doclink('link-600', '_name_xpath', 'link-593');">_name_xpath</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">form</tt><tt class="py-op">,</tt> <tt id="link-601" 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-612', 'name', 'link-232');">name</a></tt><tt class="py-op">=</tt><tt id="link-613" class="py-name"><a title="lxml.etree.DTD.name
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-601', 'name', 'link-232');">name</a></tt><tt class="py-op">=</tt><tt id="link-602" 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-613', 'name', 'link-232');">name</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L970"></a><tt class="py-lineno"> 970</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">results</tt><tt class="py-op">:</tt> </tt>
-<a name="L971"></a><tt class="py-lineno"> 971</tt> <tt class="py-line"> <tt id="link-614" class="py-name"><a title="lxml.etree._LogEntry.type
-lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-614', 'type', 'link-239');">type</a></tt> <tt class="py-op">=</tt> <tt class="py-name">results</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-615" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-602', 'name', 'link-232');">name</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L978"></a><tt class="py-lineno"> 978</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">results</tt><tt class="py-op">:</tt> </tt>
+<a name="L979"></a><tt class="py-lineno"> 979</tt> <tt class="py-line"> <tt id="link-603" class="py-name"><a title="lxml.etree._LogEntry.type
+lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-603', 'type', 'link-239');">type</a></tt> <tt class="py-op">=</tt> <tt class="py-name">results</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-604" 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-615', 'get', 'link-82');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'type'</tt><tt class="py-op">)</tt> </tt>
-<a name="L972"></a><tt class="py-lineno"> 972</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-616" class="py-name"><a title="lxml.etree._LogEntry.type
-lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-616', 'type', 'link-239');">type</a></tt> <tt class="py-op">==</tt> <tt class="py-string">'radio'</tt> <tt class="py-keyword">and</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">results</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="L973"></a><tt class="py-lineno"> 973</tt> <tt class="py-line"> <tt class="py-name">group</tt> <tt class="py-op">=</tt> <tt id="link-617" class="py-name" targets="Class lxml.html.RadioGroup=lxml.html.RadioGroup-class.html"><a title="lxml.html.RadioGroup" class="py-name" href="#" onclick="return doclink('link-617', 'RadioGroup', 'link-617');">RadioGroup</a></tt><tt class="py-op">(</tt><tt class="py-name">results</tt><tt class="py-op">)</tt> </tt>
-<a name="L974"></a><tt class="py-lineno"> 974</tt> <tt class="py-line"> <tt class="py-name">group</tt><tt class="py-op">.</tt><tt id="link-618" class="py-name"><a title="lxml.etree.DTD.name
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-604', 'get', 'link-82');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'type'</tt><tt class="py-op">)</tt> </tt>
+<a name="L980"></a><tt class="py-lineno"> 980</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-605" class="py-name"><a title="lxml.etree._LogEntry.type
+lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-605', 'type', 'link-239');">type</a></tt> <tt class="py-op">==</tt> <tt class="py-string">'radio'</tt> <tt class="py-keyword">and</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">results</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="L981"></a><tt class="py-lineno"> 981</tt> <tt class="py-line"> <tt class="py-name">group</tt> <tt class="py-op">=</tt> <tt id="link-606" class="py-name" targets="Class lxml.html.RadioGroup=lxml.html.RadioGroup-class.html"><a title="lxml.html.RadioGroup" class="py-name" href="#" onclick="return doclink('link-606', 'RadioGroup', 'link-606');">RadioGroup</a></tt><tt class="py-op">(</tt><tt class="py-name">results</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">group</tt><tt class="py-op">.</tt><tt id="link-607" 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-618', 'name', 'link-232');">name</a></tt> <tt class="py-op">=</tt> <tt id="link-619" class="py-name"><a title="lxml.etree.DTD.name
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-607', 'name', 'link-232');">name</a></tt> <tt class="py-op">=</tt> <tt id="link-608" 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-619', 'name', 'link-232');">name</a></tt> </tt>
-<a name="L975"></a><tt class="py-lineno"> 975</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">group</tt> </tt>
-<a name="L976"></a><tt class="py-lineno"> 976</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt id="link-620" class="py-name"><a title="lxml.etree._LogEntry.type
-lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-620', 'type', 'link-239');">type</a></tt> <tt class="py-op">==</tt> <tt class="py-string">'checkbox'</tt> <tt class="py-keyword">and</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">results</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="L977"></a><tt class="py-lineno"> 977</tt> <tt class="py-line"> <tt class="py-name">group</tt> <tt class="py-op">=</tt> <tt id="link-621" class="py-name" targets="Class lxml.html.CheckboxGroup=lxml.html.CheckboxGroup-class.html"><a title="lxml.html.CheckboxGroup" class="py-name" href="#" onclick="return doclink('link-621', 'CheckboxGroup', 'link-621');">CheckboxGroup</a></tt><tt class="py-op">(</tt><tt class="py-name">results</tt><tt class="py-op">)</tt> </tt>
-<a name="L978"></a><tt class="py-lineno"> 978</tt> <tt class="py-line"> <tt class="py-name">group</tt><tt class="py-op">.</tt><tt id="link-622" class="py-name"><a title="lxml.etree.DTD.name
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-608', 'name', 'link-232');">name</a></tt> </tt>
+<a name="L983"></a><tt class="py-lineno"> 983</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">group</tt> </tt>
+<a name="L984"></a><tt class="py-lineno"> 984</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt id="link-609" class="py-name"><a title="lxml.etree._LogEntry.type
+lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-609', 'type', 'link-239');">type</a></tt> <tt class="py-op">==</tt> <tt class="py-string">'checkbox'</tt> <tt class="py-keyword">and</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">results</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="L985"></a><tt class="py-lineno"> 985</tt> <tt class="py-line"> <tt class="py-name">group</tt> <tt class="py-op">=</tt> <tt id="link-610" class="py-name" targets="Class lxml.html.CheckboxGroup=lxml.html.CheckboxGroup-class.html"><a title="lxml.html.CheckboxGroup" class="py-name" href="#" onclick="return doclink('link-610', 'CheckboxGroup', 'link-610');">CheckboxGroup</a></tt><tt class="py-op">(</tt><tt class="py-name">results</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">group</tt><tt class="py-op">.</tt><tt id="link-611" 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-622', 'name', 'link-232');">name</a></tt> <tt class="py-op">=</tt> <tt id="link-623" class="py-name"><a title="lxml.etree.DTD.name
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-611', 'name', 'link-232');">name</a></tt> <tt class="py-op">=</tt> <tt id="link-612" 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-623', 'name', 'link-232');">name</a></tt> </tt>
-<a name="L979"></a><tt class="py-lineno"> 979</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">group</tt> </tt>
-<a name="L980"></a><tt class="py-lineno"> 980</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L981"></a><tt class="py-lineno"> 981</tt> <tt class="py-line"> <tt class="py-comment"># I don't like throwing away elements like this</tt> </tt>
-<a name="L982"></a><tt class="py-lineno"> 982</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">results</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="L983"></a><tt class="py-lineno"> 983</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L984"></a><tt class="py-lineno"> 984</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">KeyError</tt><tt class="py-op">(</tt> </tt>
-<a name="L985"></a><tt class="py-lineno"> 985</tt> <tt class="py-line"> <tt class="py-string">"No input element with the name %r"</tt> <tt class="py-op">%</tt> <tt id="link-624" class="py-name"><a title="lxml.etree.DTD.name
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-612', 'name', 'link-232');">name</a></tt> </tt>
+<a name="L987"></a><tt class="py-lineno"> 987</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">group</tt> </tt>
+<a name="L988"></a><tt class="py-lineno"> 988</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L989"></a><tt class="py-lineno"> 989</tt> <tt class="py-line"> <tt class="py-comment"># I don't like throwing away elements like this</tt> </tt>
+<a name="L990"></a><tt class="py-lineno"> 990</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">results</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L991"></a><tt class="py-lineno"> 991</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L992"></a><tt class="py-lineno"> 992</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">KeyError</tt><tt class="py-op">(</tt> </tt>
+<a name="L993"></a><tt class="py-lineno"> 993</tt> <tt class="py-line"> <tt class="py-string">"No input element with the name %r"</tt> <tt class="py-op">%</tt> <tt id="link-613" 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-624', 'name', 'link-232');">name</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L986"></a><tt class="py-lineno"> 986</tt> <tt class="py-line"> </tt>
-<a name="InputGetter.__contains__"></a><div id="InputGetter.__contains__-def"><a name="L987"></a><tt class="py-lineno"> 987</tt> <a class="py-toggle" href="#" id="InputGetter.__contains__-toggle" onclick="return toggle('InputGetter.__contains__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.InputGetter-class.html#__contains__">__contains__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="InputGetter.__contains__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="InputGetter.__contains__-expanded"><a name="L988"></a><tt class="py-lineno"> 988</tt> <tt class="py-line"> <tt class="py-name">results</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-625" class="py-name"><a title="lxml.html.InputGetter._name_xpath
-lxml.html.formfill._name_xpath" class="py-name" href="#" onclick="return doclink('link-625', '_name_xpath', 'link-604');">_name_xpath</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">form</tt><tt class="py-op">,</tt> <tt id="link-626" class="py-name"><a title="lxml.etree.DTD.name
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-613', 'name', 'link-232');">name</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L994"></a><tt class="py-lineno"> 994</tt> <tt class="py-line"> </tt>
+<a name="InputGetter.__contains__"></a><div id="InputGetter.__contains__-def"><a name="L995"></a><tt class="py-lineno"> 995</tt> <a class="py-toggle" href="#" id="InputGetter.__contains__-toggle" onclick="return toggle('InputGetter.__contains__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.InputGetter-class.html#__contains__">__contains__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="InputGetter.__contains__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="InputGetter.__contains__-expanded"><a name="L996"></a><tt class="py-lineno"> 996</tt> <tt class="py-line"> <tt class="py-name">results</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-614" class="py-name"><a title="lxml.html.InputGetter._name_xpath
+lxml.html.formfill._name_xpath" class="py-name" href="#" onclick="return doclink('link-614', '_name_xpath', 'link-593');">_name_xpath</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">form</tt><tt class="py-op">,</tt> <tt id="link-615" 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-626', 'name', 'link-232');">name</a></tt><tt class="py-op">=</tt><tt id="link-627" class="py-name"><a title="lxml.etree.DTD.name
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-615', 'name', 'link-232');">name</a></tt><tt class="py-op">=</tt><tt id="link-616" 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-627', 'name', 'link-232');">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-keyword">return</tt> <tt class="py-name">bool</tt><tt class="py-op">(</tt><tt class="py-name">results</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L990"></a><tt class="py-lineno"> 990</tt> <tt class="py-line"> </tt>
-<a name="InputGetter.keys"></a><div id="InputGetter.keys-def"><a name="L991"></a><tt class="py-lineno"> 991</tt> <a class="py-toggle" href="#" id="InputGetter.keys-toggle" onclick="return toggle('InputGetter.keys');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.InputGetter-class.html#keys">keys</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="InputGetter.keys-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="InputGetter.keys-expanded"><a name="L992"></a><tt class="py-lineno"> 992</tt> <tt class="py-line"> <tt class="py-name">names</tt> <tt class="py-op">=</tt> <tt id="link-628" class="py-name"><a title="lxml.etree._Element.set
-lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-628', 'set', 'link-9');">set</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L993"></a><tt class="py-lineno"> 993</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">self</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">names</tt><tt class="py-op">.</tt><tt id="link-629" class="py-name" targets="Method lxml.html.CheckboxValues.add()=lxml.html.CheckboxValues-class.html#add,Method lxml.html.MultipleSelectOptions.add()=lxml.html.MultipleSelectOptions-class.html#add"><a title="lxml.html.CheckboxValues.add
-lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-629', 'add', 'link-629');">add</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-630" class="py-name"><a title="lxml.etree.DTD.name
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-616', 'name', 'link-232');">name</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L997"></a><tt class="py-lineno"> 997</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">bool</tt><tt class="py-op">(</tt><tt class="py-name">results</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L998"></a><tt class="py-lineno"> 998</tt> <tt class="py-line"> </tt>
+<a name="InputGetter.keys"></a><div id="InputGetter.keys-def"><a name="L999"></a><tt class="py-lineno"> 999</tt> <a class="py-toggle" href="#" id="InputGetter.keys-toggle" onclick="return toggle('InputGetter.keys');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.InputGetter-class.html#keys">keys</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="InputGetter.keys-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="InputGetter.keys-expanded"><a name="L1000"></a><tt class="py-lineno">1000</tt> <tt class="py-line"> <tt class="py-name">names</tt> <tt class="py-op">=</tt> <tt id="link-617" class="py-name"><a title="lxml.etree._Element.set
+lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-617', 'set', 'link-9');">set</a></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-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">:</tt> </tt>
+<a name="L1002"></a><tt class="py-lineno">1002</tt> <tt class="py-line"> <tt class="py-name">names</tt><tt class="py-op">.</tt><tt id="link-618" class="py-name" targets="Method lxml.html.CheckboxValues.add()=lxml.html.CheckboxValues-class.html#add,Method lxml.html.MultipleSelectOptions.add()=lxml.html.MultipleSelectOptions-class.html#add"><a title="lxml.html.CheckboxValues.add
+lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-618', 'add', 'link-618');">add</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-619" 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-630', 'name', 'link-232');">name</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-keyword">if</tt> <tt class="py-name">None</tt> <tt class="py-keyword">in</tt> <tt class="py-name">names</tt><tt class="py-op">:</tt> </tt>
-<a name="L996"></a><tt class="py-lineno"> 996</tt> <tt class="py-line"> <tt class="py-name">names</tt><tt class="py-op">.</tt><tt id="link-631" class="py-name"><a title="lxml.etree._Element.remove
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-619', 'name', 'link-232');">name</a></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">if</tt> <tt class="py-name">None</tt> <tt class="py-keyword">in</tt> <tt class="py-name">names</tt><tt class="py-op">:</tt> </tt>
+<a name="L1004"></a><tt class="py-lineno">1004</tt> <tt class="py-line"> <tt class="py-name">names</tt><tt class="py-op">.</tt><tt id="link-620" class="py-name"><a title="lxml.etree._Element.remove
lxml.html.CheckboxValues.remove
-lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-631', 'remove', 'link-110');">remove</a></tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L997"></a><tt class="py-lineno"> 997</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">names</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L998"></a><tt class="py-lineno"> 998</tt> <tt class="py-line"> </tt>
-<a name="InputGetter.__iter__"></a><div id="InputGetter.__iter__-def"><a name="L999"></a><tt class="py-lineno"> 999</tt> <a class="py-toggle" href="#" id="InputGetter.__iter__-toggle" onclick="return toggle('InputGetter.__iter__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.InputGetter-class.html#__iter__">__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="InputGetter.__iter__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="InputGetter.__iter__-expanded"><a name="L1000"></a><tt class="py-lineno">1000</tt> <tt class="py-line"> <tt class="py-comment">## FIXME: kind of dumb to turn a list into an iterator, only</tt> </tt>
-<a name="L1001"></a><tt class="py-lineno">1001</tt> <tt class="py-line"> <tt class="py-comment">## to have it likely turned back into a list again :(</tt> </tt>
-<a name="L1002"></a><tt class="py-lineno">1002</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-632" class="py-name"><a title="lxml.etree._Element.iter
-lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-632', 'iter', 'link-162');">iter</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-633" class="py-name"><a title="lxml.html.InputGetter._all_xpath" class="py-name" href="#" onclick="return doclink('link-633', '_all_xpath', 'link-607');">_all_xpath</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">form</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1003"></a><tt class="py-lineno">1003</tt> <tt class="py-line"> </tt>
-<a name="InputMixin"></a><div id="InputMixin-def"><a name="L1004"></a><tt class="py-lineno">1004</tt> <a class="py-toggle" href="#" id="InputMixin-toggle" onclick="return toggle('InputMixin');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.html.InputMixin-class.html">InputMixin</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="InputMixin-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="InputMixin-expanded"><a name="L1005"></a><tt class="py-lineno">1005</tt> <tt class="py-line"> </tt>
-<a name="L1006"></a><tt class="py-lineno">1006</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1007"></a><tt class="py-lineno">1007</tt> <tt class="py-line"><tt class="py-docstring"> Mix-in for all input elements (input, select, and textarea)</tt> </tt>
-<a name="L1008"></a><tt class="py-lineno">1008</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1009"></a><tt class="py-lineno">1009</tt> <tt class="py-line"> </tt>
-<a name="L1010"></a><tt class="py-lineno">1010</tt> <tt class="py-line"> </tt>
-<a name="InputMixin._name__get"></a><div id="InputMixin._name__get-def"><a name="L1011"></a><tt class="py-lineno">1011</tt> <a class="py-toggle" href="#" id="InputMixin._name__get-toggle" onclick="return toggle('InputMixin._name__get');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.InputMixin-class.html#_name__get">_name__get</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="InputMixin._name__get-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="InputMixin._name__get-expanded"><a name="L1012"></a><tt class="py-lineno">1012</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1013"></a><tt class="py-lineno">1013</tt> <tt class="py-line"><tt class="py-docstring"> Get/set the name of the element</tt> </tt>
-<a name="L1014"></a><tt class="py-lineno">1014</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1015"></a><tt class="py-lineno">1015</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-634" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-620', 'remove', 'link-110');">remove</a></tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L1005"></a><tt class="py-lineno">1005</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">names</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1006"></a><tt class="py-lineno">1006</tt> <tt class="py-line"> </tt>
+<a name="InputGetter.__iter__"></a><div id="InputGetter.__iter__-def"><a name="L1007"></a><tt class="py-lineno">1007</tt> <a class="py-toggle" href="#" id="InputGetter.__iter__-toggle" onclick="return toggle('InputGetter.__iter__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.InputGetter-class.html#__iter__">__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="InputGetter.__iter__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="InputGetter.__iter__-expanded"><a name="L1008"></a><tt class="py-lineno">1008</tt> <tt class="py-line"> <tt class="py-comment">## FIXME: kind of dumb to turn a list into an iterator, only</tt> </tt>
+<a name="L1009"></a><tt class="py-lineno">1009</tt> <tt class="py-line"> <tt class="py-comment">## to have it likely turned back into a list again :(</tt> </tt>
+<a name="L1010"></a><tt class="py-lineno">1010</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-621" class="py-name"><a title="lxml.etree._Element.iter
+lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-621', 'iter', 'link-162');">iter</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-622" class="py-name"><a title="lxml.html.InputGetter._all_xpath" class="py-name" href="#" onclick="return doclink('link-622', '_all_xpath', 'link-596');">_all_xpath</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">form</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1011"></a><tt class="py-lineno">1011</tt> <tt class="py-line"> </tt>
+<a name="InputMixin"></a><div id="InputMixin-def"><a name="L1012"></a><tt class="py-lineno">1012</tt> <a class="py-toggle" href="#" id="InputMixin-toggle" onclick="return toggle('InputMixin');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.html.InputMixin-class.html">InputMixin</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="InputMixin-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="InputMixin-expanded"><a name="L1013"></a><tt class="py-lineno">1013</tt> <tt class="py-line"> </tt>
+<a name="L1014"></a><tt class="py-lineno">1014</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1015"></a><tt class="py-lineno">1015</tt> <tt class="py-line"><tt class="py-docstring"> Mix-in for all input elements (input, select, and textarea)</tt> </tt>
+<a name="L1016"></a><tt class="py-lineno">1016</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1017"></a><tt class="py-lineno">1017</tt> <tt class="py-line"> </tt>
+<a name="L1018"></a><tt class="py-lineno">1018</tt> <tt class="py-line"> </tt>
+<a name="InputMixin._name__get"></a><div id="InputMixin._name__get-def"><a name="L1019"></a><tt class="py-lineno">1019</tt> <a class="py-toggle" href="#" id="InputMixin._name__get-toggle" onclick="return toggle('InputMixin._name__get');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.InputMixin-class.html#_name__get">_name__get</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="InputMixin._name__get-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="InputMixin._name__get-expanded"><a name="L1020"></a><tt class="py-lineno">1020</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1021"></a><tt class="py-lineno">1021</tt> <tt class="py-line"><tt class="py-docstring"> Get/set the name of the element</tt> </tt>
+<a name="L1022"></a><tt class="py-lineno">1022</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1023"></a><tt class="py-lineno">1023</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-623" 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-634', 'get', 'link-82');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'name'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="InputMixin._name__set"></a><div id="InputMixin._name__set-def"><a name="L1016"></a><tt class="py-lineno">1016</tt> <a class="py-toggle" href="#" id="InputMixin._name__set-toggle" onclick="return toggle('InputMixin._name__set');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.InputMixin-class.html#_name__set">_name__set</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="InputMixin._name__set-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="InputMixin._name__set-expanded"><a name="L1017"></a><tt class="py-lineno">1017</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-635" class="py-name"><a title="lxml.etree._Element.set
-lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-635', 'set', 'link-9');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'name'</tt><tt class="py-op">,</tt> <tt id="link-636" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-623', 'get', 'link-82');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'name'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="InputMixin._name__set"></a><div id="InputMixin._name__set-def"><a name="L1024"></a><tt class="py-lineno">1024</tt> <a class="py-toggle" href="#" id="InputMixin._name__set-toggle" onclick="return toggle('InputMixin._name__set');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.InputMixin-class.html#_name__set">_name__set</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="InputMixin._name__set-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="InputMixin._name__set-expanded"><a name="L1025"></a><tt class="py-lineno">1025</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-624" class="py-name"><a title="lxml.etree._Element.set
+lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-624', 'set', 'link-9');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'name'</tt><tt class="py-op">,</tt> <tt id="link-625" 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-636', 'value', 'link-176');">value</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="InputMixin._name__del"></a><div id="InputMixin._name__del-def"><a name="L1018"></a><tt class="py-lineno">1018</tt> <a class="py-toggle" href="#" id="InputMixin._name__del-toggle" onclick="return toggle('InputMixin._name__del');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.InputMixin-class.html#_name__del">_name__del</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="InputMixin._name__del-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="InputMixin._name__del-expanded"><a name="L1019"></a><tt class="py-lineno">1019</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'name'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-637" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-625', 'value', 'link-176');">value</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="InputMixin._name__del"></a><div id="InputMixin._name__del-def"><a name="L1026"></a><tt class="py-lineno">1026</tt> <a class="py-toggle" href="#" id="InputMixin._name__del-toggle" onclick="return toggle('InputMixin._name__del');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.InputMixin-class.html#_name__del">_name__del</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="InputMixin._name__del-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="InputMixin._name__del-expanded"><a name="L1027"></a><tt class="py-lineno">1027</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'name'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-626" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-637', 'attrib', 'link-94');">attrib</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1020"></a><tt class="py-lineno">1020</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-638" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-626', 'attrib', 'link-94');">attrib</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1028"></a><tt class="py-lineno">1028</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-627" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-638', 'attrib', 'link-94');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'name'</tt><tt class="py-op">]</tt> </tt>
-</div><a name="L1021"></a><tt class="py-lineno">1021</tt> <tt class="py-line"> <tt id="link-639" class="py-name"><a title="lxml.etree.DTD.name
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-627', 'attrib', 'link-94');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'name'</tt><tt class="py-op">]</tt> </tt>
+</div><a name="L1029"></a><tt class="py-lineno">1029</tt> <tt class="py-line"> <tt id="link-628" 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-639', 'name', 'link-232');">name</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-640" class="py-name" targets="Method lxml.html.InputMixin._name__get()=lxml.html.InputMixin-class.html#_name__get"><a title="lxml.html.InputMixin._name__get" class="py-name" href="#" onclick="return doclink('link-640', '_name__get', 'link-640');">_name__get</a></tt><tt class="py-op">,</tt> <tt id="link-641" class="py-name" targets="Method lxml.html.InputMixin._name__set()=lxml.html.InputMixin-class.html#_name__set"><a title="lxml.html.InputMixin._name__set" class="py-name" href="#" onclick="return doclink('link-641', '_name__set', 'link-641');">_name__set</a></tt><tt class="py-op">,</tt> <tt id="link-642" class="py-name" targets="Method lxml.html.InputMixin._name__del()=lxml.html.InputMixin-class.html#_name__del"><a title="lxml.html.InputMixin._name__del" class="py-name" href="#" onclick="return doclink('link-642', '_name__del', 'link-642');">_name__del</a></tt><tt class="py-op">,</tt> <tt class="py-name">doc</tt><tt class="py-op">=</tt><tt id="link-643" class="py-name"><a title="lxml.html.InputMixin._name__get" class="py-name" href="#" onclick="return doclink('link-643', '_name__get', 'link-640');">_name__get</a></tt><tt class="py-op">.</tt><tt id="link-644" class="py-name"><a title="lxml.html.ElementSoup.__doc__
-lxml.html.soupparser.__doc__" class="py-name" href="#" onclick="return doclink('link-644', '__doc__', 'link-64');">__doc__</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1022"></a><tt class="py-lineno">1022</tt> <tt class="py-line"> </tt>
-<a name="InputMixin.__repr__"></a><div id="InputMixin.__repr__-def"><a name="L1023"></a><tt class="py-lineno">1023</tt> <a class="py-toggle" href="#" id="InputMixin.__repr__-toggle" onclick="return toggle('InputMixin.__repr__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.InputMixin-class.html#__repr__">__repr__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="InputMixin.__repr__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="InputMixin.__repr__-expanded"><a name="L1024"></a><tt class="py-lineno">1024</tt> <tt class="py-line"> <tt id="link-645" class="py-name"><a title="lxml.etree._LogEntry.type
-lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-645', 'type', 'link-239');">type</a></tt> <tt class="py-op">=</tt> <tt class="py-name">getattr</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-string">'type'</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L1025"></a><tt class="py-lineno">1025</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-646" class="py-name"><a title="lxml.etree._LogEntry.type
-lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-646', 'type', 'link-239');">type</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1026"></a><tt class="py-lineno">1026</tt> <tt class="py-line"> <tt id="link-647" class="py-name"><a title="lxml.etree._LogEntry.type
-lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-647', 'type', 'link-239');">type</a></tt> <tt class="py-op">=</tt> <tt class="py-string">' type=%r'</tt> <tt class="py-op">%</tt> <tt id="link-648" class="py-name"><a title="lxml.etree._LogEntry.type
-lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-648', 'type', 'link-239');">type</a></tt> </tt>
-<a name="L1027"></a><tt class="py-lineno">1027</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1028"></a><tt class="py-lineno">1028</tt> <tt class="py-line"> <tt id="link-649" class="py-name"><a title="lxml.etree._LogEntry.type
-lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-649', 'type', 'link-239');">type</a></tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
-<a name="L1029"></a><tt class="py-lineno">1029</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">'<%s %x name=%r%s>'</tt> <tt class="py-op">%</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">self</tt><tt class="py-op">.</tt><tt class="py-name">__class__</tt><tt class="py-op">.</tt><tt class="py-name">__name__</tt><tt class="py-op">,</tt> <tt class="py-name">id</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-650" class="py-name"><a title="lxml.etree.DTD.name
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-628', 'name', 'link-232');">name</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-629" class="py-name" targets="Method lxml.html.InputMixin._name__get()=lxml.html.InputMixin-class.html#_name__get"><a title="lxml.html.InputMixin._name__get" class="py-name" href="#" onclick="return doclink('link-629', '_name__get', 'link-629');">_name__get</a></tt><tt class="py-op">,</tt> <tt id="link-630" class="py-name" targets="Method lxml.html.InputMixin._name__set()=lxml.html.InputMixin-class.html#_name__set"><a title="lxml.html.InputMixin._name__set" class="py-name" href="#" onclick="return doclink('link-630', '_name__set', 'link-630');">_name__set</a></tt><tt class="py-op">,</tt> <tt id="link-631" class="py-name" targets="Method lxml.html.InputMixin._name__del()=lxml.html.InputMixin-class.html#_name__del"><a title="lxml.html.InputMixin._name__del" class="py-name" href="#" onclick="return doclink('link-631', '_name__del', 'link-631');">_name__del</a></tt><tt class="py-op">,</tt> <tt class="py-name">doc</tt><tt class="py-op">=</tt><tt id="link-632" class="py-name"><a title="lxml.html.InputMixin._name__get" class="py-name" href="#" onclick="return doclink('link-632', '_name__get', 'link-629');">_name__get</a></tt><tt class="py-op">.</tt><tt id="link-633" class="py-name"><a title="lxml.html.ElementSoup.__doc__
+lxml.html.soupparser.__doc__" class="py-name" href="#" onclick="return doclink('link-633', '__doc__', 'link-64');">__doc__</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1030"></a><tt class="py-lineno">1030</tt> <tt class="py-line"> </tt>
+<a name="InputMixin.__repr__"></a><div id="InputMixin.__repr__-def"><a name="L1031"></a><tt class="py-lineno">1031</tt> <a class="py-toggle" href="#" id="InputMixin.__repr__-toggle" onclick="return toggle('InputMixin.__repr__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.InputMixin-class.html#__repr__">__repr__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="InputMixin.__repr__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="InputMixin.__repr__-expanded"><a name="L1032"></a><tt class="py-lineno">1032</tt> <tt class="py-line"> <tt id="link-634" class="py-name"><a title="lxml.etree._LogEntry.type
+lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-634', 'type', 'link-239');">type</a></tt> <tt class="py-op">=</tt> <tt class="py-name">getattr</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-string">'type'</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L1033"></a><tt class="py-lineno">1033</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-635" class="py-name"><a title="lxml.etree._LogEntry.type
+lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-635', 'type', 'link-239');">type</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1034"></a><tt class="py-lineno">1034</tt> <tt class="py-line"> <tt id="link-636" class="py-name"><a title="lxml.etree._LogEntry.type
+lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-636', 'type', 'link-239');">type</a></tt> <tt class="py-op">=</tt> <tt class="py-string">' type=%r'</tt> <tt class="py-op">%</tt> <tt id="link-637" class="py-name"><a title="lxml.etree._LogEntry.type
+lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-637', 'type', 'link-239');">type</a></tt> </tt>
+<a name="L1035"></a><tt class="py-lineno">1035</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1036"></a><tt class="py-lineno">1036</tt> <tt class="py-line"> <tt id="link-638" class="py-name"><a title="lxml.etree._LogEntry.type
+lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-638', 'type', 'link-239');">type</a></tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
+<a name="L1037"></a><tt class="py-lineno">1037</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">'<%s %x name=%r%s>'</tt> <tt class="py-op">%</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">self</tt><tt class="py-op">.</tt><tt class="py-name">__class__</tt><tt class="py-op">.</tt><tt class="py-name">__name__</tt><tt class="py-op">,</tt> <tt class="py-name">id</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-639" 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-650', 'name', 'link-232');">name</a></tt><tt class="py-op">,</tt> <tt id="link-651" class="py-name"><a title="lxml.etree._LogEntry.type
-lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-651', 'type', 'link-239');">type</a></tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1031"></a><tt class="py-lineno">1031</tt> <tt class="py-line"> </tt>
-<a name="TextareaElement"></a><div id="TextareaElement-def"><a name="L1032"></a><tt class="py-lineno">1032</tt> <a class="py-toggle" href="#" id="TextareaElement-toggle" onclick="return toggle('TextareaElement');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.html.TextareaElement-class.html">TextareaElement</a><tt class="py-op">(</tt><tt class="py-base-class">InputMixin</tt><tt class="py-op">,</tt> <tt class="py-base-class">HtmlElement</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="TextareaElement-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="TextareaElement-expanded"><a name="L1033"></a><tt class="py-lineno">1033</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1034"></a><tt class="py-lineno">1034</tt> <tt class="py-line"><tt class="py-docstring"> ``<textarea>`` element. You can get the name with ``.name`` and</tt> </tt>
-<a name="L1035"></a><tt class="py-lineno">1035</tt> <tt class="py-line"><tt class="py-docstring"> get/set the value with ``.value``</tt> </tt>
-<a name="L1036"></a><tt class="py-lineno">1036</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1037"></a><tt class="py-lineno">1037</tt> <tt class="py-line"> </tt>
-<a name="TextareaElement._value__get"></a><div id="TextareaElement._value__get-def"><a name="L1038"></a><tt class="py-lineno">1038</tt> <a class="py-toggle" href="#" id="TextareaElement._value__get-toggle" onclick="return toggle('TextareaElement._value__get');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.TextareaElement-class.html#_value__get">_value__get</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="TextareaElement._value__get-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="TextareaElement._value__get-expanded"><a name="L1039"></a><tt class="py-lineno">1039</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1040"></a><tt class="py-lineno">1040</tt> <tt class="py-line"><tt class="py-docstring"> Get/set the value (which is the contents of this element)</tt> </tt>
-<a name="L1041"></a><tt class="py-lineno">1041</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1042"></a><tt class="py-lineno">1042</tt> <tt class="py-line"> <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-652" class="py-name"><a title="lxml.etree.QName.text
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-639', 'name', 'link-232');">name</a></tt><tt class="py-op">,</tt> <tt id="link-640" class="py-name"><a title="lxml.etree._LogEntry.type
+lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-640', 'type', 'link-239');">type</a></tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1039"></a><tt class="py-lineno">1039</tt> <tt class="py-line"> </tt>
+<a name="TextareaElement"></a><div id="TextareaElement-def"><a name="L1040"></a><tt class="py-lineno">1040</tt> <a class="py-toggle" href="#" id="TextareaElement-toggle" onclick="return toggle('TextareaElement');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.html.TextareaElement-class.html">TextareaElement</a><tt class="py-op">(</tt><tt class="py-base-class">InputMixin</tt><tt class="py-op">,</tt> <tt class="py-base-class">HtmlElement</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="TextareaElement-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="TextareaElement-expanded"><a name="L1041"></a><tt class="py-lineno">1041</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1042"></a><tt class="py-lineno">1042</tt> <tt class="py-line"><tt class="py-docstring"> ``<textarea>`` element. You can get the name with ``.name`` and</tt> </tt>
+<a name="L1043"></a><tt class="py-lineno">1043</tt> <tt class="py-line"><tt class="py-docstring"> get/set the value with ``.value``</tt> </tt>
+<a name="L1044"></a><tt class="py-lineno">1044</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1045"></a><tt class="py-lineno">1045</tt> <tt class="py-line"> </tt>
+<a name="TextareaElement._value__get"></a><div id="TextareaElement._value__get-def"><a name="L1046"></a><tt class="py-lineno">1046</tt> <a class="py-toggle" href="#" id="TextareaElement._value__get-toggle" onclick="return toggle('TextareaElement._value__get');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.TextareaElement-class.html#_value__get">_value__get</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="TextareaElement._value__get-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="TextareaElement._value__get-expanded"><a name="L1047"></a><tt class="py-lineno">1047</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1048"></a><tt class="py-lineno">1048</tt> <tt class="py-line"><tt class="py-docstring"> Get/set the value (which is the contents of this element)</tt> </tt>
+<a name="L1049"></a><tt class="py-lineno">1049</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1050"></a><tt class="py-lineno">1050</tt> <tt class="py-line"> <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-641" 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-652', 'text', 'link-104');">text</a></tt> <tt class="py-keyword">or</tt> <tt class="py-string">''</tt> </tt>
-<a name="L1043"></a><tt class="py-lineno">1043</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-653" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-641', 'text', 'link-104');">text</a></tt> <tt class="py-keyword">or</tt> <tt class="py-string">''</tt> </tt>
+<a name="L1051"></a><tt class="py-lineno">1051</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-642" 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-653', 'tag', 'link-50');">tag</a></tt><tt class="py-op">.</tt><tt class="py-name">startswith</tt><tt class="py-op">(</tt><tt class="py-string">"{%s}"</tt> <tt class="py-op">%</tt> <tt id="link-654" class="py-name"><a title="lxml.html.XHTML_NAMESPACE" class="py-name" href="#" onclick="return doclink('link-654', 'XHTML_NAMESPACE', 'link-16');">XHTML_NAMESPACE</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1044"></a><tt class="py-lineno">1044</tt> <tt class="py-line"> <tt class="py-name">serialisation_method</tt> <tt class="py-op">=</tt> <tt class="py-string">'xml'</tt> </tt>
-<a name="L1045"></a><tt class="py-lineno">1045</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1046"></a><tt class="py-lineno">1046</tt> <tt class="py-line"> <tt class="py-name">serialisation_method</tt> <tt class="py-op">=</tt> <tt class="py-string">'html'</tt> </tt>
-<a name="L1047"></a><tt class="py-lineno">1047</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">self</tt><tt class="py-op">:</tt> </tt>
-<a name="L1048"></a><tt class="py-lineno">1048</tt> <tt class="py-line"> <tt class="py-comment"># it's rare that we actually get here, so let's not use ''.join()</tt> </tt>
-<a name="L1049"></a><tt class="py-lineno">1049</tt> <tt class="py-line"> <tt class="py-name">content</tt> <tt class="py-op">+=</tt> <tt id="link-655" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-642', 'tag', 'link-50');">tag</a></tt><tt class="py-op">.</tt><tt class="py-name">startswith</tt><tt class="py-op">(</tt><tt class="py-string">"{%s}"</tt> <tt class="py-op">%</tt> <tt id="link-643" class="py-name"><a title="lxml.html.XHTML_NAMESPACE" class="py-name" href="#" onclick="return doclink('link-643', 'XHTML_NAMESPACE', 'link-16');">XHTML_NAMESPACE</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1052"></a><tt class="py-lineno">1052</tt> <tt class="py-line"> <tt class="py-name">serialisation_method</tt> <tt class="py-op">=</tt> <tt class="py-string">'xml'</tt> </tt>
+<a name="L1053"></a><tt class="py-lineno">1053</tt> <tt class="py-line"> <tt class="py-keyword">else</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">serialisation_method</tt> <tt class="py-op">=</tt> <tt class="py-string">'html'</tt> </tt>
+<a name="L1055"></a><tt class="py-lineno">1055</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">self</tt><tt class="py-op">:</tt> </tt>
+<a name="L1056"></a><tt class="py-lineno">1056</tt> <tt class="py-line"> <tt class="py-comment"># it's rare that we actually get here, so let's not use ''.join()</tt> </tt>
+<a name="L1057"></a><tt class="py-lineno">1057</tt> <tt class="py-line"> <tt class="py-name">content</tt> <tt class="py-op">+=</tt> <tt id="link-644" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-655', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-656" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-656', 'tostring', 'link-46');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">,</tt> <tt id="link-657" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-657', 'method', 'link-562');">method</a></tt><tt class="py-op">=</tt><tt class="py-name">serialisation_method</tt><tt class="py-op">,</tt> <tt id="link-658" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-658', 'encoding', 'link-47');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">unicode</tt><tt class="py-op">)</tt> </tt>
-<a name="L1050"></a><tt class="py-lineno">1050</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">content</tt> </tt>
-</div><a name="TextareaElement._value__set"></a><div id="TextareaElement._value__set-def"><a name="L1051"></a><tt class="py-lineno">1051</tt> <a class="py-toggle" href="#" id="TextareaElement._value__set-toggle" onclick="return toggle('TextareaElement._value__set');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.TextareaElement-class.html#_value__set">_value__set</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="TextareaElement._value__set-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="TextareaElement._value__set-expanded"><a name="L1052"></a><tt class="py-lineno">1052</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-op">:</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">self</tt><tt class="py-op">.</tt><tt id="link-659" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-644', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-645" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-645', 'tostring', 'link-46');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">,</tt> <tt id="link-646" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-646', 'method', 'link-551');">method</a></tt><tt class="py-op">=</tt><tt class="py-name">serialisation_method</tt><tt class="py-op">,</tt> <tt id="link-647" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-647', 'encoding', 'link-47');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">unicode</tt><tt class="py-op">)</tt> </tt>
+<a name="L1058"></a><tt class="py-lineno">1058</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">content</tt> </tt>
+</div><a name="TextareaElement._value__set"></a><div id="TextareaElement._value__set-def"><a name="L1059"></a><tt class="py-lineno">1059</tt> <a class="py-toggle" href="#" id="TextareaElement._value__set-toggle" onclick="return toggle('TextareaElement._value__set');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.TextareaElement-class.html#_value__set">_value__set</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="TextareaElement._value__set-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="TextareaElement._value__set-expanded"><a name="L1060"></a><tt class="py-lineno">1060</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-op">:</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 id="link-648" 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-659', 'text', 'link-104');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-660" class="py-name"><a title="lxml.html.CheckboxGroup.value
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-648', 'text', 'link-104');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-649" 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-660', 'value', 'link-176');">value</a></tt> </tt>
-</div><a name="TextareaElement._value__del"></a><div id="TextareaElement._value__del-def"><a name="L1054"></a><tt class="py-lineno">1054</tt> <a class="py-toggle" href="#" id="TextareaElement._value__del-toggle" onclick="return toggle('TextareaElement._value__del');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.TextareaElement-class.html#_value__del">_value__del</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="TextareaElement._value__del-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="TextareaElement._value__del-expanded"><a name="L1055"></a><tt class="py-lineno">1055</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-661" class="py-name"><a title="lxml.etree.QName.text
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-649', 'value', 'link-176');">value</a></tt> </tt>
+</div><a name="TextareaElement._value__del"></a><div id="TextareaElement._value__del-def"><a name="L1062"></a><tt class="py-lineno">1062</tt> <a class="py-toggle" href="#" id="TextareaElement._value__del-toggle" onclick="return toggle('TextareaElement._value__del');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.TextareaElement-class.html#_value__del">_value__del</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="TextareaElement._value__del-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="TextareaElement._value__del-expanded"><a name="L1063"></a><tt class="py-lineno">1063</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-650" 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-661', 'text', 'link-104');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
-<a name="L1056"></a><tt class="py-lineno">1056</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-op">:</tt><tt class="py-op">]</tt> </tt>
-</div><a name="L1057"></a><tt class="py-lineno">1057</tt> <tt class="py-line"> <tt id="link-662" class="py-name"><a title="lxml.html.CheckboxGroup.value
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-650', 'text', 'link-104');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
+<a name="L1064"></a><tt class="py-lineno">1064</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-op">:</tt><tt class="py-op">]</tt> </tt>
+</div><a name="L1065"></a><tt class="py-lineno">1065</tt> <tt class="py-line"> <tt id="link-651" 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-662', 'value', 'link-176');">value</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-663" class="py-name" targets="Method lxml.html.CheckboxGroup._value__get()=lxml.html.CheckboxGroup-class.html#_value__get,Method lxml.html.InputElement._value__get()=lxml.html.InputElement-class.html#_value__get,Method lxml.html.RadioGroup._value__get()=lxml.html.RadioGroup-class.html#_value__get,Method lxml.html.SelectElement._value__get()=lxml.html.SelectElement-class.html#_value__get,Method lxml.html.TextareaElement._value__get()=lxml.html.TextareaElement-class.html#_value__get"><a title="lxml.html.CheckboxGroup._value__get
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-651', 'value', 'link-176');">value</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-652" class="py-name" targets="Method lxml.html.CheckboxGroup._value__get()=lxml.html.CheckboxGroup-class.html#_value__get,Method lxml.html.InputElement._value__get()=lxml.html.InputElement-class.html#_value__get,Method lxml.html.RadioGroup._value__get()=lxml.html.RadioGroup-class.html#_value__get,Method lxml.html.SelectElement._value__get()=lxml.html.SelectElement-class.html#_value__get,Method lxml.html.TextareaElement._value__get()=lxml.html.TextareaElement-class.html#_value__get"><a title="lxml.html.CheckboxGroup._value__get
lxml.html.InputElement._value__get
lxml.html.RadioGroup._value__get
lxml.html.SelectElement._value__get
-lxml.html.TextareaElement._value__get" class="py-name" href="#" onclick="return doclink('link-663', '_value__get', 'link-663');">_value__get</a></tt><tt class="py-op">,</tt> <tt id="link-664" class="py-name" targets="Method lxml.html.CheckboxGroup._value__set()=lxml.html.CheckboxGroup-class.html#_value__set,Method lxml.html.InputElement._value__set()=lxml.html.InputElement-class.html#_value__set,Method lxml.html.RadioGroup._value__set()=lxml.html.RadioGroup-class.html#_value__set,Method lxml.html.SelectElement._value__set()=lxml.html.SelectElement-class.html#_value__set,Method lxml.html.TextareaElement._value__set()=lxml.html.TextareaElement-class.html#_value__set"><a title="lxml.html.CheckboxGroup._value__set
+lxml.html.TextareaElement._value__get" class="py-name" href="#" onclick="return doclink('link-652', '_value__get', 'link-652');">_value__get</a></tt><tt class="py-op">,</tt> <tt id="link-653" class="py-name" targets="Method lxml.html.CheckboxGroup._value__set()=lxml.html.CheckboxGroup-class.html#_value__set,Method lxml.html.InputElement._value__set()=lxml.html.InputElement-class.html#_value__set,Method lxml.html.RadioGroup._value__set()=lxml.html.RadioGroup-class.html#_value__set,Method lxml.html.SelectElement._value__set()=lxml.html.SelectElement-class.html#_value__set,Method lxml.html.TextareaElement._value__set()=lxml.html.TextareaElement-class.html#_value__set"><a title="lxml.html.CheckboxGroup._value__set
lxml.html.InputElement._value__set
lxml.html.RadioGroup._value__set
lxml.html.SelectElement._value__set
-lxml.html.TextareaElement._value__set" class="py-name" href="#" onclick="return doclink('link-664', '_value__set', 'link-664');">_value__set</a></tt><tt class="py-op">,</tt> <tt id="link-665" class="py-name" targets="Method lxml.html.CheckboxGroup._value__del()=lxml.html.CheckboxGroup-class.html#_value__del,Method lxml.html.InputElement._value__del()=lxml.html.InputElement-class.html#_value__del,Method lxml.html.RadioGroup._value__del()=lxml.html.RadioGroup-class.html#_value__del,Method lxml.html.SelectElement._value__del()=lxml.html.SelectElement-class.html#_value__del,Method lxml.html.TextareaElement._value__del()=lxml.html.TextareaElement-class.html#_value__del"><a title="lxml.html.CheckboxGroup._value__del
+lxml.html.TextareaElement._value__set" class="py-name" href="#" onclick="return doclink('link-653', '_value__set', 'link-653');">_value__set</a></tt><tt class="py-op">,</tt> <tt id="link-654" class="py-name" targets="Method lxml.html.CheckboxGroup._value__del()=lxml.html.CheckboxGroup-class.html#_value__del,Method lxml.html.InputElement._value__del()=lxml.html.InputElement-class.html#_value__del,Method lxml.html.RadioGroup._value__del()=lxml.html.RadioGroup-class.html#_value__del,Method lxml.html.SelectElement._value__del()=lxml.html.SelectElement-class.html#_value__del,Method lxml.html.TextareaElement._value__del()=lxml.html.TextareaElement-class.html#_value__del"><a title="lxml.html.CheckboxGroup._value__del
lxml.html.InputElement._value__del
lxml.html.RadioGroup._value__del
lxml.html.SelectElement._value__del
-lxml.html.TextareaElement._value__del" class="py-name" href="#" onclick="return doclink('link-665', '_value__del', 'link-665');">_value__del</a></tt><tt class="py-op">,</tt> <tt class="py-name">doc</tt><tt class="py-op">=</tt><tt id="link-666" class="py-name"><a title="lxml.html.CheckboxGroup._value__get
+lxml.html.TextareaElement._value__del" class="py-name" href="#" onclick="return doclink('link-654', '_value__del', 'link-654');">_value__del</a></tt><tt class="py-op">,</tt> <tt class="py-name">doc</tt><tt class="py-op">=</tt><tt id="link-655" class="py-name"><a title="lxml.html.CheckboxGroup._value__get
lxml.html.InputElement._value__get
lxml.html.RadioGroup._value__get
lxml.html.SelectElement._value__get
-lxml.html.TextareaElement._value__get" class="py-name" href="#" onclick="return doclink('link-666', '_value__get', 'link-663');">_value__get</a></tt><tt class="py-op">.</tt><tt id="link-667" class="py-name"><a title="lxml.html.ElementSoup.__doc__
-lxml.html.soupparser.__doc__" class="py-name" href="#" onclick="return doclink('link-667', '__doc__', 'link-64');">__doc__</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1058"></a><tt class="py-lineno">1058</tt> <tt class="py-line"> </tt>
-<a name="L1059"></a><tt class="py-lineno">1059</tt> <tt class="py-line"><tt id="link-668" class="py-name"><a title="lxml.html.HtmlElementClassLookup" class="py-name" href="#" onclick="return doclink('link-668', 'HtmlElementClassLookup', 'link-567');">HtmlElementClassLookup</a></tt><tt class="py-op">.</tt><tt id="link-669" class="py-name"><a title="lxml.html.HtmlElementClassLookup._default_element_classes" class="py-name" href="#" onclick="return doclink('link-669', '_default_element_classes', 'link-265');">_default_element_classes</a></tt><tt class="py-op">[</tt><tt class="py-string">'textarea'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-670" class="py-name" targets="Class lxml.html.TextareaElement=lxml.html.TextareaElement-class.html"><a title="lxml.html.TextareaElement" class="py-name" href="#" onclick="return doclink('link-670', 'TextareaElement', 'link-670');">TextareaElement</a></tt> </tt>
-<a name="L1060"></a><tt class="py-lineno">1060</tt> <tt class="py-line"> </tt>
-<a name="SelectElement"></a><div id="SelectElement-def"><a name="L1061"></a><tt class="py-lineno">1061</tt> <a class="py-toggle" href="#" id="SelectElement-toggle" onclick="return toggle('SelectElement');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.html.SelectElement-class.html">SelectElement</a><tt class="py-op">(</tt><tt class="py-base-class">InputMixin</tt><tt class="py-op">,</tt> <tt class="py-base-class">HtmlElement</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SelectElement-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="SelectElement-expanded"><a name="L1062"></a><tt class="py-lineno">1062</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1063"></a><tt class="py-lineno">1063</tt> <tt class="py-line"><tt class="py-docstring"> ``<select>`` element. You can get the name with ``.name``.</tt> </tt>
-<a name="L1064"></a><tt class="py-lineno">1064</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1065"></a><tt class="py-lineno">1065</tt> <tt class="py-line"><tt class="py-docstring"> ``.value`` will be the value of the selected option, unless this</tt> </tt>
-<a name="L1066"></a><tt class="py-lineno">1066</tt> <tt class="py-line"><tt class="py-docstring"> is a multi-select element (``<select multiple>``), in which case</tt> </tt>
-<a name="L1067"></a><tt class="py-lineno">1067</tt> <tt class="py-line"><tt class="py-docstring"> it will be a set-like object. In either case ``.value_options``</tt> </tt>
-<a name="L1068"></a><tt class="py-lineno">1068</tt> <tt class="py-line"><tt class="py-docstring"> gives the possible values.</tt> </tt>
-<a name="L1069"></a><tt class="py-lineno">1069</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1070"></a><tt class="py-lineno">1070</tt> <tt class="py-line"><tt class="py-docstring"> The boolean attribute ``.multiple`` shows if this is a</tt> </tt>
-<a name="L1071"></a><tt class="py-lineno">1071</tt> <tt class="py-line"><tt class="py-docstring"> multi-select.</tt> </tt>
-<a name="L1072"></a><tt class="py-lineno">1072</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1073"></a><tt class="py-lineno">1073</tt> <tt class="py-line"> </tt>
-<a name="SelectElement._value__get"></a><div id="SelectElement._value__get-def"><a name="L1074"></a><tt class="py-lineno">1074</tt> <a class="py-toggle" href="#" id="SelectElement._value__get-toggle" onclick="return toggle('SelectElement._value__get');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.SelectElement-class.html#_value__get">_value__get</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SelectElement._value__get-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="SelectElement._value__get-expanded"><a name="L1075"></a><tt class="py-lineno">1075</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1076"></a><tt class="py-lineno">1076</tt> <tt class="py-line"><tt class="py-docstring"> Get/set the value of this select (the selected option).</tt> </tt>
+lxml.html.TextareaElement._value__get" class="py-name" href="#" onclick="return doclink('link-655', '_value__get', 'link-652');">_value__get</a></tt><tt class="py-op">.</tt><tt id="link-656" class="py-name"><a title="lxml.html.ElementSoup.__doc__
+lxml.html.soupparser.__doc__" class="py-name" href="#" onclick="return doclink('link-656', '__doc__', 'link-64');">__doc__</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1066"></a><tt class="py-lineno">1066</tt> <tt class="py-line"> </tt>
+<a name="L1067"></a><tt class="py-lineno">1067</tt> <tt class="py-line"><tt id="link-657" class="py-name"><a title="lxml.html.HtmlElementClassLookup" class="py-name" href="#" onclick="return doclink('link-657', 'HtmlElementClassLookup', 'link-556');">HtmlElementClassLookup</a></tt><tt class="py-op">.</tt><tt id="link-658" class="py-name"><a title="lxml.html.HtmlElementClassLookup._default_element_classes" class="py-name" href="#" onclick="return doclink('link-658', '_default_element_classes', 'link-265');">_default_element_classes</a></tt><tt class="py-op">[</tt><tt class="py-string">'textarea'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-659" class="py-name" targets="Class lxml.html.TextareaElement=lxml.html.TextareaElement-class.html"><a title="lxml.html.TextareaElement" class="py-name" href="#" onclick="return doclink('link-659', 'TextareaElement', 'link-659');">TextareaElement</a></tt> </tt>
+<a name="L1068"></a><tt class="py-lineno">1068</tt> <tt class="py-line"> </tt>
+<a name="SelectElement"></a><div id="SelectElement-def"><a name="L1069"></a><tt class="py-lineno">1069</tt> <a class="py-toggle" href="#" id="SelectElement-toggle" onclick="return toggle('SelectElement');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.html.SelectElement-class.html">SelectElement</a><tt class="py-op">(</tt><tt class="py-base-class">InputMixin</tt><tt class="py-op">,</tt> <tt class="py-base-class">HtmlElement</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SelectElement-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="SelectElement-expanded"><a name="L1070"></a><tt class="py-lineno">1070</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1071"></a><tt class="py-lineno">1071</tt> <tt class="py-line"><tt class="py-docstring"> ``<select>`` element. You can get the name with ``.name``.</tt> </tt>
+<a name="L1072"></a><tt class="py-lineno">1072</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1073"></a><tt class="py-lineno">1073</tt> <tt class="py-line"><tt class="py-docstring"> ``.value`` will be the value of the selected option, unless this</tt> </tt>
+<a name="L1074"></a><tt class="py-lineno">1074</tt> <tt class="py-line"><tt class="py-docstring"> is a multi-select element (``<select multiple>``), in which case</tt> </tt>
+<a name="L1075"></a><tt class="py-lineno">1075</tt> <tt class="py-line"><tt class="py-docstring"> it will be a set-like object. In either case ``.value_options``</tt> </tt>
+<a name="L1076"></a><tt class="py-lineno">1076</tt> <tt class="py-line"><tt class="py-docstring"> gives the possible values.</tt> </tt>
<a name="L1077"></a><tt class="py-lineno">1077</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1078"></a><tt class="py-lineno">1078</tt> <tt class="py-line"><tt class="py-docstring"> If this is a multi-select, this is a set-like object that</tt> </tt>
-<a name="L1079"></a><tt class="py-lineno">1079</tt> <tt class="py-line"><tt class="py-docstring"> represents all the selected options.</tt> </tt>
-<a name="L1080"></a><tt class="py-lineno">1080</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1081"></a><tt class="py-lineno">1081</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-671" class="py-name"><a title="lxml.html.SelectElement.multiple" class="py-name" href="#" onclick="return doclink('link-671', 'multiple', 'link-520');">multiple</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1082"></a><tt class="py-lineno">1082</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-672" class="py-name" targets="Class lxml.html.MultipleSelectOptions=lxml.html.MultipleSelectOptions-class.html"><a title="lxml.html.MultipleSelectOptions" class="py-name" href="#" onclick="return doclink('link-672', 'MultipleSelectOptions', 'link-672');">MultipleSelectOptions</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
-<a name="L1083"></a><tt class="py-lineno">1083</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-673" class="py-name"><a title="lxml.html._options_xpath" class="py-name" href="#" onclick="return doclink('link-673', '_options_xpath', 'link-21');">_options_xpath</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1084"></a><tt class="py-lineno">1084</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-674" class="py-name"><a title="lxml.etree._Attrib.get
+<a name="L1078"></a><tt class="py-lineno">1078</tt> <tt class="py-line"><tt class="py-docstring"> The boolean attribute ``.multiple`` shows if this is a</tt> </tt>
+<a name="L1079"></a><tt class="py-lineno">1079</tt> <tt class="py-line"><tt class="py-docstring"> multi-select.</tt> </tt>
+<a name="L1080"></a><tt class="py-lineno">1080</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1081"></a><tt class="py-lineno">1081</tt> <tt class="py-line"> </tt>
+<a name="SelectElement._value__get"></a><div id="SelectElement._value__get-def"><a name="L1082"></a><tt class="py-lineno">1082</tt> <a class="py-toggle" href="#" id="SelectElement._value__get-toggle" onclick="return toggle('SelectElement._value__get');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.SelectElement-class.html#_value__get">_value__get</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SelectElement._value__get-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="SelectElement._value__get-expanded"><a name="L1083"></a><tt class="py-lineno">1083</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1084"></a><tt class="py-lineno">1084</tt> <tt class="py-line"><tt class="py-docstring"> Get/set the value of this select (the selected option).</tt> </tt>
+<a name="L1085"></a><tt class="py-lineno">1085</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1086"></a><tt class="py-lineno">1086</tt> <tt class="py-line"><tt class="py-docstring"> If this is a multi-select, this is a set-like object that</tt> </tt>
+<a name="L1087"></a><tt class="py-lineno">1087</tt> <tt class="py-line"><tt class="py-docstring"> represents all the selected options.</tt> </tt>
+<a name="L1088"></a><tt class="py-lineno">1088</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1089"></a><tt class="py-lineno">1089</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-660" class="py-name"><a title="lxml.html.SelectElement.multiple" class="py-name" href="#" onclick="return doclink('link-660', 'multiple', 'link-509');">multiple</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-keyword">return</tt> <tt id="link-661" class="py-name" targets="Class lxml.html.MultipleSelectOptions=lxml.html.MultipleSelectOptions-class.html"><a title="lxml.html.MultipleSelectOptions" class="py-name" href="#" onclick="return doclink('link-661', 'MultipleSelectOptions', 'link-661');">MultipleSelectOptions</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
+<a name="L1091"></a><tt class="py-lineno">1091</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-662" class="py-name"><a title="lxml.html._options_xpath" class="py-name" href="#" onclick="return doclink('link-662', '_options_xpath', 'link-21');">_options_xpath</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1092"></a><tt class="py-lineno">1092</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-663" 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-674', 'get', 'link-82');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'selected'</tt><tt class="py-op">)</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="L1085"></a><tt class="py-lineno">1085</tt> <tt class="py-line"> <tt id="link-675" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-663', 'get', 'link-82');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'selected'</tt><tt class="py-op">)</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="L1093"></a><tt class="py-lineno">1093</tt> <tt class="py-line"> <tt id="link-664" 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-675', 'value', 'link-176');">value</a></tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-676" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-664', 'value', 'link-176');">value</a></tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-665" 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-676', 'get', 'link-82');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'value'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1086"></a><tt class="py-lineno">1086</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-677" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-665', 'get', 'link-82');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'value'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1094"></a><tt class="py-lineno">1094</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-666" 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-677', 'value', 'link-176');">value</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L1087"></a><tt class="py-lineno">1087</tt> <tt class="py-line"> <tt id="link-678" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-666', 'value', 'link-176');">value</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L1095"></a><tt class="py-lineno">1095</tt> <tt class="py-line"> <tt id="link-667" 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-678', 'value', 'link-176');">value</a></tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-679" class="py-name"><a title="lxml.etree.QName.text
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-667', 'value', 'link-176');">value</a></tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-668" 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-679', 'text', 'link-104');">text</a></tt> <tt class="py-keyword">or</tt> <tt class="py-string">''</tt> </tt>
-<a name="L1088"></a><tt class="py-lineno">1088</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-680" class="py-name"><a title="lxml.html.CheckboxGroup.value
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-668', 'text', 'link-104');">text</a></tt> <tt class="py-keyword">or</tt> <tt class="py-string">''</tt> </tt>
+<a name="L1096"></a><tt class="py-lineno">1096</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-669" 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-680', 'value', 'link-176');">value</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1089"></a><tt class="py-lineno">1089</tt> <tt class="py-line"> <tt id="link-681" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-669', 'value', 'link-176');">value</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1097"></a><tt class="py-lineno">1097</tt> <tt class="py-line"> <tt id="link-670" 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-681', 'value', 'link-176');">value</a></tt> <tt class="py-op">=</tt> <tt id="link-682" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-670', 'value', 'link-176');">value</a></tt> <tt class="py-op">=</tt> <tt id="link-671" 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-682', 'value', 'link-176');">value</a></tt><tt class="py-op">.</tt><tt id="link-683" class="py-name"><a title="lxml.doctestcompare.strip" class="py-name" href="#" onclick="return doclink('link-683', 'strip', 'link-216');">strip</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1090"></a><tt class="py-lineno">1090</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-684" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-671', 'value', 'link-176');">value</a></tt><tt class="py-op">.</tt><tt id="link-672" class="py-name"><a title="lxml.doctestcompare.strip" class="py-name" href="#" onclick="return doclink('link-672', 'strip', 'link-216');">strip</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1098"></a><tt class="py-lineno">1098</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-673" 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-684', 'value', 'link-176');">value</a></tt> </tt>
-<a name="L1091"></a><tt class="py-lineno">1091</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
-</div><a name="L1092"></a><tt class="py-lineno">1092</tt> <tt class="py-line"> </tt>
-<a name="SelectElement._value__set"></a><div id="SelectElement._value__set-def"><a name="L1093"></a><tt class="py-lineno">1093</tt> <a class="py-toggle" href="#" id="SelectElement._value__set-toggle" onclick="return toggle('SelectElement._value__set');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.SelectElement-class.html#_value__set">_value__set</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SelectElement._value__set-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="SelectElement._value__set-expanded"><a name="L1094"></a><tt class="py-lineno">1094</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-685" class="py-name"><a title="lxml.html.SelectElement.multiple" class="py-name" href="#" onclick="return doclink('link-685', 'multiple', 'link-520');">multiple</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1095"></a><tt class="py-lineno">1095</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-686" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-673', 'value', 'link-176');">value</a></tt> </tt>
+<a name="L1099"></a><tt class="py-lineno">1099</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
+</div><a name="L1100"></a><tt class="py-lineno">1100</tt> <tt class="py-line"> </tt>
+<a name="SelectElement._value__set"></a><div id="SelectElement._value__set-def"><a name="L1101"></a><tt class="py-lineno">1101</tt> <a class="py-toggle" href="#" id="SelectElement._value__set-toggle" onclick="return toggle('SelectElement._value__set');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.SelectElement-class.html#_value__set">_value__set</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SelectElement._value__set-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="SelectElement._value__set-expanded"><a name="L1102"></a><tt class="py-lineno">1102</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-674" class="py-name"><a title="lxml.html.SelectElement.multiple" class="py-name" href="#" onclick="return doclink('link-674', 'multiple', 'link-509');">multiple</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-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-675" 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-686', 'value', 'link-176');">value</a></tt><tt class="py-op">,</tt> <tt id="link-687" class="py-name"><a title="lxml.html.basestring
-lxml.html.clean.basestring" class="py-name" href="#" onclick="return doclink('link-687', 'basestring', 'link-13');">basestring</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1096"></a><tt class="py-lineno">1096</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">TypeError</tt><tt class="py-op">(</tt> </tt>
-<a name="L1097"></a><tt class="py-lineno">1097</tt> <tt class="py-line"> <tt class="py-string">"You must pass in a sequence"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1098"></a><tt class="py-lineno">1098</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-688" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-675', 'value', 'link-176');">value</a></tt><tt class="py-op">,</tt> <tt id="link-676" class="py-name"><a title="lxml.html.basestring
+lxml.html.clean.basestring" class="py-name" href="#" onclick="return doclink('link-676', 'basestring', 'link-13');">basestring</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1104"></a><tt class="py-lineno">1104</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">TypeError</tt><tt class="py-op">(</tt> </tt>
+<a name="L1105"></a><tt class="py-lineno">1105</tt> <tt class="py-line"> <tt class="py-string">"You must pass in a sequence"</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">self</tt><tt class="py-op">.</tt><tt id="link-677" 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-688', 'value', 'link-176');">value</a></tt><tt class="py-op">.</tt><tt id="link-689" class="py-name" targets="Method lxml.etree._Attrib.clear()=lxml.etree._Attrib-class.html#clear,Method lxml.etree._Element.clear()=lxml.etree._Element-class.html#clear,Method lxml.etree._ErrorLog.clear()=lxml.etree._ErrorLog-class.html#clear"><a title="lxml.etree._Attrib.clear
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-677', 'value', 'link-176');">value</a></tt><tt class="py-op">.</tt><tt id="link-678" class="py-name" targets="Method lxml.etree._Attrib.clear()=lxml.etree._Attrib-class.html#clear,Method lxml.etree._Element.clear()=lxml.etree._Element-class.html#clear,Method lxml.etree._ErrorLog.clear()=lxml.etree._ErrorLog-class.html#clear"><a title="lxml.etree._Attrib.clear
lxml.etree._Element.clear
-lxml.etree._ErrorLog.clear" class="py-name" href="#" onclick="return doclink('link-689', 'clear', 'link-689');">clear</a></tt><tt class="py-op">(</tt><tt class="py-op">)</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 id="link-690" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.etree._ErrorLog.clear" class="py-name" href="#" onclick="return doclink('link-678', 'clear', 'link-678');">clear</a></tt><tt class="py-op">(</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 id="link-679" 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-690', 'value', 'link-176');">value</a></tt><tt class="py-op">.</tt><tt id="link-691" class="py-name" targets="Method lxml.etree._Attrib.update()=lxml.etree._Attrib-class.html#update"><a title="lxml.etree._Attrib.update" class="py-name" href="#" onclick="return doclink('link-691', 'update', 'link-691');">update</a></tt><tt class="py-op">(</tt><tt id="link-692" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-679', 'value', 'link-176');">value</a></tt><tt class="py-op">.</tt><tt id="link-680" class="py-name" targets="Method lxml.etree._Attrib.update()=lxml.etree._Attrib-class.html#update"><a title="lxml.etree._Attrib.update" class="py-name" href="#" onclick="return doclink('link-680', 'update', 'link-680');">update</a></tt><tt class="py-op">(</tt><tt id="link-681" 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-692', 'value', 'link-176');">value</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-keyword">return</tt> </tt>
-<a name="L1101"></a><tt class="py-lineno">1101</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-693" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-681', 'value', 'link-176');">value</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1108"></a><tt class="py-lineno">1108</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L1109"></a><tt class="py-lineno">1109</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-682" 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-693', 'value', 'link-176');">value</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="L1102"></a><tt class="py-lineno">1102</tt> <tt class="py-line"> <tt id="link-694" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-682', 'value', 'link-176');">value</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="L1110"></a><tt class="py-lineno">1110</tt> <tt class="py-line"> <tt id="link-683" 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-694', 'value', 'link-176');">value</a></tt> <tt class="py-op">=</tt> <tt id="link-695" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-683', 'value', 'link-176');">value</a></tt> <tt class="py-op">=</tt> <tt id="link-684" 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-695', 'value', 'link-176');">value</a></tt><tt class="py-op">.</tt><tt id="link-696" class="py-name"><a title="lxml.doctestcompare.strip" class="py-name" href="#" onclick="return doclink('link-696', 'strip', 'link-216');">strip</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1103"></a><tt class="py-lineno">1103</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-697" class="py-name"><a title="lxml.html._options_xpath" class="py-name" href="#" onclick="return doclink('link-697', '_options_xpath', 'link-21');">_options_xpath</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</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">opt_value</tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-698" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-684', 'value', 'link-176');">value</a></tt><tt class="py-op">.</tt><tt id="link-685" class="py-name"><a title="lxml.doctestcompare.strip" class="py-name" href="#" onclick="return doclink('link-685', 'strip', 'link-216');">strip</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1111"></a><tt class="py-lineno">1111</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-686" class="py-name"><a title="lxml.html._options_xpath" class="py-name" href="#" onclick="return doclink('link-686', '_options_xpath', 'link-21');">_options_xpath</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1112"></a><tt class="py-lineno">1112</tt> <tt class="py-line"> <tt class="py-name">opt_value</tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-687" 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-698', 'get', 'link-82');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'value'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1105"></a><tt class="py-lineno">1105</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">opt_value</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</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">opt_value</tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-699" class="py-name"><a title="lxml.etree.QName.text
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-687', 'get', 'link-82');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'value'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1113"></a><tt class="py-lineno">1113</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">opt_value</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</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">opt_value</tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-688" 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-699', 'text', 'link-104');">text</a></tt> <tt class="py-keyword">or</tt> <tt class="py-string">''</tt> </tt>
-<a name="L1107"></a><tt class="py-lineno">1107</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">opt_value</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">opt_value</tt> <tt class="py-op">=</tt> <tt class="py-name">opt_value</tt><tt class="py-op">.</tt><tt id="link-700" class="py-name"><a title="lxml.doctestcompare.strip" class="py-name" href="#" onclick="return doclink('link-700', 'strip', 'link-216');">strip</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1109"></a><tt class="py-lineno">1109</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">opt_value</tt> <tt class="py-op">==</tt> <tt id="link-701" class="py-name"><a title="lxml.html.CheckboxGroup.value
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-688', 'text', 'link-104');">text</a></tt> <tt class="py-keyword">or</tt> <tt class="py-string">''</tt> </tt>
+<a name="L1115"></a><tt class="py-lineno">1115</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">opt_value</tt><tt class="py-op">:</tt> </tt>
+<a name="L1116"></a><tt class="py-lineno">1116</tt> <tt class="py-line"> <tt class="py-name">opt_value</tt> <tt class="py-op">=</tt> <tt class="py-name">opt_value</tt><tt class="py-op">.</tt><tt id="link-689" class="py-name"><a title="lxml.doctestcompare.strip" class="py-name" href="#" onclick="return doclink('link-689', 'strip', 'link-216');">strip</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1117"></a><tt class="py-lineno">1117</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">opt_value</tt> <tt class="py-op">==</tt> <tt id="link-690" 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-701', 'value', 'link-176');">value</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">checked_option</tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt> </tt>
-<a name="L1111"></a><tt class="py-lineno">1111</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
-<a name="L1112"></a><tt class="py-lineno">1112</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1113"></a><tt class="py-lineno">1113</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">ValueError</tt><tt class="py-op">(</tt> </tt>
-<a name="L1114"></a><tt class="py-lineno">1114</tt> <tt class="py-line"> <tt class="py-string">"There is no option with the value of %r"</tt> <tt class="py-op">%</tt> <tt id="link-702" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-690', 'value', 'link-176');">value</a></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">checked_option</tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt> </tt>
+<a name="L1119"></a><tt class="py-lineno">1119</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
+<a name="L1120"></a><tt class="py-lineno">1120</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1121"></a><tt class="py-lineno">1121</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">ValueError</tt><tt class="py-op">(</tt> </tt>
+<a name="L1122"></a><tt class="py-lineno">1122</tt> <tt class="py-line"> <tt class="py-string">"There is no option with the value of %r"</tt> <tt class="py-op">%</tt> <tt id="link-691" 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-702', 'value', 'link-176');">value</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1115"></a><tt class="py-lineno">1115</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-703" class="py-name"><a title="lxml.html._options_xpath" class="py-name" href="#" onclick="return doclink('link-703', '_options_xpath', 'link-21');">_options_xpath</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1116"></a><tt class="py-lineno">1116</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'selected'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-704" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-691', 'value', 'link-176');">value</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1123"></a><tt class="py-lineno">1123</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-692" class="py-name"><a title="lxml.html._options_xpath" class="py-name" href="#" onclick="return doclink('link-692', '_options_xpath', 'link-21');">_options_xpath</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1124"></a><tt class="py-lineno">1124</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'selected'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-693" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-704', 'attrib', 'link-94');">attrib</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1117"></a><tt class="py-lineno">1117</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-705" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-693', 'attrib', 'link-94');">attrib</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-keyword">del</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-694" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-705', 'attrib', 'link-94');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'selected'</tt><tt class="py-op">]</tt> </tt>
-<a name="L1118"></a><tt class="py-lineno">1118</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-706" class="py-name"><a title="lxml.html.CheckboxGroup.value
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-694', 'attrib', 'link-94');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'selected'</tt><tt class="py-op">]</tt> </tt>
+<a name="L1126"></a><tt class="py-lineno">1126</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-695" 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-706', 'value', 'link-176');">value</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="L1119"></a><tt class="py-lineno">1119</tt> <tt class="py-line"> <tt class="py-name">checked_option</tt><tt class="py-op">.</tt><tt id="link-707" class="py-name"><a title="lxml.etree._Element.set
-lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-707', 'set', 'link-9');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'selected'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1120"></a><tt class="py-lineno">1120</tt> <tt class="py-line"> </tt>
-<a name="SelectElement._value__del"></a><div id="SelectElement._value__del-def"><a name="L1121"></a><tt class="py-lineno">1121</tt> <a class="py-toggle" href="#" id="SelectElement._value__del-toggle" onclick="return toggle('SelectElement._value__del');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.SelectElement-class.html#_value__del">_value__del</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SelectElement._value__del-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="SelectElement._value__del-expanded"><a name="L1122"></a><tt class="py-lineno">1122</tt> <tt class="py-line"> <tt class="py-comment"># FIXME: should del be allowed at all?</tt> </tt>
-<a name="L1123"></a><tt class="py-lineno">1123</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-708" class="py-name"><a title="lxml.html.SelectElement.multiple" class="py-name" href="#" onclick="return doclink('link-708', 'multiple', 'link-520');">multiple</a></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 id="link-709" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-695', 'value', 'link-176');">value</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="L1127"></a><tt class="py-lineno">1127</tt> <tt class="py-line"> <tt class="py-name">checked_option</tt><tt class="py-op">.</tt><tt id="link-696" class="py-name"><a title="lxml.etree._Element.set
+lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-696', 'set', 'link-9');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'selected'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1128"></a><tt class="py-lineno">1128</tt> <tt class="py-line"> </tt>
+<a name="SelectElement._value__del"></a><div id="SelectElement._value__del-def"><a name="L1129"></a><tt class="py-lineno">1129</tt> <a class="py-toggle" href="#" id="SelectElement._value__del-toggle" onclick="return toggle('SelectElement._value__del');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.SelectElement-class.html#_value__del">_value__del</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SelectElement._value__del-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="SelectElement._value__del-expanded"><a name="L1130"></a><tt class="py-lineno">1130</tt> <tt class="py-line"> <tt class="py-comment"># FIXME: should del be allowed at all?</tt> </tt>
+<a name="L1131"></a><tt class="py-lineno">1131</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-697" class="py-name"><a title="lxml.html.SelectElement.multiple" class="py-name" href="#" onclick="return doclink('link-697', 'multiple', 'link-509');">multiple</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">self</tt><tt class="py-op">.</tt><tt id="link-698" 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-709', 'value', 'link-176');">value</a></tt><tt class="py-op">.</tt><tt id="link-710" class="py-name"><a title="lxml.etree._Attrib.clear
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-698', 'value', 'link-176');">value</a></tt><tt class="py-op">.</tt><tt id="link-699" class="py-name"><a title="lxml.etree._Attrib.clear
lxml.etree._Element.clear
-lxml.etree._ErrorLog.clear" class="py-name" href="#" onclick="return doclink('link-710', 'clear', 'link-689');">clear</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1125"></a><tt class="py-lineno">1125</tt> <tt class="py-line"> <tt class="py-keyword">else</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">self</tt><tt class="py-op">.</tt><tt id="link-711" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.etree._ErrorLog.clear" class="py-name" href="#" onclick="return doclink('link-699', 'clear', 'link-678');">clear</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1133"></a><tt class="py-lineno">1133</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1134"></a><tt class="py-lineno">1134</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-700" 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-711', 'value', 'link-176');">value</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-</div><a name="L1127"></a><tt class="py-lineno">1127</tt> <tt class="py-line"> </tt>
-<a name="L1128"></a><tt class="py-lineno">1128</tt> <tt class="py-line"> <tt id="link-712" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-700', 'value', 'link-176');">value</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+</div><a name="L1135"></a><tt class="py-lineno">1135</tt> <tt class="py-line"> </tt>
+<a name="L1136"></a><tt class="py-lineno">1136</tt> <tt class="py-line"> <tt id="link-701" 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-712', 'value', 'link-176');">value</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-713" class="py-name"><a title="lxml.html.CheckboxGroup._value__get
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-701', 'value', 'link-176');">value</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-702" class="py-name"><a title="lxml.html.CheckboxGroup._value__get
lxml.html.InputElement._value__get
lxml.html.RadioGroup._value__get
lxml.html.SelectElement._value__get
-lxml.html.TextareaElement._value__get" class="py-name" href="#" onclick="return doclink('link-713', '_value__get', 'link-663');">_value__get</a></tt><tt class="py-op">,</tt> <tt id="link-714" class="py-name"><a title="lxml.html.CheckboxGroup._value__set
+lxml.html.TextareaElement._value__get" class="py-name" href="#" onclick="return doclink('link-702', '_value__get', 'link-652');">_value__get</a></tt><tt class="py-op">,</tt> <tt id="link-703" class="py-name"><a title="lxml.html.CheckboxGroup._value__set
lxml.html.InputElement._value__set
lxml.html.RadioGroup._value__set
lxml.html.SelectElement._value__set
-lxml.html.TextareaElement._value__set" class="py-name" href="#" onclick="return doclink('link-714', '_value__set', 'link-664');">_value__set</a></tt><tt class="py-op">,</tt> <tt id="link-715" class="py-name"><a title="lxml.html.CheckboxGroup._value__del
+lxml.html.TextareaElement._value__set" class="py-name" href="#" onclick="return doclink('link-703', '_value__set', 'link-653');">_value__set</a></tt><tt class="py-op">,</tt> <tt id="link-704" class="py-name"><a title="lxml.html.CheckboxGroup._value__del
lxml.html.InputElement._value__del
lxml.html.RadioGroup._value__del
lxml.html.SelectElement._value__del
-lxml.html.TextareaElement._value__del" class="py-name" href="#" onclick="return doclink('link-715', '_value__del', 'link-665');">_value__del</a></tt><tt class="py-op">,</tt> <tt class="py-name">doc</tt><tt class="py-op">=</tt><tt id="link-716" class="py-name"><a title="lxml.html.CheckboxGroup._value__get
+lxml.html.TextareaElement._value__del" class="py-name" href="#" onclick="return doclink('link-704', '_value__del', 'link-654');">_value__del</a></tt><tt class="py-op">,</tt> <tt class="py-name">doc</tt><tt class="py-op">=</tt><tt id="link-705" class="py-name"><a title="lxml.html.CheckboxGroup._value__get
lxml.html.InputElement._value__get
lxml.html.RadioGroup._value__get
lxml.html.SelectElement._value__get
-lxml.html.TextareaElement._value__get" class="py-name" href="#" onclick="return doclink('link-716', '_value__get', 'link-663');">_value__get</a></tt><tt class="py-op">.</tt><tt id="link-717" class="py-name"><a title="lxml.html.ElementSoup.__doc__
-lxml.html.soupparser.__doc__" class="py-name" href="#" onclick="return doclink('link-717', '__doc__', 'link-64');">__doc__</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1129"></a><tt class="py-lineno">1129</tt> <tt class="py-line"> </tt>
-<a name="SelectElement.value_options"></a><div id="SelectElement.value_options-def"><a name="L1130"></a><tt class="py-lineno">1130</tt> <a class="py-toggle" href="#" id="SelectElement.value_options-toggle" onclick="return toggle('SelectElement.value_options');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.SelectElement-class.html#value_options">value_options</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SelectElement.value_options-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="SelectElement.value_options-expanded"><a name="L1131"></a><tt class="py-lineno">1131</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1132"></a><tt class="py-lineno">1132</tt> <tt class="py-line"><tt class="py-docstring"> All the possible values this select can have (the ``value``</tt> </tt>
-<a name="L1133"></a><tt class="py-lineno">1133</tt> <tt class="py-line"><tt class="py-docstring"> attribute of all the ``<option>`` elements.</tt> </tt>
-<a name="L1134"></a><tt class="py-lineno">1134</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1135"></a><tt class="py-lineno">1135</tt> <tt class="py-line"> <tt id="link-718" class="py-name" targets="Variable lxml.etree.XSLTAccessControl.options=lxml.etree.XSLTAccessControl-class.html#options,Variable lxml.html.MultipleSelectOptions.options=lxml.html.MultipleSelectOptions-class.html#options"><a title="lxml.etree.XSLTAccessControl.options
-lxml.html.MultipleSelectOptions.options" class="py-name" href="#" onclick="return doclink('link-718', 'options', 'link-718');">options</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L1136"></a><tt class="py-lineno">1136</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-719" class="py-name"><a title="lxml.html._options_xpath" class="py-name" href="#" onclick="return doclink('link-719', '_options_xpath', 'link-21');">_options_xpath</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1137"></a><tt class="py-lineno">1137</tt> <tt class="py-line"> <tt id="link-720" 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-720', 'value', 'link-176');">value</a></tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-721" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.html.TextareaElement._value__get" class="py-name" href="#" onclick="return doclink('link-705', '_value__get', 'link-652');">_value__get</a></tt><tt class="py-op">.</tt><tt id="link-706" class="py-name"><a title="lxml.html.ElementSoup.__doc__
+lxml.html.soupparser.__doc__" class="py-name" href="#" onclick="return doclink('link-706', '__doc__', 'link-64');">__doc__</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1137"></a><tt class="py-lineno">1137</tt> <tt class="py-line"> </tt>
+<a name="SelectElement.value_options"></a><div id="SelectElement.value_options-def"><a name="L1138"></a><tt class="py-lineno">1138</tt> <a class="py-toggle" href="#" id="SelectElement.value_options-toggle" onclick="return toggle('SelectElement.value_options');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.SelectElement-class.html#value_options">value_options</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SelectElement.value_options-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="SelectElement.value_options-expanded"><a name="L1139"></a><tt class="py-lineno">1139</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1140"></a><tt class="py-lineno">1140</tt> <tt class="py-line"><tt class="py-docstring"> All the possible values this select can have (the ``value``</tt> </tt>
+<a name="L1141"></a><tt class="py-lineno">1141</tt> <tt class="py-line"><tt class="py-docstring"> attribute of all the ``<option>`` elements.</tt> </tt>
+<a name="L1142"></a><tt class="py-lineno">1142</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1143"></a><tt class="py-lineno">1143</tt> <tt class="py-line"> <tt id="link-707" class="py-name" targets="Variable lxml.etree.XSLTAccessControl.options=lxml.etree.XSLTAccessControl-class.html#options,Variable lxml.html.MultipleSelectOptions.options=lxml.html.MultipleSelectOptions-class.html#options"><a title="lxml.etree.XSLTAccessControl.options
+lxml.html.MultipleSelectOptions.options" class="py-name" href="#" onclick="return doclink('link-707', 'options', 'link-707');">options</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L1144"></a><tt class="py-lineno">1144</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-708" class="py-name"><a title="lxml.html._options_xpath" class="py-name" href="#" onclick="return doclink('link-708', '_options_xpath', 'link-21');">_options_xpath</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1145"></a><tt class="py-lineno">1145</tt> <tt class="py-line"> <tt id="link-709" 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-709', 'value', 'link-176');">value</a></tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-710" 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-721', 'get', 'link-82');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'value'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1138"></a><tt class="py-lineno">1138</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-722" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-710', 'get', 'link-82');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'value'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1146"></a><tt class="py-lineno">1146</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-711" 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-722', 'value', 'link-176');">value</a></tt> <tt class="py-keyword">is</tt> <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 id="link-723" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-711', 'value', 'link-176');">value</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L1147"></a><tt class="py-lineno">1147</tt> <tt class="py-line"> <tt id="link-712" 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-723', 'value', 'link-176');">value</a></tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-724" class="py-name"><a title="lxml.etree.QName.text
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-712', 'value', 'link-176');">value</a></tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-713" 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-724', 'text', 'link-104');">text</a></tt> <tt class="py-keyword">or</tt> <tt class="py-string">''</tt> </tt>
-<a name="L1140"></a><tt class="py-lineno">1140</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-725" class="py-name"><a title="lxml.html.CheckboxGroup.value
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-713', 'text', 'link-104');">text</a></tt> <tt class="py-keyword">or</tt> <tt class="py-string">''</tt> </tt>
+<a name="L1148"></a><tt class="py-lineno">1148</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-714" 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-725', 'value', 'link-176');">value</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1141"></a><tt class="py-lineno">1141</tt> <tt class="py-line"> <tt id="link-726" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-714', 'value', 'link-176');">value</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1149"></a><tt class="py-lineno">1149</tt> <tt class="py-line"> <tt id="link-715" 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-726', 'value', 'link-176');">value</a></tt> <tt class="py-op">=</tt> <tt id="link-727" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-715', 'value', 'link-176');">value</a></tt> <tt class="py-op">=</tt> <tt id="link-716" 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-727', 'value', 'link-176');">value</a></tt><tt class="py-op">.</tt><tt id="link-728" class="py-name"><a title="lxml.doctestcompare.strip" class="py-name" href="#" onclick="return doclink('link-728', 'strip', 'link-216');">strip</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1142"></a><tt class="py-lineno">1142</tt> <tt class="py-line"> <tt id="link-729" class="py-name"><a title="lxml.etree.XSLTAccessControl.options
-lxml.html.MultipleSelectOptions.options" class="py-name" href="#" onclick="return doclink('link-729', 'options', 'link-718');">options</a></tt><tt class="py-op">.</tt><tt id="link-730" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-730', 'append', 'link-275');">append</a></tt><tt class="py-op">(</tt><tt id="link-731" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-716', 'value', 'link-176');">value</a></tt><tt class="py-op">.</tt><tt id="link-717" class="py-name"><a title="lxml.doctestcompare.strip" class="py-name" href="#" onclick="return doclink('link-717', 'strip', 'link-216');">strip</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1150"></a><tt class="py-lineno">1150</tt> <tt class="py-line"> <tt id="link-718" class="py-name"><a title="lxml.etree.XSLTAccessControl.options
+lxml.html.MultipleSelectOptions.options" class="py-name" href="#" onclick="return doclink('link-718', 'options', 'link-707');">options</a></tt><tt class="py-op">.</tt><tt id="link-719" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-719', 'append', 'link-275');">append</a></tt><tt class="py-op">(</tt><tt id="link-720" 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-731', 'value', 'link-176');">value</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1143"></a><tt class="py-lineno">1143</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-732" class="py-name"><a title="lxml.etree.XSLTAccessControl.options
-lxml.html.MultipleSelectOptions.options" class="py-name" href="#" onclick="return doclink('link-732', 'options', 'link-718');">options</a></tt> </tt>
-</div><a name="L1144"></a><tt class="py-lineno">1144</tt> <tt class="py-line"> <tt id="link-733" class="py-name" targets="Variable lxml.html.CheckboxGroup.value_options=lxml.html.CheckboxGroup-class.html#value_options,Variable lxml.html.RadioGroup.value_options=lxml.html.RadioGroup-class.html#value_options,Variable lxml.html.SelectElement.value_options=lxml.html.SelectElement-class.html#value_options"><a title="lxml.html.CheckboxGroup.value_options
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-720', 'value', 'link-176');">value</a></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">return</tt> <tt id="link-721" class="py-name"><a title="lxml.etree.XSLTAccessControl.options
+lxml.html.MultipleSelectOptions.options" class="py-name" href="#" onclick="return doclink('link-721', 'options', 'link-707');">options</a></tt> </tt>
+</div><a name="L1152"></a><tt class="py-lineno">1152</tt> <tt class="py-line"> <tt id="link-722" class="py-name" targets="Variable lxml.html.CheckboxGroup.value_options=lxml.html.CheckboxGroup-class.html#value_options,Variable lxml.html.RadioGroup.value_options=lxml.html.RadioGroup-class.html#value_options,Variable lxml.html.SelectElement.value_options=lxml.html.SelectElement-class.html#value_options"><a title="lxml.html.CheckboxGroup.value_options
lxml.html.RadioGroup.value_options
-lxml.html.SelectElement.value_options" class="py-name" href="#" onclick="return doclink('link-733', 'value_options', 'link-733');">value_options</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-734" class="py-name"><a title="lxml.html.CheckboxGroup.value_options
+lxml.html.SelectElement.value_options" class="py-name" href="#" onclick="return doclink('link-722', 'value_options', 'link-722');">value_options</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-723" class="py-name"><a title="lxml.html.CheckboxGroup.value_options
lxml.html.RadioGroup.value_options
-lxml.html.SelectElement.value_options" class="py-name" href="#" onclick="return doclink('link-734', 'value_options', 'link-733');">value_options</a></tt><tt class="py-op">,</tt> <tt class="py-name">doc</tt><tt class="py-op">=</tt><tt id="link-735" class="py-name"><a title="lxml.html.CheckboxGroup.value_options
+lxml.html.SelectElement.value_options" class="py-name" href="#" onclick="return doclink('link-723', 'value_options', 'link-722');">value_options</a></tt><tt class="py-op">,</tt> <tt class="py-name">doc</tt><tt class="py-op">=</tt><tt id="link-724" class="py-name"><a title="lxml.html.CheckboxGroup.value_options
lxml.html.RadioGroup.value_options
-lxml.html.SelectElement.value_options" class="py-name" href="#" onclick="return doclink('link-735', 'value_options', 'link-733');">value_options</a></tt><tt class="py-op">.</tt><tt id="link-736" class="py-name"><a title="lxml.html.ElementSoup.__doc__
-lxml.html.soupparser.__doc__" class="py-name" href="#" onclick="return doclink('link-736', '__doc__', 'link-64');">__doc__</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1145"></a><tt class="py-lineno">1145</tt> <tt class="py-line"> </tt>
-<a name="SelectElement._multiple__get"></a><div id="SelectElement._multiple__get-def"><a name="L1146"></a><tt class="py-lineno">1146</tt> <a class="py-toggle" href="#" id="SelectElement._multiple__get-toggle" onclick="return toggle('SelectElement._multiple__get');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.SelectElement-class.html#_multiple__get">_multiple__get</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SelectElement._multiple__get-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="SelectElement._multiple__get-expanded"><a name="L1147"></a><tt class="py-lineno">1147</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1148"></a><tt class="py-lineno">1148</tt> <tt class="py-line"><tt class="py-docstring"> Boolean attribute: is there a ``multiple`` attribute on this element.</tt> </tt>
-<a name="L1149"></a><tt class="py-lineno">1149</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1150"></a><tt class="py-lineno">1150</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">'multiple'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-737" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.html.SelectElement.value_options" class="py-name" href="#" onclick="return doclink('link-724', 'value_options', 'link-722');">value_options</a></tt><tt class="py-op">.</tt><tt id="link-725" class="py-name"><a title="lxml.html.ElementSoup.__doc__
+lxml.html.soupparser.__doc__" class="py-name" href="#" onclick="return doclink('link-725', '__doc__', 'link-64');">__doc__</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1153"></a><tt class="py-lineno">1153</tt> <tt class="py-line"> </tt>
+<a name="SelectElement._multiple__get"></a><div id="SelectElement._multiple__get-def"><a name="L1154"></a><tt class="py-lineno">1154</tt> <a class="py-toggle" href="#" id="SelectElement._multiple__get-toggle" onclick="return toggle('SelectElement._multiple__get');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.SelectElement-class.html#_multiple__get">_multiple__get</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SelectElement._multiple__get-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="SelectElement._multiple__get-expanded"><a name="L1155"></a><tt class="py-lineno">1155</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1156"></a><tt class="py-lineno">1156</tt> <tt class="py-line"><tt class="py-docstring"> Boolean attribute: is there a ``multiple`` attribute on this element.</tt> </tt>
+<a name="L1157"></a><tt class="py-lineno">1157</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1158"></a><tt class="py-lineno">1158</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">'multiple'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-726" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-737', 'attrib', 'link-94');">attrib</a></tt> </tt>
-</div><a name="SelectElement._multiple__set"></a><div id="SelectElement._multiple__set-def"><a name="L1151"></a><tt class="py-lineno">1151</tt> <a class="py-toggle" href="#" id="SelectElement._multiple__set-toggle" onclick="return toggle('SelectElement._multiple__set');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.SelectElement-class.html#_multiple__set">_multiple__set</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SelectElement._multiple__set-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="SelectElement._multiple__set-expanded"><a name="L1152"></a><tt class="py-lineno">1152</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-738" class="py-name"><a title="lxml.html.CheckboxGroup.value
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-726', 'attrib', 'link-94');">attrib</a></tt> </tt>
+</div><a name="SelectElement._multiple__set"></a><div id="SelectElement._multiple__set-def"><a name="L1159"></a><tt class="py-lineno">1159</tt> <a class="py-toggle" href="#" id="SelectElement._multiple__set-toggle" onclick="return toggle('SelectElement._multiple__set');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.SelectElement-class.html#_multiple__set">_multiple__set</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SelectElement._multiple__set-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="SelectElement._multiple__set-expanded"><a name="L1160"></a><tt class="py-lineno">1160</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-727" 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-738', 'value', 'link-176');">value</a></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">self</tt><tt class="py-op">.</tt><tt id="link-739" class="py-name"><a title="lxml.etree._Element.set
-lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-739', 'set', 'link-9');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'multiple'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1154"></a><tt class="py-lineno">1154</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-string">'multiple'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-740" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-727', 'value', 'link-176');">value</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1161"></a><tt class="py-lineno">1161</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-728" class="py-name"><a title="lxml.etree._Element.set
+lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-728', 'set', 'link-9');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'multiple'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1162"></a><tt class="py-lineno">1162</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-string">'multiple'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-729" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-740', 'attrib', 'link-94');">attrib</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1155"></a><tt class="py-lineno">1155</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-741" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-729', 'attrib', 'link-94');">attrib</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1163"></a><tt class="py-lineno">1163</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-730" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-741', 'attrib', 'link-94');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'multiple'</tt><tt class="py-op">]</tt> </tt>
-</div><a name="L1156"></a><tt class="py-lineno">1156</tt> <tt class="py-line"> <tt id="link-742" class="py-name"><a title="lxml.html.SelectElement.multiple" class="py-name" href="#" onclick="return doclink('link-742', 'multiple', 'link-520');">multiple</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-743" class="py-name" targets="Method lxml.html.SelectElement._multiple__get()=lxml.html.SelectElement-class.html#_multiple__get"><a title="lxml.html.SelectElement._multiple__get" class="py-name" href="#" onclick="return doclink('link-743', '_multiple__get', 'link-743');">_multiple__get</a></tt><tt class="py-op">,</tt> <tt id="link-744" class="py-name" targets="Method lxml.html.SelectElement._multiple__set()=lxml.html.SelectElement-class.html#_multiple__set"><a title="lxml.html.SelectElement._multiple__set" class="py-name" href="#" onclick="return doclink('link-744', '_multiple__set', 'link-744');">_multiple__set</a></tt><tt class="py-op">,</tt> <tt class="py-name">doc</tt><tt class="py-op">=</tt><tt id="link-745" class="py-name"><a title="lxml.html.SelectElement._multiple__get" class="py-name" href="#" onclick="return doclink('link-745', '_multiple__get', 'link-743');">_multiple__get</a></tt><tt class="py-op">.</tt><tt id="link-746" class="py-name"><a title="lxml.html.ElementSoup.__doc__
-lxml.html.soupparser.__doc__" class="py-name" href="#" onclick="return doclink('link-746', '__doc__', 'link-64');">__doc__</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1157"></a><tt class="py-lineno">1157</tt> <tt class="py-line"> </tt>
-<a name="L1158"></a><tt class="py-lineno">1158</tt> <tt class="py-line"><tt id="link-747" class="py-name"><a title="lxml.html.HtmlElementClassLookup" class="py-name" href="#" onclick="return doclink('link-747', 'HtmlElementClassLookup', 'link-567');">HtmlElementClassLookup</a></tt><tt class="py-op">.</tt><tt id="link-748" class="py-name"><a title="lxml.html.HtmlElementClassLookup._default_element_classes" class="py-name" href="#" onclick="return doclink('link-748', '_default_element_classes', 'link-265');">_default_element_classes</a></tt><tt class="py-op">[</tt><tt class="py-string">'select'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-749" class="py-name" targets="Class lxml.html.SelectElement=lxml.html.SelectElement-class.html"><a title="lxml.html.SelectElement" class="py-name" href="#" onclick="return doclink('link-749', 'SelectElement', 'link-749');">SelectElement</a></tt> </tt>
-<a name="L1159"></a><tt class="py-lineno">1159</tt> <tt class="py-line"> </tt>
-<a name="MultipleSelectOptions"></a><div id="MultipleSelectOptions-def"><a name="L1160"></a><tt class="py-lineno">1160</tt> <a class="py-toggle" href="#" id="MultipleSelectOptions-toggle" onclick="return toggle('MultipleSelectOptions');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.html.MultipleSelectOptions-class.html">MultipleSelectOptions</a><tt class="py-op">(</tt><tt class="py-base-class">SetMixin</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="MultipleSelectOptions-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="MultipleSelectOptions-expanded"><a name="L1161"></a><tt class="py-lineno">1161</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1162"></a><tt class="py-lineno">1162</tt> <tt class="py-line"><tt class="py-docstring"> Represents all the selected options in a ``<select multiple>`` element.</tt> </tt>
-<a name="L1163"></a><tt class="py-lineno">1163</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1164"></a><tt class="py-lineno">1164</tt> <tt class="py-line"><tt class="py-docstring"> You can add to this set-like option to select an option, or remove</tt> </tt>
-<a name="L1165"></a><tt class="py-lineno">1165</tt> <tt class="py-line"><tt class="py-docstring"> to unselect the option.</tt> </tt>
-<a name="L1166"></a><tt class="py-lineno">1166</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-730', 'attrib', 'link-94');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'multiple'</tt><tt class="py-op">]</tt> </tt>
+</div><a name="L1164"></a><tt class="py-lineno">1164</tt> <tt class="py-line"> <tt id="link-731" class="py-name"><a title="lxml.html.SelectElement.multiple" class="py-name" href="#" onclick="return doclink('link-731', 'multiple', 'link-509');">multiple</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-732" class="py-name" targets="Method lxml.html.SelectElement._multiple__get()=lxml.html.SelectElement-class.html#_multiple__get"><a title="lxml.html.SelectElement._multiple__get" class="py-name" href="#" onclick="return doclink('link-732', '_multiple__get', 'link-732');">_multiple__get</a></tt><tt class="py-op">,</tt> <tt id="link-733" class="py-name" targets="Method lxml.html.SelectElement._multiple__set()=lxml.html.SelectElement-class.html#_multiple__set"><a title="lxml.html.SelectElement._multiple__set" class="py-name" href="#" onclick="return doclink('link-733', '_multiple__set', 'link-733');">_multiple__set</a></tt><tt class="py-op">,</tt> <tt class="py-name">doc</tt><tt class="py-op">=</tt><tt id="link-734" class="py-name"><a title="lxml.html.SelectElement._multiple__get" class="py-name" href="#" onclick="return doclink('link-734', '_multiple__get', 'link-732');">_multiple__get</a></tt><tt class="py-op">.</tt><tt id="link-735" class="py-name"><a title="lxml.html.ElementSoup.__doc__
+lxml.html.soupparser.__doc__" class="py-name" href="#" onclick="return doclink('link-735', '__doc__', 'link-64');">__doc__</a></tt><tt class="py-op">)</tt> </tt>
+</div><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 id="link-736" class="py-name"><a title="lxml.html.HtmlElementClassLookup" class="py-name" href="#" onclick="return doclink('link-736', 'HtmlElementClassLookup', 'link-556');">HtmlElementClassLookup</a></tt><tt class="py-op">.</tt><tt id="link-737" class="py-name"><a title="lxml.html.HtmlElementClassLookup._default_element_classes" class="py-name" href="#" onclick="return doclink('link-737', '_default_element_classes', 'link-265');">_default_element_classes</a></tt><tt class="py-op">[</tt><tt class="py-string">'select'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-738" class="py-name" targets="Class lxml.html.SelectElement=lxml.html.SelectElement-class.html"><a title="lxml.html.SelectElement" class="py-name" href="#" onclick="return doclink('link-738', 'SelectElement', 'link-738');">SelectElement</a></tt> </tt>
<a name="L1167"></a><tt class="py-lineno">1167</tt> <tt class="py-line"> </tt>
-<a name="MultipleSelectOptions.__init__"></a><div id="MultipleSelectOptions.__init__-def"><a name="L1168"></a><tt class="py-lineno">1168</tt> <a class="py-toggle" href="#" id="MultipleSelectOptions.__init__-toggle" onclick="return toggle('MultipleSelectOptions.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.MultipleSelectOptions-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">select</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="MultipleSelectOptions.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MultipleSelectOptions.__init__-expanded"><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">select</tt> <tt class="py-op">=</tt> <tt class="py-name">select</tt> </tt>
-</div><a name="L1170"></a><tt class="py-lineno">1170</tt> <tt class="py-line"> </tt>
-<a name="MultipleSelectOptions.options"></a><div id="MultipleSelectOptions.options-def"><a name="L1171"></a><tt class="py-lineno">1171</tt> <a class="py-toggle" href="#" id="MultipleSelectOptions.options-toggle" onclick="return toggle('MultipleSelectOptions.options');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.MultipleSelectOptions-class.html#options">options</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="MultipleSelectOptions.options-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MultipleSelectOptions.options-expanded"><a name="L1172"></a><tt class="py-lineno">1172</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1173"></a><tt class="py-lineno">1173</tt> <tt class="py-line"><tt class="py-docstring"> Iterator of all the ``<option>`` elements.</tt> </tt>
-<a name="L1174"></a><tt class="py-lineno">1174</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1175"></a><tt class="py-lineno">1175</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-750" class="py-name"><a title="lxml.etree._Element.iter
-lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-750', 'iter', 'link-162');">iter</a></tt><tt class="py-op">(</tt><tt id="link-751" class="py-name"><a title="lxml.html._options_xpath" class="py-name" href="#" onclick="return doclink('link-751', '_options_xpath', 'link-21');">_options_xpath</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">select</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1176"></a><tt class="py-lineno">1176</tt> <tt class="py-line"> <tt id="link-752" class="py-name"><a title="lxml.etree.XSLTAccessControl.options
-lxml.html.MultipleSelectOptions.options" class="py-name" href="#" onclick="return doclink('link-752', 'options', 'link-718');">options</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-753" class="py-name"><a title="lxml.etree.XSLTAccessControl.options
-lxml.html.MultipleSelectOptions.options" class="py-name" href="#" onclick="return doclink('link-753', 'options', 'link-718');">options</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1177"></a><tt class="py-lineno">1177</tt> <tt class="py-line"> </tt>
-<a name="MultipleSelectOptions.__iter__"></a><div id="MultipleSelectOptions.__iter__-def"><a name="L1178"></a><tt class="py-lineno">1178</tt> <a class="py-toggle" href="#" id="MultipleSelectOptions.__iter__-toggle" onclick="return toggle('MultipleSelectOptions.__iter__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.MultipleSelectOptions-class.html#__iter__">__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="MultipleSelectOptions.__iter__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MultipleSelectOptions.__iter__-expanded"><a name="L1179"></a><tt class="py-lineno">1179</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">option</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-754" class="py-name"><a title="lxml.etree.XSLTAccessControl.options
-lxml.html.MultipleSelectOptions.options" class="py-name" href="#" onclick="return doclink('link-754', 'options', 'link-718');">options</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1180"></a><tt class="py-lineno">1180</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'selected'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">option</tt><tt class="py-op">.</tt><tt id="link-755" class="py-name"><a title="lxml.etree._Element.attrib
+<a name="MultipleSelectOptions"></a><div id="MultipleSelectOptions-def"><a name="L1168"></a><tt class="py-lineno">1168</tt> <a class="py-toggle" href="#" id="MultipleSelectOptions-toggle" onclick="return toggle('MultipleSelectOptions');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.html.MultipleSelectOptions-class.html">MultipleSelectOptions</a><tt class="py-op">(</tt><tt class="py-base-class">SetMixin</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MultipleSelectOptions-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="MultipleSelectOptions-expanded"><a name="L1169"></a><tt class="py-lineno">1169</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1170"></a><tt class="py-lineno">1170</tt> <tt class="py-line"><tt class="py-docstring"> Represents all the selected options in a ``<select multiple>`` element.</tt> </tt>
+<a name="L1171"></a><tt class="py-lineno">1171</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1172"></a><tt class="py-lineno">1172</tt> <tt class="py-line"><tt class="py-docstring"> You can add to this set-like option to select an option, or remove</tt> </tt>
+<a name="L1173"></a><tt class="py-lineno">1173</tt> <tt class="py-line"><tt class="py-docstring"> to unselect the option.</tt> </tt>
+<a name="L1174"></a><tt class="py-lineno">1174</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1175"></a><tt class="py-lineno">1175</tt> <tt class="py-line"> </tt>
+<a name="MultipleSelectOptions.__init__"></a><div id="MultipleSelectOptions.__init__-def"><a name="L1176"></a><tt class="py-lineno">1176</tt> <a class="py-toggle" href="#" id="MultipleSelectOptions.__init__-toggle" onclick="return toggle('MultipleSelectOptions.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.MultipleSelectOptions-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">select</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MultipleSelectOptions.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MultipleSelectOptions.__init__-expanded"><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">select</tt> <tt class="py-op">=</tt> <tt class="py-name">select</tt> </tt>
+</div><a name="L1178"></a><tt class="py-lineno">1178</tt> <tt class="py-line"> </tt>
+<a name="MultipleSelectOptions.options"></a><div id="MultipleSelectOptions.options-def"><a name="L1179"></a><tt class="py-lineno">1179</tt> <a class="py-toggle" href="#" id="MultipleSelectOptions.options-toggle" onclick="return toggle('MultipleSelectOptions.options');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.MultipleSelectOptions-class.html#options">options</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MultipleSelectOptions.options-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MultipleSelectOptions.options-expanded"><a name="L1180"></a><tt class="py-lineno">1180</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1181"></a><tt class="py-lineno">1181</tt> <tt class="py-line"><tt class="py-docstring"> Iterator of all the ``<option>`` elements.</tt> </tt>
+<a name="L1182"></a><tt class="py-lineno">1182</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1183"></a><tt class="py-lineno">1183</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-739" class="py-name"><a title="lxml.etree._Element.iter
+lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-739', 'iter', 'link-162');">iter</a></tt><tt class="py-op">(</tt><tt id="link-740" class="py-name"><a title="lxml.html._options_xpath" class="py-name" href="#" onclick="return doclink('link-740', '_options_xpath', 'link-21');">_options_xpath</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">select</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1184"></a><tt class="py-lineno">1184</tt> <tt class="py-line"> <tt id="link-741" class="py-name"><a title="lxml.etree.XSLTAccessControl.options
+lxml.html.MultipleSelectOptions.options" class="py-name" href="#" onclick="return doclink('link-741', 'options', 'link-707');">options</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-742" class="py-name"><a title="lxml.etree.XSLTAccessControl.options
+lxml.html.MultipleSelectOptions.options" class="py-name" href="#" onclick="return doclink('link-742', 'options', 'link-707');">options</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1185"></a><tt class="py-lineno">1185</tt> <tt class="py-line"> </tt>
+<a name="MultipleSelectOptions.__iter__"></a><div id="MultipleSelectOptions.__iter__-def"><a name="L1186"></a><tt class="py-lineno">1186</tt> <a class="py-toggle" href="#" id="MultipleSelectOptions.__iter__-toggle" onclick="return toggle('MultipleSelectOptions.__iter__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.MultipleSelectOptions-class.html#__iter__">__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="MultipleSelectOptions.__iter__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MultipleSelectOptions.__iter__-expanded"><a name="L1187"></a><tt class="py-lineno">1187</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">option</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-743" class="py-name"><a title="lxml.etree.XSLTAccessControl.options
+lxml.html.MultipleSelectOptions.options" class="py-name" href="#" onclick="return doclink('link-743', 'options', 'link-707');">options</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-keyword">if</tt> <tt class="py-string">'selected'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">option</tt><tt class="py-op">.</tt><tt id="link-744" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-755', 'attrib', 'link-94');">attrib</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1181"></a><tt class="py-lineno">1181</tt> <tt class="py-line"> <tt class="py-name">opt_value</tt> <tt class="py-op">=</tt> <tt class="py-name">option</tt><tt class="py-op">.</tt><tt id="link-756" class="py-name"><a title="lxml.etree._Attrib.get
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-744', 'attrib', 'link-94');">attrib</a></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">opt_value</tt> <tt class="py-op">=</tt> <tt class="py-name">option</tt><tt class="py-op">.</tt><tt id="link-745" 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-756', 'get', 'link-82');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'value'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1182"></a><tt class="py-lineno">1182</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">opt_value</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</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">opt_value</tt> <tt class="py-op">=</tt> <tt class="py-name">option</tt><tt class="py-op">.</tt><tt id="link-757" class="py-name"><a title="lxml.etree.QName.text
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-745', 'get', 'link-82');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'value'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1190"></a><tt class="py-lineno">1190</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">opt_value</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L1191"></a><tt class="py-lineno">1191</tt> <tt class="py-line"> <tt class="py-name">opt_value</tt> <tt class="py-op">=</tt> <tt class="py-name">option</tt><tt class="py-op">.</tt><tt id="link-746" 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-757', 'text', 'link-104');">text</a></tt> <tt class="py-keyword">or</tt> <tt class="py-string">''</tt> </tt>
-<a name="L1184"></a><tt class="py-lineno">1184</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">opt_value</tt><tt class="py-op">:</tt> </tt>
-<a name="L1185"></a><tt class="py-lineno">1185</tt> <tt class="py-line"> <tt class="py-name">opt_value</tt> <tt class="py-op">=</tt> <tt class="py-name">opt_value</tt><tt class="py-op">.</tt><tt id="link-758" class="py-name"><a title="lxml.doctestcompare.strip" class="py-name" href="#" onclick="return doclink('link-758', 'strip', 'link-216');">strip</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1186"></a><tt class="py-lineno">1186</tt> <tt class="py-line"> <tt class="py-keyword">yield</tt> <tt class="py-name">opt_value</tt> </tt>
-</div><a name="L1187"></a><tt class="py-lineno">1187</tt> <tt class="py-line"> </tt>
-<a name="MultipleSelectOptions.add"></a><div id="MultipleSelectOptions.add-def"><a name="L1188"></a><tt class="py-lineno">1188</tt> <a class="py-toggle" href="#" id="MultipleSelectOptions.add-toggle" onclick="return toggle('MultipleSelectOptions.add');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.MultipleSelectOptions-class.html#add">add</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">item</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="MultipleSelectOptions.add-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MultipleSelectOptions.add-expanded"><a name="L1189"></a><tt class="py-lineno">1189</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">option</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-759" class="py-name"><a title="lxml.etree.XSLTAccessControl.options
-lxml.html.MultipleSelectOptions.options" class="py-name" href="#" onclick="return doclink('link-759', 'options', 'link-718');">options</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1190"></a><tt class="py-lineno">1190</tt> <tt class="py-line"> <tt class="py-name">opt_value</tt> <tt class="py-op">=</tt> <tt class="py-name">option</tt><tt class="py-op">.</tt><tt id="link-760" class="py-name"><a title="lxml.etree._Attrib.get
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-746', 'text', 'link-104');">text</a></tt> <tt class="py-keyword">or</tt> <tt class="py-string">''</tt> </tt>
+<a name="L1192"></a><tt class="py-lineno">1192</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">opt_value</tt><tt class="py-op">:</tt> </tt>
+<a name="L1193"></a><tt class="py-lineno">1193</tt> <tt class="py-line"> <tt class="py-name">opt_value</tt> <tt class="py-op">=</tt> <tt class="py-name">opt_value</tt><tt class="py-op">.</tt><tt id="link-747" class="py-name"><a title="lxml.doctestcompare.strip" class="py-name" href="#" onclick="return doclink('link-747', 'strip', 'link-216');">strip</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 class="py-keyword">yield</tt> <tt class="py-name">opt_value</tt> </tt>
+</div><a name="L1195"></a><tt class="py-lineno">1195</tt> <tt class="py-line"> </tt>
+<a name="MultipleSelectOptions.add"></a><div id="MultipleSelectOptions.add-def"><a name="L1196"></a><tt class="py-lineno">1196</tt> <a class="py-toggle" href="#" id="MultipleSelectOptions.add-toggle" onclick="return toggle('MultipleSelectOptions.add');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.MultipleSelectOptions-class.html#add">add</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">item</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MultipleSelectOptions.add-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MultipleSelectOptions.add-expanded"><a name="L1197"></a><tt class="py-lineno">1197</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">option</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-748" class="py-name"><a title="lxml.etree.XSLTAccessControl.options
+lxml.html.MultipleSelectOptions.options" class="py-name" href="#" onclick="return doclink('link-748', 'options', 'link-707');">options</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1198"></a><tt class="py-lineno">1198</tt> <tt class="py-line"> <tt class="py-name">opt_value</tt> <tt class="py-op">=</tt> <tt class="py-name">option</tt><tt class="py-op">.</tt><tt id="link-749" 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-760', 'get', 'link-82');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'value'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1191"></a><tt class="py-lineno">1191</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">opt_value</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L1192"></a><tt class="py-lineno">1192</tt> <tt class="py-line"> <tt class="py-name">opt_value</tt> <tt class="py-op">=</tt> <tt class="py-name">option</tt><tt class="py-op">.</tt><tt id="link-761" class="py-name"><a title="lxml.etree.QName.text
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-749', 'get', 'link-82');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'value'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1199"></a><tt class="py-lineno">1199</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">opt_value</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L1200"></a><tt class="py-lineno">1200</tt> <tt class="py-line"> <tt class="py-name">opt_value</tt> <tt class="py-op">=</tt> <tt class="py-name">option</tt><tt class="py-op">.</tt><tt id="link-750" 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-761', 'text', 'link-104');">text</a></tt> <tt class="py-keyword">or</tt> <tt class="py-string">''</tt> </tt>
-<a name="L1193"></a><tt class="py-lineno">1193</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">opt_value</tt><tt class="py-op">:</tt> </tt>
-<a name="L1194"></a><tt class="py-lineno">1194</tt> <tt class="py-line"> <tt class="py-name">opt_value</tt> <tt class="py-op">=</tt> <tt class="py-name">opt_value</tt><tt class="py-op">.</tt><tt id="link-762" class="py-name"><a title="lxml.doctestcompare.strip" class="py-name" href="#" onclick="return doclink('link-762', 'strip', 'link-216');">strip</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1195"></a><tt class="py-lineno">1195</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">opt_value</tt> <tt class="py-op">==</tt> <tt class="py-name">item</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">option</tt><tt class="py-op">.</tt><tt id="link-763" class="py-name"><a title="lxml.etree._Element.set
-lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-763', 'set', 'link-9');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'selected'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1197"></a><tt class="py-lineno">1197</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
-<a name="L1198"></a><tt class="py-lineno">1198</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1199"></a><tt class="py-lineno">1199</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">ValueError</tt><tt class="py-op">(</tt> </tt>
-<a name="L1200"></a><tt class="py-lineno">1200</tt> <tt class="py-line"> <tt class="py-string">"There is no option with the value %r"</tt> <tt class="py-op">%</tt> <tt class="py-name">item</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="MultipleSelectOptions.remove"></a><div id="MultipleSelectOptions.remove-def"><a name="L1202"></a><tt class="py-lineno">1202</tt> <a class="py-toggle" href="#" id="MultipleSelectOptions.remove-toggle" onclick="return toggle('MultipleSelectOptions.remove');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.MultipleSelectOptions-class.html#remove">remove</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">item</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="MultipleSelectOptions.remove-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MultipleSelectOptions.remove-expanded"><a name="L1203"></a><tt class="py-lineno">1203</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">option</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-764" class="py-name"><a title="lxml.etree.XSLTAccessControl.options
-lxml.html.MultipleSelectOptions.options" class="py-name" href="#" onclick="return doclink('link-764', 'options', 'link-718');">options</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1204"></a><tt class="py-lineno">1204</tt> <tt class="py-line"> <tt class="py-name">opt_value</tt> <tt class="py-op">=</tt> <tt class="py-name">option</tt><tt class="py-op">.</tt><tt id="link-765" class="py-name"><a title="lxml.etree._Attrib.get
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-750', 'text', 'link-104');">text</a></tt> <tt class="py-keyword">or</tt> <tt class="py-string">''</tt> </tt>
+<a name="L1201"></a><tt class="py-lineno">1201</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">opt_value</tt><tt class="py-op">:</tt> </tt>
+<a name="L1202"></a><tt class="py-lineno">1202</tt> <tt class="py-line"> <tt class="py-name">opt_value</tt> <tt class="py-op">=</tt> <tt class="py-name">opt_value</tt><tt class="py-op">.</tt><tt id="link-751" class="py-name"><a title="lxml.doctestcompare.strip" class="py-name" href="#" onclick="return doclink('link-751', 'strip', 'link-216');">strip</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1203"></a><tt class="py-lineno">1203</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">opt_value</tt> <tt class="py-op">==</tt> <tt class="py-name">item</tt><tt class="py-op">:</tt> </tt>
+<a name="L1204"></a><tt class="py-lineno">1204</tt> <tt class="py-line"> <tt class="py-name">option</tt><tt class="py-op">.</tt><tt id="link-752" class="py-name"><a title="lxml.etree._Element.set
+lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-752', 'set', 'link-9');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'selected'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1205"></a><tt class="py-lineno">1205</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
+<a name="L1206"></a><tt class="py-lineno">1206</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1207"></a><tt class="py-lineno">1207</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">ValueError</tt><tt class="py-op">(</tt> </tt>
+<a name="L1208"></a><tt class="py-lineno">1208</tt> <tt class="py-line"> <tt class="py-string">"There is no option with the value %r"</tt> <tt class="py-op">%</tt> <tt class="py-name">item</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1209"></a><tt class="py-lineno">1209</tt> <tt class="py-line"> </tt>
+<a name="MultipleSelectOptions.remove"></a><div id="MultipleSelectOptions.remove-def"><a name="L1210"></a><tt class="py-lineno">1210</tt> <a class="py-toggle" href="#" id="MultipleSelectOptions.remove-toggle" onclick="return toggle('MultipleSelectOptions.remove');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.MultipleSelectOptions-class.html#remove">remove</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">item</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MultipleSelectOptions.remove-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MultipleSelectOptions.remove-expanded"><a name="L1211"></a><tt class="py-lineno">1211</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">option</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-753" class="py-name"><a title="lxml.etree.XSLTAccessControl.options
+lxml.html.MultipleSelectOptions.options" class="py-name" href="#" onclick="return doclink('link-753', 'options', 'link-707');">options</a></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">opt_value</tt> <tt class="py-op">=</tt> <tt class="py-name">option</tt><tt class="py-op">.</tt><tt id="link-754" 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-765', 'get', 'link-82');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'value'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1205"></a><tt class="py-lineno">1205</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">opt_value</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L1206"></a><tt class="py-lineno">1206</tt> <tt class="py-line"> <tt class="py-name">opt_value</tt> <tt class="py-op">=</tt> <tt class="py-name">option</tt><tt class="py-op">.</tt><tt id="link-766" class="py-name"><a title="lxml.etree.QName.text
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-754', 'get', 'link-82');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'value'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1213"></a><tt class="py-lineno">1213</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">opt_value</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L1214"></a><tt class="py-lineno">1214</tt> <tt class="py-line"> <tt class="py-name">opt_value</tt> <tt class="py-op">=</tt> <tt class="py-name">option</tt><tt class="py-op">.</tt><tt id="link-755" 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-766', 'text', 'link-104');">text</a></tt> <tt class="py-keyword">or</tt> <tt class="py-string">''</tt> </tt>
-<a name="L1207"></a><tt class="py-lineno">1207</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">opt_value</tt><tt class="py-op">:</tt> </tt>
-<a name="L1208"></a><tt class="py-lineno">1208</tt> <tt class="py-line"> <tt class="py-name">opt_value</tt> <tt class="py-op">=</tt> <tt class="py-name">opt_value</tt><tt class="py-op">.</tt><tt id="link-767" class="py-name"><a title="lxml.doctestcompare.strip" class="py-name" href="#" onclick="return doclink('link-767', 'strip', 'link-216');">strip</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1209"></a><tt class="py-lineno">1209</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">opt_value</tt> <tt class="py-op">==</tt> <tt class="py-name">item</tt><tt class="py-op">:</tt> </tt>
-<a name="L1210"></a><tt class="py-lineno">1210</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'selected'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">option</tt><tt class="py-op">.</tt><tt id="link-768" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-755', 'text', 'link-104');">text</a></tt> <tt class="py-keyword">or</tt> <tt class="py-string">''</tt> </tt>
+<a name="L1215"></a><tt class="py-lineno">1215</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">opt_value</tt><tt class="py-op">:</tt> </tt>
+<a name="L1216"></a><tt class="py-lineno">1216</tt> <tt class="py-line"> <tt class="py-name">opt_value</tt> <tt class="py-op">=</tt> <tt class="py-name">opt_value</tt><tt class="py-op">.</tt><tt id="link-756" class="py-name"><a title="lxml.doctestcompare.strip" class="py-name" href="#" onclick="return doclink('link-756', 'strip', 'link-216');">strip</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1217"></a><tt class="py-lineno">1217</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">opt_value</tt> <tt class="py-op">==</tt> <tt class="py-name">item</tt><tt class="py-op">:</tt> </tt>
+<a name="L1218"></a><tt class="py-lineno">1218</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'selected'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">option</tt><tt class="py-op">.</tt><tt id="link-757" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-768', 'attrib', 'link-94');">attrib</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-keyword">del</tt> <tt class="py-name">option</tt><tt class="py-op">.</tt><tt id="link-769" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-757', 'attrib', 'link-94');">attrib</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1219"></a><tt class="py-lineno">1219</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">option</tt><tt class="py-op">.</tt><tt id="link-758" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-769', 'attrib', 'link-94');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'selected'</tt><tt class="py-op">]</tt> </tt>
-<a name="L1212"></a><tt class="py-lineno">1212</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1213"></a><tt class="py-lineno">1213</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">ValueError</tt><tt class="py-op">(</tt> </tt>
-<a name="L1214"></a><tt class="py-lineno">1214</tt> <tt class="py-line"> <tt class="py-string">"The option %r is not currently selected"</tt> <tt class="py-op">%</tt> <tt class="py-name">item</tt><tt class="py-op">)</tt> </tt>
-<a name="L1215"></a><tt class="py-lineno">1215</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
-<a name="L1216"></a><tt class="py-lineno">1216</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1217"></a><tt class="py-lineno">1217</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">ValueError</tt><tt class="py-op">(</tt> </tt>
-<a name="L1218"></a><tt class="py-lineno">1218</tt> <tt class="py-line"> <tt class="py-string">"There is not option with the value %r"</tt> <tt class="py-op">%</tt> <tt class="py-name">item</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1219"></a><tt class="py-lineno">1219</tt> <tt class="py-line"> </tt>
-<a name="MultipleSelectOptions.__repr__"></a><div id="MultipleSelectOptions.__repr__-def"><a name="L1220"></a><tt class="py-lineno">1220</tt> <a class="py-toggle" href="#" id="MultipleSelectOptions.__repr__-toggle" onclick="return toggle('MultipleSelectOptions.__repr__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.MultipleSelectOptions-class.html#__repr__">__repr__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="MultipleSelectOptions.__repr__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MultipleSelectOptions.__repr__-expanded"><a name="L1221"></a><tt class="py-lineno">1221</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">'<%s {%s} for select name=%r>'</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">__class__</tt><tt class="py-op">.</tt><tt class="py-name">__name__</tt><tt class="py-op">,</tt> </tt>
-<a name="L1223"></a><tt class="py-lineno">1223</tt> <tt class="py-line"> <tt class="py-string">', '</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">repr</tt><tt class="py-op">(</tt><tt id="link-770" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-770', 'v', 'link-521');">v</a></tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt id="link-771" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-771', 'v', 'link-521');">v</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">]</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">select</tt><tt class="py-op">.</tt><tt id="link-772" class="py-name"><a title="lxml.etree.DTD.name
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-758', 'attrib', 'link-94');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'selected'</tt><tt class="py-op">]</tt> </tt>
+<a name="L1220"></a><tt class="py-lineno">1220</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1221"></a><tt class="py-lineno">1221</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">ValueError</tt><tt class="py-op">(</tt> </tt>
+<a name="L1222"></a><tt class="py-lineno">1222</tt> <tt class="py-line"> <tt class="py-string">"The option %r is not currently selected"</tt> <tt class="py-op">%</tt> <tt class="py-name">item</tt><tt class="py-op">)</tt> </tt>
+<a name="L1223"></a><tt class="py-lineno">1223</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
+<a name="L1224"></a><tt class="py-lineno">1224</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1225"></a><tt class="py-lineno">1225</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">ValueError</tt><tt class="py-op">(</tt> </tt>
+<a name="L1226"></a><tt class="py-lineno">1226</tt> <tt class="py-line"> <tt class="py-string">"There is not option with the value %r"</tt> <tt class="py-op">%</tt> <tt class="py-name">item</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1227"></a><tt class="py-lineno">1227</tt> <tt class="py-line"> </tt>
+<a name="MultipleSelectOptions.__repr__"></a><div id="MultipleSelectOptions.__repr__-def"><a name="L1228"></a><tt class="py-lineno">1228</tt> <a class="py-toggle" href="#" id="MultipleSelectOptions.__repr__-toggle" onclick="return toggle('MultipleSelectOptions.__repr__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.MultipleSelectOptions-class.html#__repr__">__repr__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MultipleSelectOptions.__repr__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MultipleSelectOptions.__repr__-expanded"><a name="L1229"></a><tt class="py-lineno">1229</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">'<%s {%s} for select name=%r>'</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">__class__</tt><tt class="py-op">.</tt><tt class="py-name">__name__</tt><tt class="py-op">,</tt> </tt>
+<a name="L1231"></a><tt class="py-lineno">1231</tt> <tt class="py-line"> <tt class="py-string">', '</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">repr</tt><tt class="py-op">(</tt><tt id="link-759" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-759', 'v', 'link-510');">v</a></tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt id="link-760" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-760', 'v', 'link-510');">v</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">]</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">select</tt><tt class="py-op">.</tt><tt id="link-761" 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-772', 'name', 'link-232');">name</a></tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1225"></a><tt class="py-lineno">1225</tt> <tt class="py-line"> </tt>
-<a name="RadioGroup"></a><div id="RadioGroup-def"><a name="L1226"></a><tt class="py-lineno">1226</tt> <a class="py-toggle" href="#" id="RadioGroup-toggle" onclick="return toggle('RadioGroup');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.html.RadioGroup-class.html">RadioGroup</a><tt class="py-op">(</tt><tt class="py-base-class">list</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="RadioGroup-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="RadioGroup-expanded"><a name="L1227"></a><tt class="py-lineno">1227</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1228"></a><tt class="py-lineno">1228</tt> <tt class="py-line"><tt class="py-docstring"> This object represents several ``<input type=radio>`` elements</tt> </tt>
-<a name="L1229"></a><tt class="py-lineno">1229</tt> <tt class="py-line"><tt class="py-docstring"> that have the same name.</tt> </tt>
-<a name="L1230"></a><tt class="py-lineno">1230</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1231"></a><tt class="py-lineno">1231</tt> <tt class="py-line"><tt class="py-docstring"> You can use this like a list, but also use the property</tt> </tt>
-<a name="L1232"></a><tt class="py-lineno">1232</tt> <tt class="py-line"><tt class="py-docstring"> ``.value`` to check/uncheck inputs. Also you can use</tt> </tt>
-<a name="L1233"></a><tt class="py-lineno">1233</tt> <tt class="py-line"><tt class="py-docstring"> ``.value_options`` to get the possible values.</tt> </tt>
-<a name="L1234"></a><tt class="py-lineno">1234</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1235"></a><tt class="py-lineno">1235</tt> <tt class="py-line"> </tt>
-<a name="RadioGroup._value__get"></a><div id="RadioGroup._value__get-def"><a name="L1236"></a><tt class="py-lineno">1236</tt> <a class="py-toggle" href="#" id="RadioGroup._value__get-toggle" onclick="return toggle('RadioGroup._value__get');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.RadioGroup-class.html#_value__get">_value__get</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="RadioGroup._value__get-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="RadioGroup._value__get-expanded"><a name="L1237"></a><tt class="py-lineno">1237</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1238"></a><tt class="py-lineno">1238</tt> <tt class="py-line"><tt class="py-docstring"> Get/set the value, which checks the radio with that value (and</tt> </tt>
-<a name="L1239"></a><tt class="py-lineno">1239</tt> <tt class="py-line"><tt class="py-docstring"> unchecks any other value).</tt> </tt>
-<a name="L1240"></a><tt class="py-lineno">1240</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1241"></a><tt class="py-lineno">1241</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">self</tt><tt class="py-op">:</tt> </tt>
-<a name="L1242"></a><tt class="py-lineno">1242</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'checked'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-773" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-761', 'name', 'link-232');">name</a></tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1233"></a><tt class="py-lineno">1233</tt> <tt class="py-line"> </tt>
+<a name="RadioGroup"></a><div id="RadioGroup-def"><a name="L1234"></a><tt class="py-lineno">1234</tt> <a class="py-toggle" href="#" id="RadioGroup-toggle" onclick="return toggle('RadioGroup');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.html.RadioGroup-class.html">RadioGroup</a><tt class="py-op">(</tt><tt class="py-base-class">list</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="RadioGroup-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="RadioGroup-expanded"><a name="L1235"></a><tt class="py-lineno">1235</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1236"></a><tt class="py-lineno">1236</tt> <tt class="py-line"><tt class="py-docstring"> This object represents several ``<input type=radio>`` elements</tt> </tt>
+<a name="L1237"></a><tt class="py-lineno">1237</tt> <tt class="py-line"><tt class="py-docstring"> that have the same name.</tt> </tt>
+<a name="L1238"></a><tt class="py-lineno">1238</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1239"></a><tt class="py-lineno">1239</tt> <tt class="py-line"><tt class="py-docstring"> You can use this like a list, but also use the property</tt> </tt>
+<a name="L1240"></a><tt class="py-lineno">1240</tt> <tt class="py-line"><tt class="py-docstring"> ``.value`` to check/uncheck inputs. Also you can use</tt> </tt>
+<a name="L1241"></a><tt class="py-lineno">1241</tt> <tt class="py-line"><tt class="py-docstring"> ``.value_options`` to get the possible values.</tt> </tt>
+<a name="L1242"></a><tt class="py-lineno">1242</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1243"></a><tt class="py-lineno">1243</tt> <tt class="py-line"> </tt>
+<a name="RadioGroup._value__get"></a><div id="RadioGroup._value__get-def"><a name="L1244"></a><tt class="py-lineno">1244</tt> <a class="py-toggle" href="#" id="RadioGroup._value__get-toggle" onclick="return toggle('RadioGroup._value__get');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.RadioGroup-class.html#_value__get">_value__get</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="RadioGroup._value__get-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="RadioGroup._value__get-expanded"><a name="L1245"></a><tt class="py-lineno">1245</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1246"></a><tt class="py-lineno">1246</tt> <tt class="py-line"><tt class="py-docstring"> Get/set the value, which checks the radio with that value (and</tt> </tt>
+<a name="L1247"></a><tt class="py-lineno">1247</tt> <tt class="py-line"><tt class="py-docstring"> unchecks any other value).</tt> </tt>
+<a name="L1248"></a><tt class="py-lineno">1248</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1249"></a><tt class="py-lineno">1249</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">self</tt><tt class="py-op">:</tt> </tt>
+<a name="L1250"></a><tt class="py-lineno">1250</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'checked'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-762" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-773', 'attrib', 'link-94');">attrib</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-keyword">return</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-774" class="py-name"><a title="lxml.etree._Attrib.get
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-762', 'attrib', 'link-94');">attrib</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1251"></a><tt class="py-lineno">1251</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-763" 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-774', 'get', 'link-82');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'value'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1244"></a><tt class="py-lineno">1244</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
-</div><a name="L1245"></a><tt class="py-lineno">1245</tt> <tt class="py-line"> </tt>
-<a name="RadioGroup._value__set"></a><div id="RadioGroup._value__set-def"><a name="L1246"></a><tt class="py-lineno">1246</tt> <a class="py-toggle" href="#" id="RadioGroup._value__set-toggle" onclick="return toggle('RadioGroup._value__set');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.RadioGroup-class.html#_value__set">_value__set</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="RadioGroup._value__set-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="RadioGroup._value__set-expanded"><a name="L1247"></a><tt class="py-lineno">1247</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-775" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-763', 'get', 'link-82');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'value'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1252"></a><tt class="py-lineno">1252</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
+</div><a name="L1253"></a><tt class="py-lineno">1253</tt> <tt class="py-line"> </tt>
+<a name="RadioGroup._value__set"></a><div id="RadioGroup._value__set-def"><a name="L1254"></a><tt class="py-lineno">1254</tt> <a class="py-toggle" href="#" id="RadioGroup._value__set-toggle" onclick="return toggle('RadioGroup._value__set');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.RadioGroup-class.html#_value__set">_value__set</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="RadioGroup._value__set-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="RadioGroup._value__set-expanded"><a name="L1255"></a><tt class="py-lineno">1255</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-764" 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-775', 'value', 'link-176');">value</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="L1248"></a><tt class="py-lineno">1248</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">self</tt><tt class="py-op">:</tt> </tt>
-<a name="L1249"></a><tt class="py-lineno">1249</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-776" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-764', 'value', 'link-176');">value</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="L1256"></a><tt class="py-lineno">1256</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">self</tt><tt class="py-op">:</tt> </tt>
+<a name="L1257"></a><tt class="py-lineno">1257</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-765" 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-776', 'get', 'link-82');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'value'</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt id="link-777" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-765', 'get', 'link-82');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'value'</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt id="link-766" 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-777', 'value', 'link-176');">value</a></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">checked_option</tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt> </tt>
-<a name="L1251"></a><tt class="py-lineno">1251</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
-<a name="L1252"></a><tt class="py-lineno">1252</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1253"></a><tt class="py-lineno">1253</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">ValueError</tt><tt class="py-op">(</tt> </tt>
-<a name="L1254"></a><tt class="py-lineno">1254</tt> <tt class="py-line"> <tt class="py-string">"There is no radio input with the value %r"</tt> <tt class="py-op">%</tt> <tt id="link-778" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-766', 'value', 'link-176');">value</a></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">checked_option</tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt> </tt>
+<a name="L1259"></a><tt class="py-lineno">1259</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
+<a name="L1260"></a><tt class="py-lineno">1260</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1261"></a><tt class="py-lineno">1261</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">ValueError</tt><tt class="py-op">(</tt> </tt>
+<a name="L1262"></a><tt class="py-lineno">1262</tt> <tt class="py-line"> <tt class="py-string">"There is no radio input with the value %r"</tt> <tt class="py-op">%</tt> <tt id="link-767" 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-778', 'value', 'link-176');">value</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-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">:</tt> </tt>
-<a name="L1256"></a><tt class="py-lineno">1256</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'checked'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-779" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-767', 'value', 'link-176');">value</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">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">:</tt> </tt>
+<a name="L1264"></a><tt class="py-lineno">1264</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'checked'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-768" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-779', 'attrib', 'link-94');">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-keyword">del</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-780" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-768', 'attrib', 'link-94');">attrib</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1265"></a><tt class="py-lineno">1265</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-769" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-780', 'attrib', 'link-94');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'checked'</tt><tt class="py-op">]</tt> </tt>
-<a name="L1258"></a><tt class="py-lineno">1258</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-781" class="py-name"><a title="lxml.html.CheckboxGroup.value
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-769', 'attrib', 'link-94');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'checked'</tt><tt class="py-op">]</tt> </tt>
+<a name="L1266"></a><tt class="py-lineno">1266</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-770" 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-781', 'value', 'link-176');">value</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="L1259"></a><tt class="py-lineno">1259</tt> <tt class="py-line"> <tt class="py-name">checked_option</tt><tt class="py-op">.</tt><tt id="link-782" class="py-name"><a title="lxml.etree._Element.set
-lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-782', 'set', 'link-9');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'checked'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1260"></a><tt class="py-lineno">1260</tt> <tt class="py-line"> </tt>
-<a name="RadioGroup._value__del"></a><div id="RadioGroup._value__del-def"><a name="L1261"></a><tt class="py-lineno">1261</tt> <a class="py-toggle" href="#" id="RadioGroup._value__del-toggle" onclick="return toggle('RadioGroup._value__del');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.RadioGroup-class.html#_value__del">_value__del</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="RadioGroup._value__del-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="RadioGroup._value__del-expanded"><a name="L1262"></a><tt class="py-lineno">1262</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-783" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-770', 'value', 'link-176');">value</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="L1267"></a><tt class="py-lineno">1267</tt> <tt class="py-line"> <tt class="py-name">checked_option</tt><tt class="py-op">.</tt><tt id="link-771" class="py-name"><a title="lxml.etree._Element.set
+lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-771', 'set', 'link-9');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'checked'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1268"></a><tt class="py-lineno">1268</tt> <tt class="py-line"> </tt>
+<a name="RadioGroup._value__del"></a><div id="RadioGroup._value__del-def"><a name="L1269"></a><tt class="py-lineno">1269</tt> <a class="py-toggle" href="#" id="RadioGroup._value__del-toggle" onclick="return toggle('RadioGroup._value__del');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.RadioGroup-class.html#_value__del">_value__del</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="RadioGroup._value__del-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="RadioGroup._value__del-expanded"><a name="L1270"></a><tt class="py-lineno">1270</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-772" 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-783', 'value', 'link-176');">value</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-</div><a name="L1263"></a><tt class="py-lineno">1263</tt> <tt class="py-line"> </tt>
-<a name="L1264"></a><tt class="py-lineno">1264</tt> <tt class="py-line"> <tt id="link-784" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-772', 'value', 'link-176');">value</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+</div><a name="L1271"></a><tt class="py-lineno">1271</tt> <tt class="py-line"> </tt>
+<a name="L1272"></a><tt class="py-lineno">1272</tt> <tt class="py-line"> <tt id="link-773" 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-784', 'value', 'link-176');">value</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-785" class="py-name"><a title="lxml.html.CheckboxGroup._value__get
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-773', 'value', 'link-176');">value</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-774" class="py-name"><a title="lxml.html.CheckboxGroup._value__get
lxml.html.InputElement._value__get
lxml.html.RadioGroup._value__get
lxml.html.SelectElement._value__get
-lxml.html.TextareaElement._value__get" class="py-name" href="#" onclick="return doclink('link-785', '_value__get', 'link-663');">_value__get</a></tt><tt class="py-op">,</tt> <tt id="link-786" class="py-name"><a title="lxml.html.CheckboxGroup._value__set
+lxml.html.TextareaElement._value__get" class="py-name" href="#" onclick="return doclink('link-774', '_value__get', 'link-652');">_value__get</a></tt><tt class="py-op">,</tt> <tt id="link-775" class="py-name"><a title="lxml.html.CheckboxGroup._value__set
lxml.html.InputElement._value__set
lxml.html.RadioGroup._value__set
lxml.html.SelectElement._value__set
-lxml.html.TextareaElement._value__set" class="py-name" href="#" onclick="return doclink('link-786', '_value__set', 'link-664');">_value__set</a></tt><tt class="py-op">,</tt> <tt id="link-787" class="py-name"><a title="lxml.html.CheckboxGroup._value__del
+lxml.html.TextareaElement._value__set" class="py-name" href="#" onclick="return doclink('link-775', '_value__set', 'link-653');">_value__set</a></tt><tt class="py-op">,</tt> <tt id="link-776" class="py-name"><a title="lxml.html.CheckboxGroup._value__del
lxml.html.InputElement._value__del
lxml.html.RadioGroup._value__del
lxml.html.SelectElement._value__del
-lxml.html.TextareaElement._value__del" class="py-name" href="#" onclick="return doclink('link-787', '_value__del', 'link-665');">_value__del</a></tt><tt class="py-op">,</tt> <tt class="py-name">doc</tt><tt class="py-op">=</tt><tt id="link-788" class="py-name"><a title="lxml.html.CheckboxGroup._value__get
+lxml.html.TextareaElement._value__del" class="py-name" href="#" onclick="return doclink('link-776', '_value__del', 'link-654');">_value__del</a></tt><tt class="py-op">,</tt> <tt class="py-name">doc</tt><tt class="py-op">=</tt><tt id="link-777" class="py-name"><a title="lxml.html.CheckboxGroup._value__get
lxml.html.InputElement._value__get
lxml.html.RadioGroup._value__get
lxml.html.SelectElement._value__get
-lxml.html.TextareaElement._value__get" class="py-name" href="#" onclick="return doclink('link-788', '_value__get', 'link-663');">_value__get</a></tt><tt class="py-op">.</tt><tt id="link-789" class="py-name"><a title="lxml.html.ElementSoup.__doc__
-lxml.html.soupparser.__doc__" class="py-name" href="#" onclick="return doclink('link-789', '__doc__', 'link-64');">__doc__</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1265"></a><tt class="py-lineno">1265</tt> <tt class="py-line"> </tt>
-<a name="RadioGroup.value_options"></a><div id="RadioGroup.value_options-def"><a name="L1266"></a><tt class="py-lineno">1266</tt> <a class="py-toggle" href="#" id="RadioGroup.value_options-toggle" onclick="return toggle('RadioGroup.value_options');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.RadioGroup-class.html#value_options">value_options</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="RadioGroup.value_options-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="RadioGroup.value_options-expanded"><a name="L1267"></a><tt class="py-lineno">1267</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1268"></a><tt class="py-lineno">1268</tt> <tt class="py-line"><tt class="py-docstring"> Returns a list of all the possible values.</tt> </tt>
-<a name="L1269"></a><tt class="py-lineno">1269</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1270"></a><tt class="py-lineno">1270</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-op">[</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-790" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.html.TextareaElement._value__get" class="py-name" href="#" onclick="return doclink('link-777', '_value__get', 'link-652');">_value__get</a></tt><tt class="py-op">.</tt><tt id="link-778" class="py-name"><a title="lxml.html.ElementSoup.__doc__
+lxml.html.soupparser.__doc__" class="py-name" href="#" onclick="return doclink('link-778', '__doc__', 'link-64');">__doc__</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1273"></a><tt class="py-lineno">1273</tt> <tt class="py-line"> </tt>
+<a name="RadioGroup.value_options"></a><div id="RadioGroup.value_options-def"><a name="L1274"></a><tt class="py-lineno">1274</tt> <a class="py-toggle" href="#" id="RadioGroup.value_options-toggle" onclick="return toggle('RadioGroup.value_options');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.RadioGroup-class.html#value_options">value_options</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="RadioGroup.value_options-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="RadioGroup.value_options-expanded"><a name="L1275"></a><tt class="py-lineno">1275</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1276"></a><tt class="py-lineno">1276</tt> <tt class="py-line"><tt class="py-docstring"> Returns a list of all the possible values.</tt> </tt>
+<a name="L1277"></a><tt class="py-lineno">1277</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1278"></a><tt class="py-lineno">1278</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-op">[</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-779" 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-790', 'get', 'link-82');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'value'</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">]</tt> </tt>
-</div><a name="L1271"></a><tt class="py-lineno">1271</tt> <tt class="py-line"> <tt id="link-791" class="py-name"><a title="lxml.html.CheckboxGroup.value_options
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-779', 'get', 'link-82');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'value'</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">]</tt> </tt>
+</div><a name="L1279"></a><tt class="py-lineno">1279</tt> <tt class="py-line"> <tt id="link-780" class="py-name"><a title="lxml.html.CheckboxGroup.value_options
lxml.html.RadioGroup.value_options
-lxml.html.SelectElement.value_options" class="py-name" href="#" onclick="return doclink('link-791', 'value_options', 'link-733');">value_options</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-792" class="py-name"><a title="lxml.html.CheckboxGroup.value_options
+lxml.html.SelectElement.value_options" class="py-name" href="#" onclick="return doclink('link-780', 'value_options', 'link-722');">value_options</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-781" class="py-name"><a title="lxml.html.CheckboxGroup.value_options
lxml.html.RadioGroup.value_options
-lxml.html.SelectElement.value_options" class="py-name" href="#" onclick="return doclink('link-792', 'value_options', 'link-733');">value_options</a></tt><tt class="py-op">,</tt> <tt class="py-name">doc</tt><tt class="py-op">=</tt><tt id="link-793" class="py-name"><a title="lxml.html.CheckboxGroup.value_options
+lxml.html.SelectElement.value_options" class="py-name" href="#" onclick="return doclink('link-781', 'value_options', 'link-722');">value_options</a></tt><tt class="py-op">,</tt> <tt class="py-name">doc</tt><tt class="py-op">=</tt><tt id="link-782" class="py-name"><a title="lxml.html.CheckboxGroup.value_options
lxml.html.RadioGroup.value_options
-lxml.html.SelectElement.value_options" class="py-name" href="#" onclick="return doclink('link-793', 'value_options', 'link-733');">value_options</a></tt><tt class="py-op">.</tt><tt id="link-794" class="py-name"><a title="lxml.html.ElementSoup.__doc__
-lxml.html.soupparser.__doc__" class="py-name" href="#" onclick="return doclink('link-794', '__doc__', 'link-64');">__doc__</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1272"></a><tt class="py-lineno">1272</tt> <tt class="py-line"> </tt>
-<a name="RadioGroup.__repr__"></a><div id="RadioGroup.__repr__-def"><a name="L1273"></a><tt class="py-lineno">1273</tt> <a class="py-toggle" href="#" id="RadioGroup.__repr__-toggle" onclick="return toggle('RadioGroup.__repr__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.RadioGroup-class.html#__repr__">__repr__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="RadioGroup.__repr__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="RadioGroup.__repr__-expanded"><a name="L1274"></a><tt class="py-lineno">1274</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">'%s(%s)'</tt> <tt class="py-op">%</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">self</tt><tt class="py-op">.</tt><tt class="py-name">__class__</tt><tt class="py-op">.</tt><tt class="py-name">__name__</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">list</tt><tt class="py-op">.</tt><tt id="link-795" class="py-name" targets="Method lxml.cssselect.CSSSelector.__repr__()=lxml.cssselect.CSSSelector-class.html#__repr__,Method lxml.etree.XPath.__repr__()=lxml.etree.XPath-class.html#__repr__,Method lxml.etree.XSLTAccessControl.__repr__()=lxml.etree.XSLTAccessControl-class.html#__repr__,Method lxml.etree._Attrib.__repr__()=lxml.etree._Attrib-class.html#__repr__,Method lxml.etree._BaseErrorLog.__repr__()=lxml.etree._BaseErrorLog-class.html#__repr__,Method lxml.etree._Comment.__repr__()=lxml.etree._Comment-class.html#__repr__,Method lxml.etree._Element.__repr__()=lxml.etree._Element-class.html#__repr__,Method lxml.etree._Entity.__repr__()=lxml.etree._Entity-class.html#__repr__,Method lxml.etree._IDDict.__repr__()=lxml.etree._IDDict-class.html#__repr__,Method lxml.etree._ListErrorLog.__repr__()=lxml.etree._ListErrorLog-class.html#__repr__,Method lxml.etree._LogEntry.__repr__()=lxml.etree._LogEntry-class.html#__repr__,Method lxml.etree._ProcessingInstruction.__repr__()=lxml.etree._ProcessingInstruction-class.html#__repr__,Method lxml.html.CheckboxGroup.__repr__()=lxml.html.CheckboxGroup-class.html#__repr__,Method lxml.html.CheckboxValues.__repr__()=lxml.html.CheckboxValues-class.html#__repr__,Method lxml.html.FieldsDict.__repr__()=lxml.html.FieldsDict-class.html#__repr__,Method lxml.html.InputGetter.__repr__()=lxml.html.InputGetter-class.html#__repr__,Method lxml.html.InputMixin.__repr__()=lxml.html.InputMixin-class.html#__repr__,Method lxml.html.MultipleSelectOptions.__repr__()=lxml.html.MultipleSelectOptions-class.html#__repr__,Method lxml.html.RadioGroup.__repr__()=lxml.html.RadioGroup-class.html#__repr__,Method lxml.html.diff.tag_token.__repr__()=lxml.html.diff.tag_token-class.html#__repr__,Method lxml.html.diff.token.__repr__()=lxml.html.diff.token-class.html#__repr__,Method lxml.objectify.BoolElement.__repr__()=lxml.objectify.BoolElement-class.html#__repr__,Method lxml.objectify.NoneElement.__repr__()=lxml.objectify.NoneElement-class.html#__repr__,Method lxml.objectify.NumberElement.__repr__()=lxml.objectify.NumberElement-class.html#__repr__,Method lxml.objectify.ObjectifiedDataElement.__repr__()=lxml.objectify.ObjectifiedDataElement-class.html#__repr__,Method lxml.objectify.PyType.__repr__()=lxml.objectify.PyType-class.html#__repr__,Method lxml.objectify.StringElement.__repr__()=lxml.objectify.StringElement-class.html#__repr__"><a title="lxml.cssselect.CSSSelector.__repr__
+lxml.html.SelectElement.value_options" class="py-name" href="#" onclick="return doclink('link-782', 'value_options', 'link-722');">value_options</a></tt><tt class="py-op">.</tt><tt id="link-783" class="py-name"><a title="lxml.html.ElementSoup.__doc__
+lxml.html.soupparser.__doc__" class="py-name" href="#" onclick="return doclink('link-783', '__doc__', 'link-64');">__doc__</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1280"></a><tt class="py-lineno">1280</tt> <tt class="py-line"> </tt>
+<a name="RadioGroup.__repr__"></a><div id="RadioGroup.__repr__-def"><a name="L1281"></a><tt class="py-lineno">1281</tt> <a class="py-toggle" href="#" id="RadioGroup.__repr__-toggle" onclick="return toggle('RadioGroup.__repr__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.RadioGroup-class.html#__repr__">__repr__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="RadioGroup.__repr__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="RadioGroup.__repr__-expanded"><a name="L1282"></a><tt class="py-lineno">1282</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">'%s(%s)'</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 class="py-name">__class__</tt><tt class="py-op">.</tt><tt class="py-name">__name__</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">list</tt><tt class="py-op">.</tt><tt id="link-784" class="py-name" targets="Method lxml.cssselect.CSSSelector.__repr__()=lxml.cssselect.CSSSelector-class.html#__repr__,Method lxml.etree.XPath.__repr__()=lxml.etree.XPath-class.html#__repr__,Method lxml.etree.XSLTAccessControl.__repr__()=lxml.etree.XSLTAccessControl-class.html#__repr__,Method lxml.etree._Attrib.__repr__()=lxml.etree._Attrib-class.html#__repr__,Method lxml.etree._BaseErrorLog.__repr__()=lxml.etree._BaseErrorLog-class.html#__repr__,Method lxml.etree._Comment.__repr__()=lxml.etree._Comment-class.html#__repr__,Method lxml.etree._Element.__repr__()=lxml.etree._Element-class.html#__repr__,Method lxml.etree._Entity.__repr__()=lxml.etree._Entity-class.html#__repr__,Method lxml.etree._IDDict.__repr__()=lxml.etree._IDDict-class.html#__repr__,Method lxml.etree._ListErrorLog.__repr__()=lxml.etree._ListErrorLog-class.html#__repr__,Method lxml.etree._LogEntry.__repr__()=lxml.etree._LogEntry-class.html#__repr__,Method lxml.etree._ProcessingInstruction.__repr__()=lxml.etree._ProcessingInstruction-class.html#__repr__,Method lxml.html.CheckboxGroup.__repr__()=lxml.html.CheckboxGroup-class.html#__repr__,Method lxml.html.CheckboxValues.__repr__()=lxml.html.CheckboxValues-class.html#__repr__,Method lxml.html.FieldsDict.__repr__()=lxml.html.FieldsDict-class.html#__repr__,Method lxml.html.InputGetter.__repr__()=lxml.html.InputGetter-class.html#__repr__,Method lxml.html.InputMixin.__repr__()=lxml.html.InputMixin-class.html#__repr__,Method lxml.html.MultipleSelectOptions.__repr__()=lxml.html.MultipleSelectOptions-class.html#__repr__,Method lxml.html.RadioGroup.__repr__()=lxml.html.RadioGroup-class.html#__repr__,Method lxml.html.diff.tag_token.__repr__()=lxml.html.diff.tag_token-class.html#__repr__,Method lxml.html.diff.token.__repr__()=lxml.html.diff.token-class.html#__repr__,Method lxml.objectify.BoolElement.__repr__()=lxml.objectify.BoolElement-class.html#__repr__,Method lxml.objectify.NoneElement.__repr__()=lxml.objectify.NoneElement-class.html#__repr__,Method lxml.objectify.NumberElement.__repr__()=lxml.objectify.NumberElement-class.html#__repr__,Method lxml.objectify.ObjectifiedDataElement.__repr__()=lxml.objectify.ObjectifiedDataElement-class.html#__repr__,Method lxml.objectify.PyType.__repr__()=lxml.objectify.PyType-class.html#__repr__,Method lxml.objectify.StringElement.__repr__()=lxml.objectify.StringElement-class.html#__repr__"><a title="lxml.cssselect.CSSSelector.__repr__
lxml.etree.XPath.__repr__
lxml.etree.XSLTAccessControl.__repr__
lxml.etree._Attrib.__repr__
lxml.objectify.NumberElement.__repr__
lxml.objectify.ObjectifiedDataElement.__repr__
lxml.objectify.PyType.__repr__
-lxml.objectify.StringElement.__repr__" class="py-name" href="#" onclick="return doclink('link-795', '__repr__', 'link-795');">__repr__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1277"></a><tt class="py-lineno">1277</tt> <tt class="py-line"> </tt>
-<a name="CheckboxGroup"></a><div id="CheckboxGroup-def"><a name="L1278"></a><tt class="py-lineno">1278</tt> <a class="py-toggle" href="#" id="CheckboxGroup-toggle" onclick="return toggle('CheckboxGroup');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.html.CheckboxGroup-class.html">CheckboxGroup</a><tt class="py-op">(</tt><tt class="py-base-class">list</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="CheckboxGroup-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="CheckboxGroup-expanded"><a name="L1279"></a><tt class="py-lineno">1279</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1280"></a><tt class="py-lineno">1280</tt> <tt class="py-line"><tt class="py-docstring"> Represents a group of checkboxes (``<input type=checkbox>``) that</tt> </tt>
-<a name="L1281"></a><tt class="py-lineno">1281</tt> <tt class="py-line"><tt class="py-docstring"> have the same name.</tt> </tt>
-<a name="L1282"></a><tt class="py-lineno">1282</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1283"></a><tt class="py-lineno">1283</tt> <tt class="py-line"><tt class="py-docstring"> In addition to using this like a list, the ``.value`` attribute</tt> </tt>
-<a name="L1284"></a><tt class="py-lineno">1284</tt> <tt class="py-line"><tt class="py-docstring"> returns a set-like object that you can add to or remove from to</tt> </tt>
-<a name="L1285"></a><tt class="py-lineno">1285</tt> <tt class="py-line"><tt class="py-docstring"> check and uncheck checkboxes. You can also use ``.value_options``</tt> </tt>
-<a name="L1286"></a><tt class="py-lineno">1286</tt> <tt class="py-line"><tt class="py-docstring"> to get the possible values.</tt> </tt>
-<a name="L1287"></a><tt class="py-lineno">1287</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1288"></a><tt class="py-lineno">1288</tt> <tt class="py-line"> </tt>
-<a name="CheckboxGroup._value__get"></a><div id="CheckboxGroup._value__get-def"><a name="L1289"></a><tt class="py-lineno">1289</tt> <a class="py-toggle" href="#" id="CheckboxGroup._value__get-toggle" onclick="return toggle('CheckboxGroup._value__get');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.CheckboxGroup-class.html#_value__get">_value__get</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="CheckboxGroup._value__get-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="CheckboxGroup._value__get-expanded"><a name="L1290"></a><tt class="py-lineno">1290</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1291"></a><tt class="py-lineno">1291</tt> <tt class="py-line"><tt class="py-docstring"> Return a set-like object that can be modified to check or</tt> </tt>
-<a name="L1292"></a><tt class="py-lineno">1292</tt> <tt class="py-line"><tt class="py-docstring"> uncheck individual checkboxes according to their value.</tt> </tt>
-<a name="L1293"></a><tt class="py-lineno">1293</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1294"></a><tt class="py-lineno">1294</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-796" class="py-name" targets="Class lxml.html.CheckboxValues=lxml.html.CheckboxValues-class.html"><a title="lxml.html.CheckboxValues" class="py-name" href="#" onclick="return doclink('link-796', 'CheckboxValues', 'link-796');">CheckboxValues</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
-</div><a name="CheckboxGroup._value__set"></a><div id="CheckboxGroup._value__set-def"><a name="L1295"></a><tt class="py-lineno">1295</tt> <a class="py-toggle" href="#" id="CheckboxGroup._value__set-toggle" onclick="return toggle('CheckboxGroup._value__set');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.CheckboxGroup-class.html#_value__set">_value__set</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="CheckboxGroup._value__set-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="CheckboxGroup._value__set-expanded"><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-797" 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-797', 'value', 'link-176');">value</a></tt><tt class="py-op">.</tt><tt id="link-798" class="py-name"><a title="lxml.etree._Attrib.clear
+lxml.objectify.StringElement.__repr__" class="py-name" href="#" onclick="return doclink('link-784', '__repr__', 'link-784');">__repr__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1285"></a><tt class="py-lineno">1285</tt> <tt class="py-line"> </tt>
+<a name="CheckboxGroup"></a><div id="CheckboxGroup-def"><a name="L1286"></a><tt class="py-lineno">1286</tt> <a class="py-toggle" href="#" id="CheckboxGroup-toggle" onclick="return toggle('CheckboxGroup');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.html.CheckboxGroup-class.html">CheckboxGroup</a><tt class="py-op">(</tt><tt class="py-base-class">list</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="CheckboxGroup-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="CheckboxGroup-expanded"><a name="L1287"></a><tt class="py-lineno">1287</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1288"></a><tt class="py-lineno">1288</tt> <tt class="py-line"><tt class="py-docstring"> Represents a group of checkboxes (``<input type=checkbox>``) that</tt> </tt>
+<a name="L1289"></a><tt class="py-lineno">1289</tt> <tt class="py-line"><tt class="py-docstring"> have the same name.</tt> </tt>
+<a name="L1290"></a><tt class="py-lineno">1290</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1291"></a><tt class="py-lineno">1291</tt> <tt class="py-line"><tt class="py-docstring"> In addition to using this like a list, the ``.value`` attribute</tt> </tt>
+<a name="L1292"></a><tt class="py-lineno">1292</tt> <tt class="py-line"><tt class="py-docstring"> returns a set-like object that you can add to or remove from to</tt> </tt>
+<a name="L1293"></a><tt class="py-lineno">1293</tt> <tt class="py-line"><tt class="py-docstring"> check and uncheck checkboxes. You can also use ``.value_options``</tt> </tt>
+<a name="L1294"></a><tt class="py-lineno">1294</tt> <tt class="py-line"><tt class="py-docstring"> to get the possible values.</tt> </tt>
+<a name="L1295"></a><tt class="py-lineno">1295</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1296"></a><tt class="py-lineno">1296</tt> <tt class="py-line"> </tt>
+<a name="CheckboxGroup._value__get"></a><div id="CheckboxGroup._value__get-def"><a name="L1297"></a><tt class="py-lineno">1297</tt> <a class="py-toggle" href="#" id="CheckboxGroup._value__get-toggle" onclick="return toggle('CheckboxGroup._value__get');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.CheckboxGroup-class.html#_value__get">_value__get</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="CheckboxGroup._value__get-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="CheckboxGroup._value__get-expanded"><a name="L1298"></a><tt class="py-lineno">1298</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1299"></a><tt class="py-lineno">1299</tt> <tt class="py-line"><tt class="py-docstring"> Return a set-like object that can be modified to check or</tt> </tt>
+<a name="L1300"></a><tt class="py-lineno">1300</tt> <tt class="py-line"><tt class="py-docstring"> uncheck individual checkboxes according to their value.</tt> </tt>
+<a name="L1301"></a><tt class="py-lineno">1301</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1302"></a><tt class="py-lineno">1302</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-785" class="py-name" targets="Class lxml.html.CheckboxValues=lxml.html.CheckboxValues-class.html"><a title="lxml.html.CheckboxValues" class="py-name" href="#" onclick="return doclink('link-785', 'CheckboxValues', 'link-785');">CheckboxValues</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
+</div><a name="CheckboxGroup._value__set"></a><div id="CheckboxGroup._value__set-def"><a name="L1303"></a><tt class="py-lineno">1303</tt> <a class="py-toggle" href="#" id="CheckboxGroup._value__set-toggle" onclick="return toggle('CheckboxGroup._value__set');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.CheckboxGroup-class.html#_value__set">_value__set</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="CheckboxGroup._value__set-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="CheckboxGroup._value__set-expanded"><a name="L1304"></a><tt class="py-lineno">1304</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-786" 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-786', 'value', 'link-176');">value</a></tt><tt class="py-op">.</tt><tt id="link-787" class="py-name"><a title="lxml.etree._Attrib.clear
lxml.etree._Element.clear
-lxml.etree._ErrorLog.clear" class="py-name" href="#" onclick="return doclink('link-798', 'clear', 'link-689');">clear</a></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-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-799" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-799', 'hasattr', 'link-310');">hasattr</a></tt><tt class="py-op">(</tt><tt id="link-800" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.etree._ErrorLog.clear" class="py-name" href="#" onclick="return doclink('link-787', 'clear', 'link-678');">clear</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1305"></a><tt class="py-lineno">1305</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-788" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-788', 'hasattr', 'link-561');">hasattr</a></tt><tt class="py-op">(</tt><tt id="link-789" 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-800', 'value', 'link-176');">value</a></tt><tt class="py-op">,</tt> <tt class="py-string">'__iter__'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1298"></a><tt class="py-lineno">1298</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">ValueError</tt><tt class="py-op">(</tt> </tt>
-<a name="L1299"></a><tt class="py-lineno">1299</tt> <tt class="py-line"> <tt class="py-string">"A CheckboxGroup (name=%r) must be set to a sequence (not %r)"</tt> </tt>
-<a name="L1300"></a><tt class="py-lineno">1300</tt> <tt class="py-line"> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">self</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-801" class="py-name"><a title="lxml.etree.DTD.name
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-789', 'value', 'link-176');">value</a></tt><tt class="py-op">,</tt> <tt class="py-string">'__iter__'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1306"></a><tt class="py-lineno">1306</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">ValueError</tt><tt class="py-op">(</tt> </tt>
+<a name="L1307"></a><tt class="py-lineno">1307</tt> <tt class="py-line"> <tt class="py-string">"A CheckboxGroup (name=%r) must be set to a sequence (not %r)"</tt> </tt>
+<a name="L1308"></a><tt class="py-lineno">1308</tt> <tt class="py-line"> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">self</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-790" 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-801', 'name', 'link-232');">name</a></tt><tt class="py-op">,</tt> <tt id="link-802" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-790', 'name', 'link-232');">name</a></tt><tt class="py-op">,</tt> <tt id="link-791" 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-802', 'value', 'link-176');">value</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1301"></a><tt class="py-lineno">1301</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-803" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-791', 'value', 'link-176');">value</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1309"></a><tt class="py-lineno">1309</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-792" 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-803', 'value', 'link-176');">value</a></tt><tt class="py-op">.</tt><tt id="link-804" class="py-name"><a title="lxml.etree._Attrib.update" class="py-name" href="#" onclick="return doclink('link-804', 'update', 'link-691');">update</a></tt><tt class="py-op">(</tt><tt id="link-805" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-792', 'value', 'link-176');">value</a></tt><tt class="py-op">.</tt><tt id="link-793" class="py-name"><a title="lxml.etree._Attrib.update" class="py-name" href="#" onclick="return doclink('link-793', 'update', 'link-680');">update</a></tt><tt class="py-op">(</tt><tt id="link-794" 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-805', 'value', 'link-176');">value</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="CheckboxGroup._value__del"></a><div id="CheckboxGroup._value__del-def"><a name="L1302"></a><tt class="py-lineno">1302</tt> <a class="py-toggle" href="#" id="CheckboxGroup._value__del-toggle" onclick="return toggle('CheckboxGroup._value__del');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.CheckboxGroup-class.html#_value__del">_value__del</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="CheckboxGroup._value__del-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="CheckboxGroup._value__del-expanded"><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-806" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-794', 'value', 'link-176');">value</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="CheckboxGroup._value__del"></a><div id="CheckboxGroup._value__del-def"><a name="L1310"></a><tt class="py-lineno">1310</tt> <a class="py-toggle" href="#" id="CheckboxGroup._value__del-toggle" onclick="return toggle('CheckboxGroup._value__del');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.CheckboxGroup-class.html#_value__del">_value__del</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="CheckboxGroup._value__del-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="CheckboxGroup._value__del-expanded"><a name="L1311"></a><tt class="py-lineno">1311</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-795" 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-806', 'value', 'link-176');">value</a></tt><tt class="py-op">.</tt><tt id="link-807" class="py-name"><a title="lxml.etree._Attrib.clear
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-795', 'value', 'link-176');">value</a></tt><tt class="py-op">.</tt><tt id="link-796" class="py-name"><a title="lxml.etree._Attrib.clear
lxml.etree._Element.clear
-lxml.etree._ErrorLog.clear" class="py-name" href="#" onclick="return doclink('link-807', 'clear', 'link-689');">clear</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1304"></a><tt class="py-lineno">1304</tt> <tt class="py-line"> <tt id="link-808" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.etree._ErrorLog.clear" class="py-name" href="#" onclick="return doclink('link-796', 'clear', 'link-678');">clear</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1312"></a><tt class="py-lineno">1312</tt> <tt class="py-line"> <tt id="link-797" 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-808', 'value', 'link-176');">value</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-809" class="py-name"><a title="lxml.html.CheckboxGroup._value__get
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-797', 'value', 'link-176');">value</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-798" class="py-name"><a title="lxml.html.CheckboxGroup._value__get
lxml.html.InputElement._value__get
lxml.html.RadioGroup._value__get
lxml.html.SelectElement._value__get
-lxml.html.TextareaElement._value__get" class="py-name" href="#" onclick="return doclink('link-809', '_value__get', 'link-663');">_value__get</a></tt><tt class="py-op">,</tt> <tt id="link-810" class="py-name"><a title="lxml.html.CheckboxGroup._value__set
+lxml.html.TextareaElement._value__get" class="py-name" href="#" onclick="return doclink('link-798', '_value__get', 'link-652');">_value__get</a></tt><tt class="py-op">,</tt> <tt id="link-799" class="py-name"><a title="lxml.html.CheckboxGroup._value__set
lxml.html.InputElement._value__set
lxml.html.RadioGroup._value__set
lxml.html.SelectElement._value__set
-lxml.html.TextareaElement._value__set" class="py-name" href="#" onclick="return doclink('link-810', '_value__set', 'link-664');">_value__set</a></tt><tt class="py-op">,</tt> <tt id="link-811" class="py-name"><a title="lxml.html.CheckboxGroup._value__del
+lxml.html.TextareaElement._value__set" class="py-name" href="#" onclick="return doclink('link-799', '_value__set', 'link-653');">_value__set</a></tt><tt class="py-op">,</tt> <tt id="link-800" class="py-name"><a title="lxml.html.CheckboxGroup._value__del
lxml.html.InputElement._value__del
lxml.html.RadioGroup._value__del
lxml.html.SelectElement._value__del
-lxml.html.TextareaElement._value__del" class="py-name" href="#" onclick="return doclink('link-811', '_value__del', 'link-665');">_value__del</a></tt><tt class="py-op">,</tt> <tt class="py-name">doc</tt><tt class="py-op">=</tt><tt id="link-812" class="py-name"><a title="lxml.html.CheckboxGroup._value__get
+lxml.html.TextareaElement._value__del" class="py-name" href="#" onclick="return doclink('link-800', '_value__del', 'link-654');">_value__del</a></tt><tt class="py-op">,</tt> <tt class="py-name">doc</tt><tt class="py-op">=</tt><tt id="link-801" class="py-name"><a title="lxml.html.CheckboxGroup._value__get
lxml.html.InputElement._value__get
lxml.html.RadioGroup._value__get
lxml.html.SelectElement._value__get
-lxml.html.TextareaElement._value__get" class="py-name" href="#" onclick="return doclink('link-812', '_value__get', 'link-663');">_value__get</a></tt><tt class="py-op">.</tt><tt id="link-813" class="py-name"><a title="lxml.html.ElementSoup.__doc__
-lxml.html.soupparser.__doc__" class="py-name" href="#" onclick="return doclink('link-813', '__doc__', 'link-64');">__doc__</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1305"></a><tt class="py-lineno">1305</tt> <tt class="py-line"> </tt>
-<a name="CheckboxGroup.value_options"></a><div id="CheckboxGroup.value_options-def"><a name="L1306"></a><tt class="py-lineno">1306</tt> <a class="py-toggle" href="#" id="CheckboxGroup.value_options-toggle" onclick="return toggle('CheckboxGroup.value_options');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.CheckboxGroup-class.html#value_options">value_options</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="CheckboxGroup.value_options-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="CheckboxGroup.value_options-expanded"><a name="L1307"></a><tt class="py-lineno">1307</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1308"></a><tt class="py-lineno">1308</tt> <tt class="py-line"><tt class="py-docstring"> Returns a list of all the possible values.</tt> </tt>
-<a name="L1309"></a><tt class="py-lineno">1309</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1310"></a><tt class="py-lineno">1310</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-op">[</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-814" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.html.TextareaElement._value__get" class="py-name" href="#" onclick="return doclink('link-801', '_value__get', 'link-652');">_value__get</a></tt><tt class="py-op">.</tt><tt id="link-802" class="py-name"><a title="lxml.html.ElementSoup.__doc__
+lxml.html.soupparser.__doc__" class="py-name" href="#" onclick="return doclink('link-802', '__doc__', 'link-64');">__doc__</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1313"></a><tt class="py-lineno">1313</tt> <tt class="py-line"> </tt>
+<a name="CheckboxGroup.value_options"></a><div id="CheckboxGroup.value_options-def"><a name="L1314"></a><tt class="py-lineno">1314</tt> <a class="py-toggle" href="#" id="CheckboxGroup.value_options-toggle" onclick="return toggle('CheckboxGroup.value_options');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.CheckboxGroup-class.html#value_options">value_options</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="CheckboxGroup.value_options-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="CheckboxGroup.value_options-expanded"><a name="L1315"></a><tt class="py-lineno">1315</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1316"></a><tt class="py-lineno">1316</tt> <tt class="py-line"><tt class="py-docstring"> Returns a list of all the possible values.</tt> </tt>
+<a name="L1317"></a><tt class="py-lineno">1317</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1318"></a><tt class="py-lineno">1318</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-op">[</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-803" 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-814', 'get', 'link-82');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'value'</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">]</tt> </tt>
-</div><a name="L1311"></a><tt class="py-lineno">1311</tt> <tt class="py-line"> <tt id="link-815" class="py-name"><a title="lxml.html.CheckboxGroup.value_options
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-803', 'get', 'link-82');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'value'</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">]</tt> </tt>
+</div><a name="L1319"></a><tt class="py-lineno">1319</tt> <tt class="py-line"> <tt id="link-804" class="py-name"><a title="lxml.html.CheckboxGroup.value_options
lxml.html.RadioGroup.value_options
-lxml.html.SelectElement.value_options" class="py-name" href="#" onclick="return doclink('link-815', 'value_options', 'link-733');">value_options</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-816" class="py-name"><a title="lxml.html.CheckboxGroup.value_options
+lxml.html.SelectElement.value_options" class="py-name" href="#" onclick="return doclink('link-804', 'value_options', 'link-722');">value_options</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-805" class="py-name"><a title="lxml.html.CheckboxGroup.value_options
lxml.html.RadioGroup.value_options
-lxml.html.SelectElement.value_options" class="py-name" href="#" onclick="return doclink('link-816', 'value_options', 'link-733');">value_options</a></tt><tt class="py-op">,</tt> <tt class="py-name">doc</tt><tt class="py-op">=</tt><tt id="link-817" class="py-name"><a title="lxml.html.CheckboxGroup.value_options
+lxml.html.SelectElement.value_options" class="py-name" href="#" onclick="return doclink('link-805', 'value_options', 'link-722');">value_options</a></tt><tt class="py-op">,</tt> <tt class="py-name">doc</tt><tt class="py-op">=</tt><tt id="link-806" class="py-name"><a title="lxml.html.CheckboxGroup.value_options
lxml.html.RadioGroup.value_options
-lxml.html.SelectElement.value_options" class="py-name" href="#" onclick="return doclink('link-817', 'value_options', 'link-733');">value_options</a></tt><tt class="py-op">.</tt><tt id="link-818" class="py-name"><a title="lxml.html.ElementSoup.__doc__
-lxml.html.soupparser.__doc__" class="py-name" href="#" onclick="return doclink('link-818', '__doc__', 'link-64');">__doc__</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1312"></a><tt class="py-lineno">1312</tt> <tt class="py-line"> </tt>
-<a name="CheckboxGroup.__repr__"></a><div id="CheckboxGroup.__repr__-def"><a name="L1313"></a><tt class="py-lineno">1313</tt> <a class="py-toggle" href="#" id="CheckboxGroup.__repr__-toggle" onclick="return toggle('CheckboxGroup.__repr__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.CheckboxGroup-class.html#__repr__">__repr__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="CheckboxGroup.__repr__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="CheckboxGroup.__repr__-expanded"><a name="L1314"></a><tt class="py-lineno">1314</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">'%s(%s)'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt> </tt>
-<a name="L1315"></a><tt class="py-lineno">1315</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__class__</tt><tt class="py-op">.</tt><tt class="py-name">__name__</tt><tt class="py-op">,</tt> <tt class="py-name">list</tt><tt class="py-op">.</tt><tt id="link-819" class="py-name"><a title="lxml.cssselect.CSSSelector.__repr__
+lxml.html.SelectElement.value_options" class="py-name" href="#" onclick="return doclink('link-806', 'value_options', 'link-722');">value_options</a></tt><tt class="py-op">.</tt><tt id="link-807" class="py-name"><a title="lxml.html.ElementSoup.__doc__
+lxml.html.soupparser.__doc__" class="py-name" href="#" onclick="return doclink('link-807', '__doc__', 'link-64');">__doc__</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1320"></a><tt class="py-lineno">1320</tt> <tt class="py-line"> </tt>
+<a name="CheckboxGroup.__repr__"></a><div id="CheckboxGroup.__repr__-def"><a name="L1321"></a><tt class="py-lineno">1321</tt> <a class="py-toggle" href="#" id="CheckboxGroup.__repr__-toggle" onclick="return toggle('CheckboxGroup.__repr__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.CheckboxGroup-class.html#__repr__">__repr__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="CheckboxGroup.__repr__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="CheckboxGroup.__repr__-expanded"><a name="L1322"></a><tt class="py-lineno">1322</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">'%s(%s)'</tt> <tt class="py-op">%</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">self</tt><tt class="py-op">.</tt><tt class="py-name">__class__</tt><tt class="py-op">.</tt><tt class="py-name">__name__</tt><tt class="py-op">,</tt> <tt class="py-name">list</tt><tt class="py-op">.</tt><tt id="link-808" class="py-name"><a title="lxml.cssselect.CSSSelector.__repr__
lxml.etree.XPath.__repr__
lxml.etree.XSLTAccessControl.__repr__
lxml.etree._Attrib.__repr__
lxml.objectify.NumberElement.__repr__
lxml.objectify.ObjectifiedDataElement.__repr__
lxml.objectify.PyType.__repr__
-lxml.objectify.StringElement.__repr__" class="py-name" href="#" onclick="return doclink('link-819', '__repr__', 'link-795');">__repr__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1316"></a><tt class="py-lineno">1316</tt> <tt class="py-line"> </tt>
-<a name="CheckboxValues"></a><div id="CheckboxValues-def"><a name="L1317"></a><tt class="py-lineno">1317</tt> <a class="py-toggle" href="#" id="CheckboxValues-toggle" onclick="return toggle('CheckboxValues');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.html.CheckboxValues-class.html">CheckboxValues</a><tt class="py-op">(</tt><tt class="py-base-class">SetMixin</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="CheckboxValues-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="CheckboxValues-expanded"><a name="L1318"></a><tt class="py-lineno">1318</tt> <tt class="py-line"> </tt>
-<a name="L1319"></a><tt class="py-lineno">1319</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1320"></a><tt class="py-lineno">1320</tt> <tt class="py-line"><tt class="py-docstring"> Represents the values of the checked checkboxes in a group of</tt> </tt>
-<a name="L1321"></a><tt class="py-lineno">1321</tt> <tt class="py-line"><tt class="py-docstring"> checkboxes with the same name.</tt> </tt>
-<a name="L1322"></a><tt class="py-lineno">1322</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1323"></a><tt class="py-lineno">1323</tt> <tt class="py-line"> </tt>
-<a name="CheckboxValues.__init__"></a><div id="CheckboxValues.__init__-def"><a name="L1324"></a><tt class="py-lineno">1324</tt> <a class="py-toggle" href="#" id="CheckboxValues.__init__-toggle" onclick="return toggle('CheckboxValues.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.CheckboxValues-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">group</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="CheckboxValues.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="CheckboxValues.__init__-expanded"><a name="L1325"></a><tt class="py-lineno">1325</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">group</tt> <tt class="py-op">=</tt> <tt class="py-name">group</tt> </tt>
-</div><a name="L1326"></a><tt class="py-lineno">1326</tt> <tt class="py-line"> </tt>
-<a name="CheckboxValues.__iter__"></a><div id="CheckboxValues.__iter__-def"><a name="L1327"></a><tt class="py-lineno">1327</tt> <a class="py-toggle" href="#" id="CheckboxValues.__iter__-toggle" onclick="return toggle('CheckboxValues.__iter__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.CheckboxValues-class.html#__iter__">__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="CheckboxValues.__iter__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="CheckboxValues.__iter__-expanded"><a name="L1328"></a><tt class="py-lineno">1328</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-820" class="py-name"><a title="lxml.etree._Element.iter
-lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-820', 'iter', 'link-162');">iter</a></tt><tt class="py-op">(</tt><tt class="py-op">[</tt> </tt>
-<a name="L1329"></a><tt class="py-lineno">1329</tt> <tt class="py-line"> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-821" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.objectify.StringElement.__repr__" class="py-name" href="#" onclick="return doclink('link-808', '__repr__', 'link-784');">__repr__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1324"></a><tt class="py-lineno">1324</tt> <tt class="py-line"> </tt>
+<a name="CheckboxValues"></a><div id="CheckboxValues-def"><a name="L1325"></a><tt class="py-lineno">1325</tt> <a class="py-toggle" href="#" id="CheckboxValues-toggle" onclick="return toggle('CheckboxValues');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.html.CheckboxValues-class.html">CheckboxValues</a><tt class="py-op">(</tt><tt class="py-base-class">SetMixin</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="CheckboxValues-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="CheckboxValues-expanded"><a name="L1326"></a><tt class="py-lineno">1326</tt> <tt class="py-line"> </tt>
+<a name="L1327"></a><tt class="py-lineno">1327</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1328"></a><tt class="py-lineno">1328</tt> <tt class="py-line"><tt class="py-docstring"> Represents the values of the checked checkboxes in a group of</tt> </tt>
+<a name="L1329"></a><tt class="py-lineno">1329</tt> <tt class="py-line"><tt class="py-docstring"> checkboxes with the same name.</tt> </tt>
+<a name="L1330"></a><tt class="py-lineno">1330</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1331"></a><tt class="py-lineno">1331</tt> <tt class="py-line"> </tt>
+<a name="CheckboxValues.__init__"></a><div id="CheckboxValues.__init__-def"><a name="L1332"></a><tt class="py-lineno">1332</tt> <a class="py-toggle" href="#" id="CheckboxValues.__init__-toggle" onclick="return toggle('CheckboxValues.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.CheckboxValues-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">group</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="CheckboxValues.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="CheckboxValues.__init__-expanded"><a name="L1333"></a><tt class="py-lineno">1333</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">group</tt> <tt class="py-op">=</tt> <tt class="py-name">group</tt> </tt>
+</div><a name="L1334"></a><tt class="py-lineno">1334</tt> <tt class="py-line"> </tt>
+<a name="CheckboxValues.__iter__"></a><div id="CheckboxValues.__iter__-def"><a name="L1335"></a><tt class="py-lineno">1335</tt> <a class="py-toggle" href="#" id="CheckboxValues.__iter__-toggle" onclick="return toggle('CheckboxValues.__iter__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.CheckboxValues-class.html#__iter__">__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="CheckboxValues.__iter__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="CheckboxValues.__iter__-expanded"><a name="L1336"></a><tt class="py-lineno">1336</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-809" class="py-name"><a title="lxml.etree._Element.iter
+lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-809', 'iter', 'link-162');">iter</a></tt><tt class="py-op">(</tt><tt class="py-op">[</tt> </tt>
+<a name="L1337"></a><tt class="py-lineno">1337</tt> <tt class="py-line"> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-810" 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-821', 'get', 'link-82');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'value'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1330"></a><tt class="py-lineno">1330</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">self</tt><tt class="py-op">.</tt><tt class="py-name">group</tt> </tt>
-<a name="L1331"></a><tt class="py-lineno">1331</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'checked'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-822" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-810', 'get', 'link-82');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'value'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1338"></a><tt class="py-lineno">1338</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">self</tt><tt class="py-op">.</tt><tt class="py-name">group</tt> </tt>
+<a name="L1339"></a><tt class="py-lineno">1339</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'checked'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-811" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-822', 'attrib', 'link-94');">attrib</a></tt><tt class="py-op">]</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="CheckboxValues.add"></a><div id="CheckboxValues.add-def"><a name="L1333"></a><tt class="py-lineno">1333</tt> <a class="py-toggle" href="#" id="CheckboxValues.add-toggle" onclick="return toggle('CheckboxValues.add');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.CheckboxValues-class.html#add">add</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="CheckboxValues.add-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="CheckboxValues.add-expanded"><a name="L1334"></a><tt class="py-lineno">1334</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">self</tt><tt class="py-op">.</tt><tt class="py-name">group</tt><tt class="py-op">:</tt> </tt>
-<a name="L1335"></a><tt class="py-lineno">1335</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-823" class="py-name"><a title="lxml.etree._Attrib.get
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-811', 'attrib', 'link-94');">attrib</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1340"></a><tt class="py-lineno">1340</tt> <tt class="py-line"> </tt>
+<a name="CheckboxValues.add"></a><div id="CheckboxValues.add-def"><a name="L1341"></a><tt class="py-lineno">1341</tt> <a class="py-toggle" href="#" id="CheckboxValues.add-toggle" onclick="return toggle('CheckboxValues.add');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.CheckboxValues-class.html#add">add</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="CheckboxValues.add-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="CheckboxValues.add-expanded"><a name="L1342"></a><tt class="py-lineno">1342</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">self</tt><tt class="py-op">.</tt><tt class="py-name">group</tt><tt class="py-op">:</tt> </tt>
+<a name="L1343"></a><tt class="py-lineno">1343</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-812" 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-823', 'get', 'link-82');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'value'</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt id="link-824" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-812', 'get', 'link-82');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'value'</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt id="link-813" 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-824', 'value', 'link-176');">value</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1336"></a><tt class="py-lineno">1336</tt> <tt class="py-line"> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-825" class="py-name"><a title="lxml.etree._Element.set
-lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-825', 'set', 'link-9');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'checked'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1337"></a><tt class="py-lineno">1337</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
-<a name="L1338"></a><tt class="py-lineno">1338</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1339"></a><tt class="py-lineno">1339</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">KeyError</tt><tt class="py-op">(</tt><tt class="py-string">"No checkbox with value %r"</tt> <tt class="py-op">%</tt> <tt id="link-826" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-813', 'value', 'link-176');">value</a></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">el</tt><tt class="py-op">.</tt><tt id="link-814" class="py-name"><a title="lxml.etree._Element.set
+lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-814', 'set', 'link-9');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'checked'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1345"></a><tt class="py-lineno">1345</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
+<a name="L1346"></a><tt class="py-lineno">1346</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1347"></a><tt class="py-lineno">1347</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">KeyError</tt><tt class="py-op">(</tt><tt class="py-string">"No checkbox with value %r"</tt> <tt class="py-op">%</tt> <tt id="link-815" 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-826', 'value', 'link-176');">value</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1340"></a><tt class="py-lineno">1340</tt> <tt class="py-line"> </tt>
-<a name="CheckboxValues.remove"></a><div id="CheckboxValues.remove-def"><a name="L1341"></a><tt class="py-lineno">1341</tt> <a class="py-toggle" href="#" id="CheckboxValues.remove-toggle" onclick="return toggle('CheckboxValues.remove');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.CheckboxValues-class.html#remove">remove</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="CheckboxValues.remove-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="CheckboxValues.remove-expanded"><a name="L1342"></a><tt class="py-lineno">1342</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">self</tt><tt class="py-op">.</tt><tt class="py-name">group</tt><tt class="py-op">:</tt> </tt>
-<a name="L1343"></a><tt class="py-lineno">1343</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-827" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-815', 'value', 'link-176');">value</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1348"></a><tt class="py-lineno">1348</tt> <tt class="py-line"> </tt>
+<a name="CheckboxValues.remove"></a><div id="CheckboxValues.remove-def"><a name="L1349"></a><tt class="py-lineno">1349</tt> <a class="py-toggle" href="#" id="CheckboxValues.remove-toggle" onclick="return toggle('CheckboxValues.remove');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.CheckboxValues-class.html#remove">remove</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="CheckboxValues.remove-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="CheckboxValues.remove-expanded"><a name="L1350"></a><tt class="py-lineno">1350</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">self</tt><tt class="py-op">.</tt><tt class="py-name">group</tt><tt class="py-op">:</tt> </tt>
+<a name="L1351"></a><tt class="py-lineno">1351</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-816" 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-827', 'get', 'link-82');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'value'</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt id="link-828" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-816', 'get', 'link-82');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'value'</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt id="link-817" 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-828', 'value', 'link-176');">value</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1344"></a><tt class="py-lineno">1344</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'checked'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-829" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-817', 'value', 'link-176');">value</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1352"></a><tt class="py-lineno">1352</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'checked'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-818" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-829', 'attrib', 'link-94');">attrib</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-keyword">del</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-830" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-818', 'attrib', 'link-94');">attrib</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1353"></a><tt class="py-lineno">1353</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-819" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-830', 'attrib', 'link-94');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'checked'</tt><tt class="py-op">]</tt> </tt>
-<a name="L1346"></a><tt class="py-lineno">1346</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1347"></a><tt class="py-lineno">1347</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">KeyError</tt><tt class="py-op">(</tt> </tt>
-<a name="L1348"></a><tt class="py-lineno">1348</tt> <tt class="py-line"> <tt class="py-string">"The checkbox with value %r was already unchecked"</tt> <tt class="py-op">%</tt> <tt id="link-831" class="py-name"><a title="lxml.html.CheckboxGroup.value
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-819', 'attrib', 'link-94');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'checked'</tt><tt class="py-op">]</tt> </tt>
+<a name="L1354"></a><tt class="py-lineno">1354</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1355"></a><tt class="py-lineno">1355</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">KeyError</tt><tt class="py-op">(</tt> </tt>
+<a name="L1356"></a><tt class="py-lineno">1356</tt> <tt class="py-line"> <tt class="py-string">"The checkbox with value %r was already unchecked"</tt> <tt class="py-op">%</tt> <tt id="link-820" 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-831', 'value', 'link-176');">value</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1349"></a><tt class="py-lineno">1349</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
-<a name="L1350"></a><tt class="py-lineno">1350</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1351"></a><tt class="py-lineno">1351</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">KeyError</tt><tt class="py-op">(</tt> </tt>
-<a name="L1352"></a><tt class="py-lineno">1352</tt> <tt class="py-line"> <tt class="py-string">"No checkbox with value %r"</tt> <tt class="py-op">%</tt> <tt id="link-832" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-820', 'value', 'link-176');">value</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1357"></a><tt class="py-lineno">1357</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
+<a name="L1358"></a><tt class="py-lineno">1358</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1359"></a><tt class="py-lineno">1359</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">KeyError</tt><tt class="py-op">(</tt> </tt>
+<a name="L1360"></a><tt class="py-lineno">1360</tt> <tt class="py-line"> <tt class="py-string">"No checkbox with value %r"</tt> <tt class="py-op">%</tt> <tt id="link-821" 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-832', 'value', 'link-176');">value</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1353"></a><tt class="py-lineno">1353</tt> <tt class="py-line"> </tt>
-<a name="CheckboxValues.__repr__"></a><div id="CheckboxValues.__repr__-def"><a name="L1354"></a><tt class="py-lineno">1354</tt> <a class="py-toggle" href="#" id="CheckboxValues.__repr__-toggle" onclick="return toggle('CheckboxValues.__repr__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.CheckboxValues-class.html#__repr__">__repr__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="CheckboxValues.__repr__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="CheckboxValues.__repr__-expanded"><a name="L1355"></a><tt class="py-lineno">1355</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">'<%s {%s} for checkboxes name=%r>'</tt> <tt class="py-op">%</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">self</tt><tt class="py-op">.</tt><tt class="py-name">__class__</tt><tt class="py-op">.</tt><tt class="py-name">__name__</tt><tt class="py-op">,</tt> </tt>
-<a name="L1357"></a><tt class="py-lineno">1357</tt> <tt class="py-line"> <tt class="py-string">', '</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">repr</tt><tt class="py-op">(</tt><tt id="link-833" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-833', 'v', 'link-521');">v</a></tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt id="link-834" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-834', 'v', 'link-521');">v</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1358"></a><tt class="py-lineno">1358</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">group</tt><tt class="py-op">.</tt><tt id="link-835" class="py-name"><a title="lxml.etree.DTD.name
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-821', 'value', 'link-176');">value</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1361"></a><tt class="py-lineno">1361</tt> <tt class="py-line"> </tt>
+<a name="CheckboxValues.__repr__"></a><div id="CheckboxValues.__repr__-def"><a name="L1362"></a><tt class="py-lineno">1362</tt> <a class="py-toggle" href="#" id="CheckboxValues.__repr__-toggle" onclick="return toggle('CheckboxValues.__repr__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.CheckboxValues-class.html#__repr__">__repr__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="CheckboxValues.__repr__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="CheckboxValues.__repr__-expanded"><a name="L1363"></a><tt class="py-lineno">1363</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">'<%s {%s} for checkboxes name=%r>'</tt> <tt class="py-op">%</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">self</tt><tt class="py-op">.</tt><tt class="py-name">__class__</tt><tt class="py-op">.</tt><tt class="py-name">__name__</tt><tt class="py-op">,</tt> </tt>
+<a name="L1365"></a><tt class="py-lineno">1365</tt> <tt class="py-line"> <tt class="py-string">', '</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">repr</tt><tt class="py-op">(</tt><tt id="link-822" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-822', 'v', 'link-510');">v</a></tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt id="link-823" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-823', 'v', 'link-510');">v</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">]</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">group</tt><tt class="py-op">.</tt><tt id="link-824" 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-835', 'name', 'link-232');">name</a></tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1359"></a><tt class="py-lineno">1359</tt> <tt class="py-line"> </tt>
-<a name="InputElement"></a><div id="InputElement-def"><a name="L1360"></a><tt class="py-lineno">1360</tt> <a class="py-toggle" href="#" id="InputElement-toggle" onclick="return toggle('InputElement');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.html.InputElement-class.html">InputElement</a><tt class="py-op">(</tt><tt class="py-base-class">InputMixin</tt><tt class="py-op">,</tt> <tt class="py-base-class">HtmlElement</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="InputElement-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="InputElement-expanded"><a name="L1361"></a><tt class="py-lineno">1361</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1362"></a><tt class="py-lineno">1362</tt> <tt class="py-line"><tt class="py-docstring"> Represents an ``<input>`` element.</tt> </tt>
-<a name="L1363"></a><tt class="py-lineno">1363</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1364"></a><tt class="py-lineno">1364</tt> <tt class="py-line"><tt class="py-docstring"> You can get the type with ``.type`` (which is lower-cased and</tt> </tt>
-<a name="L1365"></a><tt class="py-lineno">1365</tt> <tt class="py-line"><tt class="py-docstring"> defaults to ``'text'``).</tt> </tt>
-<a name="L1366"></a><tt class="py-lineno">1366</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1367"></a><tt class="py-lineno">1367</tt> <tt class="py-line"><tt class="py-docstring"> Also you can get and set the value with ``.value``</tt> </tt>
-<a name="L1368"></a><tt class="py-lineno">1368</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1369"></a><tt class="py-lineno">1369</tt> <tt class="py-line"><tt class="py-docstring"> Checkboxes and radios have the attribute ``input.checkable ==</tt> </tt>
-<a name="L1370"></a><tt class="py-lineno">1370</tt> <tt class="py-line"><tt class="py-docstring"> True`` (for all others it is false) and a boolean attribute</tt> </tt>
-<a name="L1371"></a><tt class="py-lineno">1371</tt> <tt class="py-line"><tt class="py-docstring"> ``.checked``.</tt> </tt>
-<a name="L1372"></a><tt class="py-lineno">1372</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1373"></a><tt class="py-lineno">1373</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1374"></a><tt class="py-lineno">1374</tt> <tt class="py-line"> </tt>
-<a name="L1375"></a><tt class="py-lineno">1375</tt> <tt class="py-line"> <tt class="py-comment">## FIXME: I'm a little uncomfortable with the use of .checked</tt> </tt>
-<a name="InputElement._value__get"></a><div id="InputElement._value__get-def"><a name="L1376"></a><tt class="py-lineno">1376</tt> <a class="py-toggle" href="#" id="InputElement._value__get-toggle" onclick="return toggle('InputElement._value__get');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.InputElement-class.html#_value__get">_value__get</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="InputElement._value__get-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="InputElement._value__get-expanded"><a name="L1377"></a><tt class="py-lineno">1377</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1378"></a><tt class="py-lineno">1378</tt> <tt class="py-line"><tt class="py-docstring"> Get/set the value of this element, using the ``value`` attribute.</tt> </tt>
-<a name="L1379"></a><tt class="py-lineno">1379</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1380"></a><tt class="py-lineno">1380</tt> <tt class="py-line"><tt class="py-docstring"> Also, if this is a checkbox and it has no value, this defaults</tt> </tt>
-<a name="L1381"></a><tt class="py-lineno">1381</tt> <tt class="py-line"><tt class="py-docstring"> to ``'on'``. If it is a checkbox or radio that is not</tt> </tt>
-<a name="L1382"></a><tt class="py-lineno">1382</tt> <tt class="py-line"><tt class="py-docstring"> checked, this returns None.</tt> </tt>
-<a name="L1383"></a><tt class="py-lineno">1383</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1384"></a><tt class="py-lineno">1384</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-836" class="py-name"><a title="lxml.html.InputElement.checkable" class="py-name" href="#" onclick="return doclink('link-836', 'checkable', 'link-531');">checkable</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-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-837" class="py-name"><a title="lxml.html.InputElement.checked" class="py-name" href="#" onclick="return doclink('link-837', 'checked', 'link-532');">checked</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1386"></a><tt class="py-lineno">1386</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-838" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-824', 'name', 'link-232');">name</a></tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1367"></a><tt class="py-lineno">1367</tt> <tt class="py-line"> </tt>
+<a name="InputElement"></a><div id="InputElement-def"><a name="L1368"></a><tt class="py-lineno">1368</tt> <a class="py-toggle" href="#" id="InputElement-toggle" onclick="return toggle('InputElement');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.html.InputElement-class.html">InputElement</a><tt class="py-op">(</tt><tt class="py-base-class">InputMixin</tt><tt class="py-op">,</tt> <tt class="py-base-class">HtmlElement</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="InputElement-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="InputElement-expanded"><a name="L1369"></a><tt class="py-lineno">1369</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1370"></a><tt class="py-lineno">1370</tt> <tt class="py-line"><tt class="py-docstring"> Represents an ``<input>`` element.</tt> </tt>
+<a name="L1371"></a><tt class="py-lineno">1371</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1372"></a><tt class="py-lineno">1372</tt> <tt class="py-line"><tt class="py-docstring"> You can get the type with ``.type`` (which is lower-cased and</tt> </tt>
+<a name="L1373"></a><tt class="py-lineno">1373</tt> <tt class="py-line"><tt class="py-docstring"> defaults to ``'text'``).</tt> </tt>
+<a name="L1374"></a><tt class="py-lineno">1374</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1375"></a><tt class="py-lineno">1375</tt> <tt class="py-line"><tt class="py-docstring"> Also you can get and set the value with ``.value``</tt> </tt>
+<a name="L1376"></a><tt class="py-lineno">1376</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1377"></a><tt class="py-lineno">1377</tt> <tt class="py-line"><tt class="py-docstring"> Checkboxes and radios have the attribute ``input.checkable ==</tt> </tt>
+<a name="L1378"></a><tt class="py-lineno">1378</tt> <tt class="py-line"><tt class="py-docstring"> True`` (for all others it is false) and a boolean attribute</tt> </tt>
+<a name="L1379"></a><tt class="py-lineno">1379</tt> <tt class="py-line"><tt class="py-docstring"> ``.checked``.</tt> </tt>
+<a name="L1380"></a><tt class="py-lineno">1380</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1381"></a><tt class="py-lineno">1381</tt> <tt class="py-line"><tt class="py-docstring"> """</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">## FIXME: I'm a little uncomfortable with the use of .checked</tt> </tt>
+<a name="InputElement._value__get"></a><div id="InputElement._value__get-def"><a name="L1384"></a><tt class="py-lineno">1384</tt> <a class="py-toggle" href="#" id="InputElement._value__get-toggle" onclick="return toggle('InputElement._value__get');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.InputElement-class.html#_value__get">_value__get</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="InputElement._value__get-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="InputElement._value__get-expanded"><a name="L1385"></a><tt class="py-lineno">1385</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1386"></a><tt class="py-lineno">1386</tt> <tt class="py-line"><tt class="py-docstring"> Get/set the value of this element, using the ``value`` attribute.</tt> </tt>
+<a name="L1387"></a><tt class="py-lineno">1387</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1388"></a><tt class="py-lineno">1388</tt> <tt class="py-line"><tt class="py-docstring"> Also, if this is a checkbox and it has no value, this defaults</tt> </tt>
+<a name="L1389"></a><tt class="py-lineno">1389</tt> <tt class="py-line"><tt class="py-docstring"> to ``'on'``. If it is a checkbox or radio that is not</tt> </tt>
+<a name="L1390"></a><tt class="py-lineno">1390</tt> <tt class="py-line"><tt class="py-docstring"> checked, this returns None.</tt> </tt>
+<a name="L1391"></a><tt class="py-lineno">1391</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1392"></a><tt class="py-lineno">1392</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-825" class="py-name"><a title="lxml.html.InputElement.checkable" class="py-name" href="#" onclick="return doclink('link-825', 'checkable', 'link-520');">checkable</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1393"></a><tt class="py-lineno">1393</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-826" class="py-name"><a title="lxml.html.InputElement.checked" class="py-name" href="#" onclick="return doclink('link-826', 'checked', 'link-521');">checked</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-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-827" 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-838', 'get', 'link-82');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'value'</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-string">'on'</tt> </tt>
-<a name="L1387"></a><tt class="py-lineno">1387</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1388"></a><tt class="py-lineno">1388</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
-<a name="L1389"></a><tt class="py-lineno">1389</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-839" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-827', 'get', 'link-82');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'value'</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-string">'on'</tt> </tt>
+<a name="L1395"></a><tt class="py-lineno">1395</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1396"></a><tt class="py-lineno">1396</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
+<a name="L1397"></a><tt class="py-lineno">1397</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-828" 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-839', 'get', 'link-82');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'value'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="InputElement._value__set"></a><div id="InputElement._value__set-def"><a name="L1390"></a><tt class="py-lineno">1390</tt> <a class="py-toggle" href="#" id="InputElement._value__set-toggle" onclick="return toggle('InputElement._value__set');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.InputElement-class.html#_value__set">_value__set</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="InputElement._value__set-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="InputElement._value__set-expanded"><a name="L1391"></a><tt class="py-lineno">1391</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-840" class="py-name"><a title="lxml.html.InputElement.checkable" class="py-name" href="#" onclick="return doclink('link-840', 'checkable', 'link-531');">checkable</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-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-841" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-828', 'get', 'link-82');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'value'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="InputElement._value__set"></a><div id="InputElement._value__set-def"><a name="L1398"></a><tt class="py-lineno">1398</tt> <a class="py-toggle" href="#" id="InputElement._value__set-toggle" onclick="return toggle('InputElement._value__set');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.InputElement-class.html#_value__set">_value__set</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="InputElement._value__set-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="InputElement._value__set-expanded"><a name="L1399"></a><tt class="py-lineno">1399</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-829" class="py-name"><a title="lxml.html.InputElement.checkable" class="py-name" href="#" onclick="return doclink('link-829', 'checkable', 'link-520');">checkable</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1400"></a><tt class="py-lineno">1400</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-830" 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-841', 'value', 'link-176');">value</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1393"></a><tt class="py-lineno">1393</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-842" class="py-name"><a title="lxml.html.InputElement.checked" class="py-name" href="#" onclick="return doclink('link-842', 'checked', 'link-532');">checked</a></tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
-<a name="L1394"></a><tt class="py-lineno">1394</tt> <tt class="py-line"> <tt class="py-keyword">else</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-843" class="py-name"><a title="lxml.html.InputElement.checked" class="py-name" href="#" onclick="return doclink('link-843', 'checked', 'link-532');">checked</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L1396"></a><tt class="py-lineno">1396</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-844" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-830', 'value', 'link-176');">value</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">self</tt><tt class="py-op">.</tt><tt id="link-831" class="py-name"><a title="lxml.html.InputElement.checked" class="py-name" href="#" onclick="return doclink('link-831', 'checked', 'link-521');">checked</a></tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L1402"></a><tt class="py-lineno">1402</tt> <tt class="py-line"> <tt class="py-keyword">else</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">self</tt><tt class="py-op">.</tt><tt id="link-832" class="py-name"><a title="lxml.html.InputElement.checked" class="py-name" href="#" onclick="return doclink('link-832', 'checked', 'link-521');">checked</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L1404"></a><tt class="py-lineno">1404</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-833" 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-844', 'value', 'link-176');">value</a></tt><tt class="py-op">,</tt> <tt id="link-845" class="py-name"><a title="lxml.html.basestring
-lxml.html.clean.basestring" class="py-name" href="#" onclick="return doclink('link-845', 'basestring', 'link-13');">basestring</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1397"></a><tt class="py-lineno">1397</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-846" class="py-name"><a title="lxml.etree._Element.set
-lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-846', 'set', 'link-9');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'value'</tt><tt class="py-op">,</tt> <tt id="link-847" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-833', 'value', 'link-176');">value</a></tt><tt class="py-op">,</tt> <tt id="link-834" class="py-name"><a title="lxml.html.basestring
+lxml.html.clean.basestring" class="py-name" href="#" onclick="return doclink('link-834', 'basestring', 'link-13');">basestring</a></tt><tt class="py-op">)</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">self</tt><tt class="py-op">.</tt><tt id="link-835" class="py-name"><a title="lxml.etree._Element.set
+lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-835', 'set', 'link-9');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'value'</tt><tt class="py-op">,</tt> <tt id="link-836" 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-847', 'value', 'link-176');">value</a></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">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1399"></a><tt class="py-lineno">1399</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-848" class="py-name"><a title="lxml.etree._Element.set
-lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-848', 'set', 'link-9');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'value'</tt><tt class="py-op">,</tt> <tt id="link-849" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-836', 'value', 'link-176');">value</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1406"></a><tt class="py-lineno">1406</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1407"></a><tt class="py-lineno">1407</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-837" class="py-name"><a title="lxml.etree._Element.set
+lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-837', 'set', 'link-9');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'value'</tt><tt class="py-op">,</tt> <tt id="link-838" 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-849', 'value', 'link-176');">value</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="InputElement._value__del"></a><div id="InputElement._value__del-def"><a name="L1400"></a><tt class="py-lineno">1400</tt> <a class="py-toggle" href="#" id="InputElement._value__del-toggle" onclick="return toggle('InputElement._value__del');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.InputElement-class.html#_value__del">_value__del</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="InputElement._value__del-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="InputElement._value__del-expanded"><a name="L1401"></a><tt class="py-lineno">1401</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-850" class="py-name"><a title="lxml.html.InputElement.checkable" class="py-name" href="#" onclick="return doclink('link-850', 'checkable', 'link-531');">checkable</a></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-851" class="py-name"><a title="lxml.html.InputElement.checked" class="py-name" href="#" onclick="return doclink('link-851', 'checked', 'link-532');">checked</a></tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
-<a name="L1403"></a><tt class="py-lineno">1403</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1404"></a><tt class="py-lineno">1404</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'value'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-852" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-838', 'value', 'link-176');">value</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="InputElement._value__del"></a><div id="InputElement._value__del-def"><a name="L1408"></a><tt class="py-lineno">1408</tt> <a class="py-toggle" href="#" id="InputElement._value__del-toggle" onclick="return toggle('InputElement._value__del');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.InputElement-class.html#_value__del">_value__del</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="InputElement._value__del-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="InputElement._value__del-expanded"><a name="L1409"></a><tt class="py-lineno">1409</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-839" class="py-name"><a title="lxml.html.InputElement.checkable" class="py-name" href="#" onclick="return doclink('link-839', 'checkable', 'link-520');">checkable</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">self</tt><tt class="py-op">.</tt><tt id="link-840" class="py-name"><a title="lxml.html.InputElement.checked" class="py-name" href="#" onclick="return doclink('link-840', 'checked', 'link-521');">checked</a></tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L1411"></a><tt class="py-lineno">1411</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1412"></a><tt class="py-lineno">1412</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'value'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-841" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-852', 'attrib', 'link-94');">attrib</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1405"></a><tt class="py-lineno">1405</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-853" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-841', 'attrib', 'link-94');">attrib</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1413"></a><tt class="py-lineno">1413</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-842" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-853', 'attrib', 'link-94');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'value'</tt><tt class="py-op">]</tt> </tt>
-</div><a name="L1406"></a><tt class="py-lineno">1406</tt> <tt class="py-line"> <tt id="link-854" class="py-name"><a title="lxml.html.CheckboxGroup.value
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-842', 'attrib', 'link-94');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'value'</tt><tt class="py-op">]</tt> </tt>
+</div><a name="L1414"></a><tt class="py-lineno">1414</tt> <tt class="py-line"> <tt id="link-843" 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-854', 'value', 'link-176');">value</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-855" class="py-name"><a title="lxml.html.CheckboxGroup._value__get
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-843', 'value', 'link-176');">value</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-844" class="py-name"><a title="lxml.html.CheckboxGroup._value__get
lxml.html.InputElement._value__get
lxml.html.RadioGroup._value__get
lxml.html.SelectElement._value__get
-lxml.html.TextareaElement._value__get" class="py-name" href="#" onclick="return doclink('link-855', '_value__get', 'link-663');">_value__get</a></tt><tt class="py-op">,</tt> <tt id="link-856" class="py-name"><a title="lxml.html.CheckboxGroup._value__set
+lxml.html.TextareaElement._value__get" class="py-name" href="#" onclick="return doclink('link-844', '_value__get', 'link-652');">_value__get</a></tt><tt class="py-op">,</tt> <tt id="link-845" class="py-name"><a title="lxml.html.CheckboxGroup._value__set
lxml.html.InputElement._value__set
lxml.html.RadioGroup._value__set
lxml.html.SelectElement._value__set
-lxml.html.TextareaElement._value__set" class="py-name" href="#" onclick="return doclink('link-856', '_value__set', 'link-664');">_value__set</a></tt><tt class="py-op">,</tt> <tt id="link-857" class="py-name"><a title="lxml.html.CheckboxGroup._value__del
+lxml.html.TextareaElement._value__set" class="py-name" href="#" onclick="return doclink('link-845', '_value__set', 'link-653');">_value__set</a></tt><tt class="py-op">,</tt> <tt id="link-846" class="py-name"><a title="lxml.html.CheckboxGroup._value__del
lxml.html.InputElement._value__del
lxml.html.RadioGroup._value__del
lxml.html.SelectElement._value__del
-lxml.html.TextareaElement._value__del" class="py-name" href="#" onclick="return doclink('link-857', '_value__del', 'link-665');">_value__del</a></tt><tt class="py-op">,</tt> <tt class="py-name">doc</tt><tt class="py-op">=</tt><tt id="link-858" class="py-name"><a title="lxml.html.CheckboxGroup._value__get
+lxml.html.TextareaElement._value__del" class="py-name" href="#" onclick="return doclink('link-846', '_value__del', 'link-654');">_value__del</a></tt><tt class="py-op">,</tt> <tt class="py-name">doc</tt><tt class="py-op">=</tt><tt id="link-847" class="py-name"><a title="lxml.html.CheckboxGroup._value__get
lxml.html.InputElement._value__get
lxml.html.RadioGroup._value__get
lxml.html.SelectElement._value__get
-lxml.html.TextareaElement._value__get" class="py-name" href="#" onclick="return doclink('link-858', '_value__get', 'link-663');">_value__get</a></tt><tt class="py-op">.</tt><tt id="link-859" class="py-name"><a title="lxml.html.ElementSoup.__doc__
-lxml.html.soupparser.__doc__" class="py-name" href="#" onclick="return doclink('link-859', '__doc__', 'link-64');">__doc__</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1407"></a><tt class="py-lineno">1407</tt> <tt class="py-line"> </tt>
-<a name="InputElement._type__get"></a><div id="InputElement._type__get-def"><a name="L1408"></a><tt class="py-lineno">1408</tt> <a class="py-toggle" href="#" id="InputElement._type__get-toggle" onclick="return toggle('InputElement._type__get');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.InputElement-class.html#_type__get">_type__get</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="InputElement._type__get-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="InputElement._type__get-expanded"><a name="L1409"></a><tt class="py-lineno">1409</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1410"></a><tt class="py-lineno">1410</tt> <tt class="py-line"><tt class="py-docstring"> Return the type of this element (using the type attribute).</tt> </tt>
-<a name="L1411"></a><tt class="py-lineno">1411</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1412"></a><tt class="py-lineno">1412</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-860" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.html.TextareaElement._value__get" class="py-name" href="#" onclick="return doclink('link-847', '_value__get', 'link-652');">_value__get</a></tt><tt class="py-op">.</tt><tt id="link-848" class="py-name"><a title="lxml.html.ElementSoup.__doc__
+lxml.html.soupparser.__doc__" class="py-name" href="#" onclick="return doclink('link-848', '__doc__', 'link-64');">__doc__</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1415"></a><tt class="py-lineno">1415</tt> <tt class="py-line"> </tt>
+<a name="InputElement._type__get"></a><div id="InputElement._type__get-def"><a name="L1416"></a><tt class="py-lineno">1416</tt> <a class="py-toggle" href="#" id="InputElement._type__get-toggle" onclick="return toggle('InputElement._type__get');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.InputElement-class.html#_type__get">_type__get</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="InputElement._type__get-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="InputElement._type__get-expanded"><a name="L1417"></a><tt class="py-lineno">1417</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1418"></a><tt class="py-lineno">1418</tt> <tt class="py-line"><tt class="py-docstring"> Return the type of this element (using the type attribute).</tt> </tt>
+<a name="L1419"></a><tt class="py-lineno">1419</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1420"></a><tt class="py-lineno">1420</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-849" 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-860', 'get', 'link-82');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'type'</tt><tt class="py-op">,</tt> <tt class="py-string">'text'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">lower</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="InputElement._type__set"></a><div id="InputElement._type__set-def"><a name="L1413"></a><tt class="py-lineno">1413</tt> <a class="py-toggle" href="#" id="InputElement._type__set-toggle" onclick="return toggle('InputElement._type__set');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.InputElement-class.html#_type__set">_type__set</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="InputElement._type__set-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="InputElement._type__set-expanded"><a name="L1414"></a><tt class="py-lineno">1414</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-861" class="py-name"><a title="lxml.etree._Element.set
-lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-861', 'set', 'link-9');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'type'</tt><tt class="py-op">,</tt> <tt id="link-862" 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-862', 'value', 'link-176');">value</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1415"></a><tt class="py-lineno">1415</tt> <tt class="py-line"> <tt id="link-863" class="py-name"><a title="lxml.etree._LogEntry.type
-lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-863', 'type', 'link-239');">type</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-864" class="py-name" targets="Method lxml.html.InputElement._type__get()=lxml.html.InputElement-class.html#_type__get"><a title="lxml.html.InputElement._type__get" class="py-name" href="#" onclick="return doclink('link-864', '_type__get', 'link-864');">_type__get</a></tt><tt class="py-op">,</tt> <tt id="link-865" class="py-name" targets="Method lxml.html.InputElement._type__set()=lxml.html.InputElement-class.html#_type__set"><a title="lxml.html.InputElement._type__set" class="py-name" href="#" onclick="return doclink('link-865', '_type__set', 'link-865');">_type__set</a></tt><tt class="py-op">,</tt> <tt class="py-name">doc</tt><tt class="py-op">=</tt><tt id="link-866" class="py-name"><a title="lxml.html.InputElement._type__get" class="py-name" href="#" onclick="return doclink('link-866', '_type__get', 'link-864');">_type__get</a></tt><tt class="py-op">.</tt><tt id="link-867" class="py-name"><a title="lxml.html.ElementSoup.__doc__
-lxml.html.soupparser.__doc__" class="py-name" href="#" onclick="return doclink('link-867', '__doc__', 'link-64');">__doc__</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="InputElement.checkable"></a><div id="InputElement.checkable-def"><a name="L1417"></a><tt class="py-lineno">1417</tt> <a class="py-toggle" href="#" id="InputElement.checkable-toggle" onclick="return toggle('InputElement.checkable');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.InputElement-class.html#checkable">checkable</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="InputElement.checkable-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="InputElement.checkable-expanded"><a name="L1418"></a><tt class="py-lineno">1418</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1419"></a><tt class="py-lineno">1419</tt> <tt class="py-line"><tt class="py-docstring"> Boolean: can this element be checked?</tt> </tt>
-<a name="L1420"></a><tt class="py-lineno">1420</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1421"></a><tt class="py-lineno">1421</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-868" class="py-name"><a title="lxml.etree._LogEntry.type
-lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-868', 'type', 'link-239');">type</a></tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-string">'checkbox'</tt><tt class="py-op">,</tt> <tt class="py-string">'radio'</tt><tt class="py-op">]</tt> </tt>
-</div><a name="L1422"></a><tt class="py-lineno">1422</tt> <tt class="py-line"> <tt id="link-869" class="py-name"><a title="lxml.html.InputElement.checkable" class="py-name" href="#" onclick="return doclink('link-869', 'checkable', 'link-531');">checkable</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-870" class="py-name"><a title="lxml.html.InputElement.checkable" class="py-name" href="#" onclick="return doclink('link-870', 'checkable', 'link-531');">checkable</a></tt><tt class="py-op">,</tt> <tt class="py-name">doc</tt><tt class="py-op">=</tt><tt id="link-871" class="py-name"><a title="lxml.html.InputElement.checkable" class="py-name" href="#" onclick="return doclink('link-871', 'checkable', 'link-531');">checkable</a></tt><tt class="py-op">.</tt><tt id="link-872" class="py-name"><a title="lxml.html.ElementSoup.__doc__
-lxml.html.soupparser.__doc__" class="py-name" href="#" onclick="return doclink('link-872', '__doc__', 'link-64');">__doc__</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="InputElement._checked__get"></a><div id="InputElement._checked__get-def"><a name="L1424"></a><tt class="py-lineno">1424</tt> <a class="py-toggle" href="#" id="InputElement._checked__get-toggle" onclick="return toggle('InputElement._checked__get');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.InputElement-class.html#_checked__get">_checked__get</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="InputElement._checked__get-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="InputElement._checked__get-expanded"><a name="L1425"></a><tt class="py-lineno">1425</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1426"></a><tt class="py-lineno">1426</tt> <tt class="py-line"><tt class="py-docstring"> Boolean attribute to get/set the presence of the ``checked``</tt> </tt>
-<a name="L1427"></a><tt class="py-lineno">1427</tt> <tt class="py-line"><tt class="py-docstring"> attribute.</tt> </tt>
-<a name="L1428"></a><tt class="py-lineno">1428</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1429"></a><tt class="py-lineno">1429</tt> <tt class="py-line"><tt class="py-docstring"> You can only use this on checkable input types.</tt> </tt>
-<a name="L1430"></a><tt class="py-lineno">1430</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1431"></a><tt class="py-lineno">1431</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-873" class="py-name"><a title="lxml.html.InputElement.checkable" class="py-name" href="#" onclick="return doclink('link-873', 'checkable', 'link-531');">checkable</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1432"></a><tt class="py-lineno">1432</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">(</tt><tt class="py-string">'Not a checkable input type'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1433"></a><tt class="py-lineno">1433</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">'checked'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-874" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-849', 'get', 'link-82');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'type'</tt><tt class="py-op">,</tt> <tt class="py-string">'text'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">lower</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="InputElement._type__set"></a><div id="InputElement._type__set-def"><a name="L1421"></a><tt class="py-lineno">1421</tt> <a class="py-toggle" href="#" id="InputElement._type__set-toggle" onclick="return toggle('InputElement._type__set');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.InputElement-class.html#_type__set">_type__set</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="InputElement._type__set-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="InputElement._type__set-expanded"><a name="L1422"></a><tt class="py-lineno">1422</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-850" class="py-name"><a title="lxml.etree._Element.set
+lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-850', 'set', 'link-9');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'type'</tt><tt class="py-op">,</tt> <tt id="link-851" 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-851', 'value', 'link-176');">value</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1423"></a><tt class="py-lineno">1423</tt> <tt class="py-line"> <tt id="link-852" class="py-name"><a title="lxml.etree._LogEntry.type
+lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-852', 'type', 'link-239');">type</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-853" class="py-name" targets="Method lxml.html.InputElement._type__get()=lxml.html.InputElement-class.html#_type__get"><a title="lxml.html.InputElement._type__get" class="py-name" href="#" onclick="return doclink('link-853', '_type__get', 'link-853');">_type__get</a></tt><tt class="py-op">,</tt> <tt id="link-854" class="py-name" targets="Method lxml.html.InputElement._type__set()=lxml.html.InputElement-class.html#_type__set"><a title="lxml.html.InputElement._type__set" class="py-name" href="#" onclick="return doclink('link-854', '_type__set', 'link-854');">_type__set</a></tt><tt class="py-op">,</tt> <tt class="py-name">doc</tt><tt class="py-op">=</tt><tt id="link-855" class="py-name"><a title="lxml.html.InputElement._type__get" class="py-name" href="#" onclick="return doclink('link-855', '_type__get', 'link-853');">_type__get</a></tt><tt class="py-op">.</tt><tt id="link-856" class="py-name"><a title="lxml.html.ElementSoup.__doc__
+lxml.html.soupparser.__doc__" class="py-name" href="#" onclick="return doclink('link-856', '__doc__', 'link-64');">__doc__</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1424"></a><tt class="py-lineno">1424</tt> <tt class="py-line"> </tt>
+<a name="InputElement.checkable"></a><div id="InputElement.checkable-def"><a name="L1425"></a><tt class="py-lineno">1425</tt> <a class="py-toggle" href="#" id="InputElement.checkable-toggle" onclick="return toggle('InputElement.checkable');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.InputElement-class.html#checkable">checkable</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="InputElement.checkable-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="InputElement.checkable-expanded"><a name="L1426"></a><tt class="py-lineno">1426</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1427"></a><tt class="py-lineno">1427</tt> <tt class="py-line"><tt class="py-docstring"> Boolean: can this element be checked?</tt> </tt>
+<a name="L1428"></a><tt class="py-lineno">1428</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1429"></a><tt class="py-lineno">1429</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-857" class="py-name"><a title="lxml.etree._LogEntry.type
+lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-857', 'type', 'link-239');">type</a></tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-string">'checkbox'</tt><tt class="py-op">,</tt> <tt class="py-string">'radio'</tt><tt class="py-op">]</tt> </tt>
+</div><a name="L1430"></a><tt class="py-lineno">1430</tt> <tt class="py-line"> <tt id="link-858" class="py-name"><a title="lxml.html.InputElement.checkable" class="py-name" href="#" onclick="return doclink('link-858', 'checkable', 'link-520');">checkable</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-859" class="py-name"><a title="lxml.html.InputElement.checkable" class="py-name" href="#" onclick="return doclink('link-859', 'checkable', 'link-520');">checkable</a></tt><tt class="py-op">,</tt> <tt class="py-name">doc</tt><tt class="py-op">=</tt><tt id="link-860" class="py-name"><a title="lxml.html.InputElement.checkable" class="py-name" href="#" onclick="return doclink('link-860', 'checkable', 'link-520');">checkable</a></tt><tt class="py-op">.</tt><tt id="link-861" class="py-name"><a title="lxml.html.ElementSoup.__doc__
+lxml.html.soupparser.__doc__" class="py-name" href="#" onclick="return doclink('link-861', '__doc__', 'link-64');">__doc__</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1431"></a><tt class="py-lineno">1431</tt> <tt class="py-line"> </tt>
+<a name="InputElement._checked__get"></a><div id="InputElement._checked__get-def"><a name="L1432"></a><tt class="py-lineno">1432</tt> <a class="py-toggle" href="#" id="InputElement._checked__get-toggle" onclick="return toggle('InputElement._checked__get');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.InputElement-class.html#_checked__get">_checked__get</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="InputElement._checked__get-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="InputElement._checked__get-expanded"><a name="L1433"></a><tt class="py-lineno">1433</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1434"></a><tt class="py-lineno">1434</tt> <tt class="py-line"><tt class="py-docstring"> Boolean attribute to get/set the presence of the ``checked``</tt> </tt>
+<a name="L1435"></a><tt class="py-lineno">1435</tt> <tt class="py-line"><tt class="py-docstring"> attribute.</tt> </tt>
+<a name="L1436"></a><tt class="py-lineno">1436</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1437"></a><tt class="py-lineno">1437</tt> <tt class="py-line"><tt class="py-docstring"> You can only use this on checkable input types.</tt> </tt>
+<a name="L1438"></a><tt class="py-lineno">1438</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1439"></a><tt class="py-lineno">1439</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-862" class="py-name"><a title="lxml.html.InputElement.checkable" class="py-name" href="#" onclick="return doclink('link-862', 'checkable', 'link-520');">checkable</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-keyword">raise</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">(</tt><tt class="py-string">'Not a checkable input type'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1441"></a><tt class="py-lineno">1441</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">'checked'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-863" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-874', 'attrib', 'link-94');">attrib</a></tt> </tt>
-</div><a name="InputElement._checked__set"></a><div id="InputElement._checked__set-def"><a name="L1434"></a><tt class="py-lineno">1434</tt> <a class="py-toggle" href="#" id="InputElement._checked__set-toggle" onclick="return toggle('InputElement._checked__set');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.InputElement-class.html#_checked__set">_checked__set</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="InputElement._checked__set-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="InputElement._checked__set-expanded"><a name="L1435"></a><tt class="py-lineno">1435</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-875" class="py-name"><a title="lxml.html.InputElement.checkable" class="py-name" href="#" onclick="return doclink('link-875', 'checkable', 'link-531');">checkable</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1436"></a><tt class="py-lineno">1436</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">(</tt><tt class="py-string">'Not a checkable input type'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1437"></a><tt class="py-lineno">1437</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-876" class="py-name"><a title="lxml.html.CheckboxGroup.value
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-863', 'attrib', 'link-94');">attrib</a></tt> </tt>
+</div><a name="InputElement._checked__set"></a><div id="InputElement._checked__set-def"><a name="L1442"></a><tt class="py-lineno">1442</tt> <a class="py-toggle" href="#" id="InputElement._checked__set-toggle" onclick="return toggle('InputElement._checked__set');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.InputElement-class.html#_checked__set">_checked__set</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="InputElement._checked__set-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="InputElement._checked__set-expanded"><a name="L1443"></a><tt class="py-lineno">1443</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-864" class="py-name"><a title="lxml.html.InputElement.checkable" class="py-name" href="#" onclick="return doclink('link-864', 'checkable', 'link-520');">checkable</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1444"></a><tt class="py-lineno">1444</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">(</tt><tt class="py-string">'Not a checkable input type'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1445"></a><tt class="py-lineno">1445</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-865" 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-876', 'value', 'link-176');">value</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1438"></a><tt class="py-lineno">1438</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-877" class="py-name"><a title="lxml.etree._Element.set
-lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-877', 'set', 'link-9');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'checked'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1439"></a><tt class="py-lineno">1439</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1440"></a><tt class="py-lineno">1440</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'checked'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-878" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-865', 'value', 'link-176');">value</a></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-866" class="py-name"><a title="lxml.etree._Element.set
+lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-866', 'set', 'link-9');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'checked'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1447"></a><tt class="py-lineno">1447</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1448"></a><tt class="py-lineno">1448</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'checked'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-867" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-878', 'attrib', 'link-94');">attrib</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1441"></a><tt class="py-lineno">1441</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-879" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-867', 'attrib', 'link-94');">attrib</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-keyword">del</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-868" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-879', 'attrib', 'link-94');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'checked'</tt><tt class="py-op">]</tt> </tt>
-</div><a name="L1442"></a><tt class="py-lineno">1442</tt> <tt class="py-line"> <tt id="link-880" class="py-name"><a title="lxml.html.InputElement.checked" class="py-name" href="#" onclick="return doclink('link-880', 'checked', 'link-532');">checked</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-881" class="py-name" targets="Method lxml.html.InputElement._checked__get()=lxml.html.InputElement-class.html#_checked__get"><a title="lxml.html.InputElement._checked__get" class="py-name" href="#" onclick="return doclink('link-881', '_checked__get', 'link-881');">_checked__get</a></tt><tt class="py-op">,</tt> <tt id="link-882" class="py-name" targets="Method lxml.html.InputElement._checked__set()=lxml.html.InputElement-class.html#_checked__set"><a title="lxml.html.InputElement._checked__set" class="py-name" href="#" onclick="return doclink('link-882', '_checked__set', 'link-882');">_checked__set</a></tt><tt class="py-op">,</tt> <tt class="py-name">doc</tt><tt class="py-op">=</tt><tt id="link-883" class="py-name"><a title="lxml.html.InputElement._checked__get" class="py-name" href="#" onclick="return doclink('link-883', '_checked__get', 'link-881');">_checked__get</a></tt><tt class="py-op">.</tt><tt id="link-884" class="py-name"><a title="lxml.html.ElementSoup.__doc__
-lxml.html.soupparser.__doc__" class="py-name" href="#" onclick="return doclink('link-884', '__doc__', 'link-64');">__doc__</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1443"></a><tt class="py-lineno">1443</tt> <tt class="py-line"> </tt>
-<a name="L1444"></a><tt class="py-lineno">1444</tt> <tt class="py-line"><tt id="link-885" class="py-name"><a title="lxml.html.HtmlElementClassLookup" class="py-name" href="#" onclick="return doclink('link-885', 'HtmlElementClassLookup', 'link-567');">HtmlElementClassLookup</a></tt><tt class="py-op">.</tt><tt id="link-886" class="py-name"><a title="lxml.html.HtmlElementClassLookup._default_element_classes" class="py-name" href="#" onclick="return doclink('link-886', '_default_element_classes', 'link-265');">_default_element_classes</a></tt><tt class="py-op">[</tt><tt class="py-string">'input'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-887" class="py-name" targets="Class lxml.html.InputElement=lxml.html.InputElement-class.html"><a title="lxml.html.InputElement" class="py-name" href="#" onclick="return doclink('link-887', 'InputElement', 'link-887');">InputElement</a></tt> </tt>
-<a name="L1445"></a><tt class="py-lineno">1445</tt> <tt class="py-line"> </tt>
-<a name="LabelElement"></a><div id="LabelElement-def"><a name="L1446"></a><tt class="py-lineno">1446</tt> <a class="py-toggle" href="#" id="LabelElement-toggle" onclick="return toggle('LabelElement');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.html.LabelElement-class.html">LabelElement</a><tt class="py-op">(</tt><tt class="py-base-class">HtmlElement</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="LabelElement-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="LabelElement-expanded"><a name="L1447"></a><tt class="py-lineno">1447</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1448"></a><tt class="py-lineno">1448</tt> <tt class="py-line"><tt class="py-docstring"> Represents a ``<label>`` element.</tt> </tt>
-<a name="L1449"></a><tt class="py-lineno">1449</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1450"></a><tt class="py-lineno">1450</tt> <tt class="py-line"><tt class="py-docstring"> Label elements are linked to other elements with their ``for``</tt> </tt>
-<a name="L1451"></a><tt class="py-lineno">1451</tt> <tt class="py-line"><tt class="py-docstring"> attribute. You can access this element with ``label.for_element``.</tt> </tt>
-<a name="L1452"></a><tt class="py-lineno">1452</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-868', 'attrib', 'link-94');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'checked'</tt><tt class="py-op">]</tt> </tt>
+</div><a name="L1450"></a><tt class="py-lineno">1450</tt> <tt class="py-line"> <tt id="link-869" class="py-name"><a title="lxml.html.InputElement.checked" class="py-name" href="#" onclick="return doclink('link-869', 'checked', 'link-521');">checked</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-870" class="py-name" targets="Method lxml.html.InputElement._checked__get()=lxml.html.InputElement-class.html#_checked__get"><a title="lxml.html.InputElement._checked__get" class="py-name" href="#" onclick="return doclink('link-870', '_checked__get', 'link-870');">_checked__get</a></tt><tt class="py-op">,</tt> <tt id="link-871" class="py-name" targets="Method lxml.html.InputElement._checked__set()=lxml.html.InputElement-class.html#_checked__set"><a title="lxml.html.InputElement._checked__set" class="py-name" href="#" onclick="return doclink('link-871', '_checked__set', 'link-871');">_checked__set</a></tt><tt class="py-op">,</tt> <tt class="py-name">doc</tt><tt class="py-op">=</tt><tt id="link-872" class="py-name"><a title="lxml.html.InputElement._checked__get" class="py-name" href="#" onclick="return doclink('link-872', '_checked__get', 'link-870');">_checked__get</a></tt><tt class="py-op">.</tt><tt id="link-873" class="py-name"><a title="lxml.html.ElementSoup.__doc__
+lxml.html.soupparser.__doc__" class="py-name" href="#" onclick="return doclink('link-873', '__doc__', 'link-64');">__doc__</a></tt><tt class="py-op">)</tt> </tt>
+</div><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 id="link-874" class="py-name"><a title="lxml.html.HtmlElementClassLookup" class="py-name" href="#" onclick="return doclink('link-874', 'HtmlElementClassLookup', 'link-556');">HtmlElementClassLookup</a></tt><tt class="py-op">.</tt><tt id="link-875" class="py-name"><a title="lxml.html.HtmlElementClassLookup._default_element_classes" class="py-name" href="#" onclick="return doclink('link-875', '_default_element_classes', 'link-265');">_default_element_classes</a></tt><tt class="py-op">[</tt><tt class="py-string">'input'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-876" class="py-name" targets="Class lxml.html.InputElement=lxml.html.InputElement-class.html"><a title="lxml.html.InputElement" class="py-name" href="#" onclick="return doclink('link-876', 'InputElement', 'link-876');">InputElement</a></tt> </tt>
<a name="L1453"></a><tt class="py-lineno">1453</tt> <tt class="py-line"> </tt>
-<a name="LabelElement._for_element__get"></a><div id="LabelElement._for_element__get-def"><a name="L1454"></a><tt class="py-lineno">1454</tt> <a class="py-toggle" href="#" id="LabelElement._for_element__get-toggle" onclick="return toggle('LabelElement._for_element__get');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.LabelElement-class.html#_for_element__get">_for_element__get</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="LabelElement._for_element__get-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="LabelElement._for_element__get-expanded"><a name="L1455"></a><tt class="py-lineno">1455</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1456"></a><tt class="py-lineno">1456</tt> <tt class="py-line"><tt class="py-docstring"> Get/set the element this label points to. Return None if it</tt> </tt>
-<a name="L1457"></a><tt class="py-lineno">1457</tt> <tt class="py-line"><tt class="py-docstring"> can't be found.</tt> </tt>
-<a name="L1458"></a><tt class="py-lineno">1458</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1459"></a><tt class="py-lineno">1459</tt> <tt class="py-line"> <tt class="py-name">id</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-888" class="py-name"><a title="lxml.etree._Attrib.get
+<a name="LabelElement"></a><div id="LabelElement-def"><a name="L1454"></a><tt class="py-lineno">1454</tt> <a class="py-toggle" href="#" id="LabelElement-toggle" onclick="return toggle('LabelElement');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.html.LabelElement-class.html">LabelElement</a><tt class="py-op">(</tt><tt class="py-base-class">HtmlElement</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="LabelElement-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="LabelElement-expanded"><a name="L1455"></a><tt class="py-lineno">1455</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1456"></a><tt class="py-lineno">1456</tt> <tt class="py-line"><tt class="py-docstring"> Represents a ``<label>`` element.</tt> </tt>
+<a name="L1457"></a><tt class="py-lineno">1457</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1458"></a><tt class="py-lineno">1458</tt> <tt class="py-line"><tt class="py-docstring"> Label elements are linked to other elements with their ``for``</tt> </tt>
+<a name="L1459"></a><tt class="py-lineno">1459</tt> <tt class="py-line"><tt class="py-docstring"> attribute. You can access this element with ``label.for_element``.</tt> </tt>
+<a name="L1460"></a><tt class="py-lineno">1460</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1461"></a><tt class="py-lineno">1461</tt> <tt class="py-line"> </tt>
+<a name="LabelElement._for_element__get"></a><div id="LabelElement._for_element__get-def"><a name="L1462"></a><tt class="py-lineno">1462</tt> <a class="py-toggle" href="#" id="LabelElement._for_element__get-toggle" onclick="return toggle('LabelElement._for_element__get');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.LabelElement-class.html#_for_element__get">_for_element__get</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="LabelElement._for_element__get-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="LabelElement._for_element__get-expanded"><a name="L1463"></a><tt class="py-lineno">1463</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1464"></a><tt class="py-lineno">1464</tt> <tt class="py-line"><tt class="py-docstring"> Get/set the element this label points to. Return None if it</tt> </tt>
+<a name="L1465"></a><tt class="py-lineno">1465</tt> <tt class="py-line"><tt class="py-docstring"> can't be found.</tt> </tt>
+<a name="L1466"></a><tt class="py-lineno">1466</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1467"></a><tt class="py-lineno">1467</tt> <tt class="py-line"> <tt class="py-name">id</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-877" 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-888', 'get', 'link-82');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'for'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1460"></a><tt class="py-lineno">1460</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">id</tt><tt class="py-op">:</tt> </tt>
-<a name="L1461"></a><tt class="py-lineno">1461</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
-<a name="L1462"></a><tt class="py-lineno">1462</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-889" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-889', 'body', 'link-72');">body</a></tt><tt class="py-op">.</tt><tt id="link-890" class="py-name" targets="Method lxml.html.HtmlMixin.get_element_by_id()=lxml.html.HtmlMixin-class.html#get_element_by_id"><a title="lxml.html.HtmlMixin.get_element_by_id" class="py-name" href="#" onclick="return doclink('link-890', 'get_element_by_id', 'link-890');">get_element_by_id</a></tt><tt class="py-op">(</tt><tt class="py-name">id</tt><tt class="py-op">)</tt> </tt>
-</div><a name="LabelElement._for_element__set"></a><div id="LabelElement._for_element__set-def"><a name="L1463"></a><tt class="py-lineno">1463</tt> <a class="py-toggle" href="#" id="LabelElement._for_element__set-toggle" onclick="return toggle('LabelElement._for_element__set');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.LabelElement-class.html#_for_element__set">_for_element__set</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">other</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="LabelElement._for_element__set-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="LabelElement._for_element__set-expanded"><a name="L1464"></a><tt class="py-lineno">1464</tt> <tt class="py-line"> <tt class="py-name">id</tt> <tt class="py-op">=</tt> <tt class="py-name">other</tt><tt class="py-op">.</tt><tt id="link-891" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-877', 'get', 'link-82');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'for'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1468"></a><tt class="py-lineno">1468</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">id</tt><tt class="py-op">:</tt> </tt>
+<a name="L1469"></a><tt class="py-lineno">1469</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
+<a name="L1470"></a><tt class="py-lineno">1470</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-878" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-878', 'body', 'link-72');">body</a></tt><tt class="py-op">.</tt><tt id="link-879" class="py-name" targets="Method lxml.html.HtmlMixin.get_element_by_id()=lxml.html.HtmlMixin-class.html#get_element_by_id"><a title="lxml.html.HtmlMixin.get_element_by_id" class="py-name" href="#" onclick="return doclink('link-879', 'get_element_by_id', 'link-879');">get_element_by_id</a></tt><tt class="py-op">(</tt><tt class="py-name">id</tt><tt class="py-op">)</tt> </tt>
+</div><a name="LabelElement._for_element__set"></a><div id="LabelElement._for_element__set-def"><a name="L1471"></a><tt class="py-lineno">1471</tt> <a class="py-toggle" href="#" id="LabelElement._for_element__set-toggle" onclick="return toggle('LabelElement._for_element__set');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.LabelElement-class.html#_for_element__set">_for_element__set</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">other</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="LabelElement._for_element__set-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="LabelElement._for_element__set-expanded"><a name="L1472"></a><tt class="py-lineno">1472</tt> <tt class="py-line"> <tt class="py-name">id</tt> <tt class="py-op">=</tt> <tt class="py-name">other</tt><tt class="py-op">.</tt><tt id="link-880" 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-891', 'get', 'link-82');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'id'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1465"></a><tt class="py-lineno">1465</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">id</tt><tt class="py-op">:</tt> </tt>
-<a name="L1466"></a><tt class="py-lineno">1466</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">TypeError</tt><tt class="py-op">(</tt> </tt>
-<a name="L1467"></a><tt class="py-lineno">1467</tt> <tt class="py-line"> <tt class="py-string">"Element %r has no id attribute"</tt> <tt class="py-op">%</tt> <tt class="py-name">other</tt><tt class="py-op">)</tt> </tt>
-<a name="L1468"></a><tt class="py-lineno">1468</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-892" class="py-name"><a title="lxml.etree._Element.set
-lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-892', 'set', 'link-9');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'for'</tt><tt class="py-op">,</tt> <tt class="py-name">id</tt><tt class="py-op">)</tt> </tt>
-</div><a name="LabelElement._for_element__del"></a><div id="LabelElement._for_element__del-def"><a name="L1469"></a><tt class="py-lineno">1469</tt> <a class="py-toggle" href="#" id="LabelElement._for_element__del-toggle" onclick="return toggle('LabelElement._for_element__del');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.LabelElement-class.html#_for_element__del">_for_element__del</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="LabelElement._for_element__del-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="LabelElement._for_element__del-expanded"><a name="L1470"></a><tt class="py-lineno">1470</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'id'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-893" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-880', 'get', 'link-82');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'id'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1473"></a><tt class="py-lineno">1473</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">id</tt><tt class="py-op">:</tt> </tt>
+<a name="L1474"></a><tt class="py-lineno">1474</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">TypeError</tt><tt class="py-op">(</tt> </tt>
+<a name="L1475"></a><tt class="py-lineno">1475</tt> <tt class="py-line"> <tt class="py-string">"Element %r has no id attribute"</tt> <tt class="py-op">%</tt> <tt class="py-name">other</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-881" class="py-name"><a title="lxml.etree._Element.set
+lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-881', 'set', 'link-9');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'for'</tt><tt class="py-op">,</tt> <tt class="py-name">id</tt><tt class="py-op">)</tt> </tt>
+</div><a name="LabelElement._for_element__del"></a><div id="LabelElement._for_element__del-def"><a name="L1477"></a><tt class="py-lineno">1477</tt> <a class="py-toggle" href="#" id="LabelElement._for_element__del-toggle" onclick="return toggle('LabelElement._for_element__del');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.LabelElement-class.html#_for_element__del">_for_element__del</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="LabelElement._for_element__del-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="LabelElement._for_element__del-expanded"><a name="L1478"></a><tt class="py-lineno">1478</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'id'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-882" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-893', 'attrib', 'link-94');">attrib</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-keyword">del</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-894" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-882', 'attrib', 'link-94');">attrib</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1479"></a><tt class="py-lineno">1479</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-883" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-894', 'attrib', 'link-94');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'id'</tt><tt class="py-op">]</tt> </tt>
-</div><a name="L1472"></a><tt class="py-lineno">1472</tt> <tt class="py-line"> <tt id="link-895" class="py-name" targets="Variable lxml.html.LabelElement.for_element=lxml.html.LabelElement-class.html#for_element"><a title="lxml.html.LabelElement.for_element" class="py-name" href="#" onclick="return doclink('link-895', 'for_element', 'link-895');">for_element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-896" class="py-name" targets="Method lxml.html.LabelElement._for_element__get()=lxml.html.LabelElement-class.html#_for_element__get"><a title="lxml.html.LabelElement._for_element__get" class="py-name" href="#" onclick="return doclink('link-896', '_for_element__get', 'link-896');">_for_element__get</a></tt><tt class="py-op">,</tt> <tt id="link-897" class="py-name" targets="Method lxml.html.LabelElement._for_element__set()=lxml.html.LabelElement-class.html#_for_element__set"><a title="lxml.html.LabelElement._for_element__set" class="py-name" href="#" onclick="return doclink('link-897', '_for_element__set', 'link-897');">_for_element__set</a></tt><tt class="py-op">,</tt> <tt id="link-898" class="py-name" targets="Method lxml.html.LabelElement._for_element__del()=lxml.html.LabelElement-class.html#_for_element__del"><a title="lxml.html.LabelElement._for_element__del" class="py-name" href="#" onclick="return doclink('link-898', '_for_element__del', 'link-898');">_for_element__del</a></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">doc</tt><tt class="py-op">=</tt><tt id="link-899" class="py-name"><a title="lxml.html.LabelElement._for_element__get" class="py-name" href="#" onclick="return doclink('link-899', '_for_element__get', 'link-896');">_for_element__get</a></tt><tt class="py-op">.</tt><tt id="link-900" class="py-name"><a title="lxml.html.ElementSoup.__doc__
-lxml.html.soupparser.__doc__" class="py-name" href="#" onclick="return doclink('link-900', '__doc__', 'link-64');">__doc__</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1474"></a><tt class="py-lineno">1474</tt> <tt class="py-line"> </tt>
-<a name="L1475"></a><tt class="py-lineno">1475</tt> <tt class="py-line"><tt id="link-901" class="py-name"><a title="lxml.html.HtmlElementClassLookup" class="py-name" href="#" onclick="return doclink('link-901', 'HtmlElementClassLookup', 'link-567');">HtmlElementClassLookup</a></tt><tt class="py-op">.</tt><tt id="link-902" class="py-name"><a title="lxml.html.HtmlElementClassLookup._default_element_classes" class="py-name" href="#" onclick="return doclink('link-902', '_default_element_classes', 'link-265');">_default_element_classes</a></tt><tt class="py-op">[</tt><tt class="py-string">'label'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-903" class="py-name" targets="Class lxml.html.LabelElement=lxml.html.LabelElement-class.html"><a title="lxml.html.LabelElement" class="py-name" href="#" onclick="return doclink('link-903', 'LabelElement', 'link-903');">LabelElement</a></tt> </tt>
-<a name="L1476"></a><tt class="py-lineno">1476</tt> <tt class="py-line"> </tt>
-<a name="L1477"></a><tt class="py-lineno">1477</tt> <tt class="py-line"><tt class="py-comment">############################################################</tt> </tt>
-<a name="L1478"></a><tt class="py-lineno">1478</tt> <tt class="py-line"><tt class="py-comment">## Serialization</tt> </tt>
-<a name="L1479"></a><tt class="py-lineno">1479</tt> <tt class="py-line"><tt class="py-comment">############################################################</tt> </tt>
-<a name="L1480"></a><tt class="py-lineno">1480</tt> <tt class="py-line"> </tt>
-<a name="html_to_xhtml"></a><div id="html_to_xhtml-def"><a name="L1481"></a><tt class="py-lineno">1481</tt> <a class="py-toggle" href="#" id="html_to_xhtml-toggle" onclick="return toggle('html_to_xhtml');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html-module.html#html_to_xhtml">html_to_xhtml</a><tt class="py-op">(</tt><tt class="py-param">html</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="html_to_xhtml-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="html_to_xhtml-expanded"><a name="L1482"></a><tt class="py-lineno">1482</tt> <tt class="py-line"> <tt class="py-docstring">"""Convert all tags in an HTML tree to XHTML by moving them to the</tt> </tt>
-<a name="L1483"></a><tt class="py-lineno">1483</tt> <tt class="py-line"><tt class="py-docstring"> XHTML namespace.</tt> </tt>
-<a name="L1484"></a><tt class="py-lineno">1484</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1485"></a><tt class="py-lineno">1485</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1486"></a><tt class="py-lineno">1486</tt> <tt class="py-line"> <tt id="link-904" class="py-name"><a title="lxml.html
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-883', 'attrib', 'link-94');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'id'</tt><tt class="py-op">]</tt> </tt>
+</div><a name="L1480"></a><tt class="py-lineno">1480</tt> <tt class="py-line"> <tt id="link-884" class="py-name" targets="Variable lxml.html.LabelElement.for_element=lxml.html.LabelElement-class.html#for_element"><a title="lxml.html.LabelElement.for_element" class="py-name" href="#" onclick="return doclink('link-884', 'for_element', 'link-884');">for_element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-885" class="py-name" targets="Method lxml.html.LabelElement._for_element__get()=lxml.html.LabelElement-class.html#_for_element__get"><a title="lxml.html.LabelElement._for_element__get" class="py-name" href="#" onclick="return doclink('link-885', '_for_element__get', 'link-885');">_for_element__get</a></tt><tt class="py-op">,</tt> <tt id="link-886" class="py-name" targets="Method lxml.html.LabelElement._for_element__set()=lxml.html.LabelElement-class.html#_for_element__set"><a title="lxml.html.LabelElement._for_element__set" class="py-name" href="#" onclick="return doclink('link-886', '_for_element__set', 'link-886');">_for_element__set</a></tt><tt class="py-op">,</tt> <tt id="link-887" class="py-name" targets="Method lxml.html.LabelElement._for_element__del()=lxml.html.LabelElement-class.html#_for_element__del"><a title="lxml.html.LabelElement._for_element__del" class="py-name" href="#" onclick="return doclink('link-887', '_for_element__del', 'link-887');">_for_element__del</a></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">doc</tt><tt class="py-op">=</tt><tt id="link-888" class="py-name"><a title="lxml.html.LabelElement._for_element__get" class="py-name" href="#" onclick="return doclink('link-888', '_for_element__get', 'link-885');">_for_element__get</a></tt><tt class="py-op">.</tt><tt id="link-889" class="py-name"><a title="lxml.html.ElementSoup.__doc__
+lxml.html.soupparser.__doc__" class="py-name" href="#" onclick="return doclink('link-889', '__doc__', 'link-64');">__doc__</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1482"></a><tt class="py-lineno">1482</tt> <tt class="py-line"> </tt>
+<a name="L1483"></a><tt class="py-lineno">1483</tt> <tt class="py-line"><tt id="link-890" class="py-name"><a title="lxml.html.HtmlElementClassLookup" class="py-name" href="#" onclick="return doclink('link-890', 'HtmlElementClassLookup', 'link-556');">HtmlElementClassLookup</a></tt><tt class="py-op">.</tt><tt id="link-891" class="py-name"><a title="lxml.html.HtmlElementClassLookup._default_element_classes" class="py-name" href="#" onclick="return doclink('link-891', '_default_element_classes', 'link-265');">_default_element_classes</a></tt><tt class="py-op">[</tt><tt class="py-string">'label'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-892" class="py-name" targets="Class lxml.html.LabelElement=lxml.html.LabelElement-class.html"><a title="lxml.html.LabelElement" class="py-name" href="#" onclick="return doclink('link-892', 'LabelElement', 'link-892');">LabelElement</a></tt> </tt>
+<a name="L1484"></a><tt class="py-lineno">1484</tt> <tt class="py-line"> </tt>
+<a name="L1485"></a><tt class="py-lineno">1485</tt> <tt class="py-line"><tt class="py-comment">############################################################</tt> </tt>
+<a name="L1486"></a><tt class="py-lineno">1486</tt> <tt class="py-line"><tt class="py-comment">## Serialization</tt> </tt>
+<a name="L1487"></a><tt class="py-lineno">1487</tt> <tt class="py-line"><tt class="py-comment">############################################################</tt> </tt>
+<a name="L1488"></a><tt class="py-lineno">1488</tt> <tt class="py-line"> </tt>
+<a name="html_to_xhtml"></a><div id="html_to_xhtml-def"><a name="L1489"></a><tt class="py-lineno">1489</tt> <a class="py-toggle" href="#" id="html_to_xhtml-toggle" onclick="return toggle('html_to_xhtml');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html-module.html#html_to_xhtml">html_to_xhtml</a><tt class="py-op">(</tt><tt class="py-param">html</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="html_to_xhtml-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="html_to_xhtml-expanded"><a name="L1490"></a><tt class="py-lineno">1490</tt> <tt class="py-line"> <tt class="py-docstring">"""Convert all tags in an HTML tree to XHTML by moving them to the</tt> </tt>
+<a name="L1491"></a><tt class="py-lineno">1491</tt> <tt class="py-line"><tt class="py-docstring"> XHTML namespace.</tt> </tt>
+<a name="L1492"></a><tt class="py-lineno">1492</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1493"></a><tt class="py-lineno">1493</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L1494"></a><tt class="py-lineno">1494</tt> <tt class="py-line"> <tt id="link-893" 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-904', 'html', 'link-5');">html</a></tt> <tt class="py-op">=</tt> <tt id="link-905" class="py-name"><a title="lxml.html
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-893', 'html', 'link-5');">html</a></tt> <tt class="py-op">=</tt> <tt id="link-894" 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-905', 'html', 'link-5');">html</a></tt><tt class="py-op">.</tt><tt id="link-906" class="py-name" targets="Method lxml.etree._ElementTree.getroot()=lxml.etree._ElementTree-class.html#getroot"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-906', 'getroot', 'link-906');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1487"></a><tt class="py-lineno">1487</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">:</tt> </tt>
-<a name="L1488"></a><tt class="py-lineno">1488</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
-<a name="L1489"></a><tt class="py-lineno">1489</tt> <tt class="py-line"> <tt id="link-907" 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-907', 'prefix', 'link-907');">prefix</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"{%s}"</tt> <tt class="py-op">%</tt> <tt id="link-908" class="py-name"><a title="lxml.html.XHTML_NAMESPACE" class="py-name" href="#" onclick="return doclink('link-908', 'XHTML_NAMESPACE', 'link-16');">XHTML_NAMESPACE</a></tt> </tt>
-<a name="L1490"></a><tt class="py-lineno">1490</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-909" class="py-name"><a title="lxml.html
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-894', 'html', 'link-5');">html</a></tt><tt class="py-op">.</tt><tt id="link-895" class="py-name" targets="Method lxml.etree._ElementTree.getroot()=lxml.etree._ElementTree-class.html#getroot"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-895', 'getroot', 'link-895');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1495"></a><tt class="py-lineno">1495</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">AttributeError</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">pass</tt> </tt>
+<a name="L1497"></a><tt class="py-lineno">1497</tt> <tt class="py-line"> <tt id="link-896" 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-896', 'prefix', 'link-896');">prefix</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"{%s}"</tt> <tt class="py-op">%</tt> <tt id="link-897" class="py-name"><a title="lxml.html.XHTML_NAMESPACE" class="py-name" href="#" onclick="return doclink('link-897', 'XHTML_NAMESPACE', 'link-16');">XHTML_NAMESPACE</a></tt> </tt>
+<a name="L1498"></a><tt class="py-lineno">1498</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-898" 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-909', 'html', 'link-5');">html</a></tt><tt class="py-op">.</tt><tt id="link-910" class="py-name"><a title="lxml.etree._Element.iter
-lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-910', 'iter', 'link-162');">iter</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1491"></a><tt class="py-lineno">1491</tt> <tt class="py-line"> <tt id="link-911" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-898', 'html', 'link-5');">html</a></tt><tt class="py-op">.</tt><tt id="link-899" class="py-name"><a title="lxml.etree._Element.iter
+lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-899', 'iter', 'link-162');">iter</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1499"></a><tt class="py-lineno">1499</tt> <tt class="py-line"> <tt id="link-900" 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-911', 'tag', 'link-50');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-912" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-900', 'tag', 'link-50');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-901" 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-912', 'tag', 'link-50');">tag</a></tt> </tt>
-<a name="L1492"></a><tt class="py-lineno">1492</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-913" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-901', 'tag', 'link-50');">tag</a></tt> </tt>
+<a name="L1500"></a><tt class="py-lineno">1500</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-902" 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-50');">tag</a></tt><tt class="py-op">,</tt> <tt id="link-914" class="py-name"><a title="lxml.html.basestring
-lxml.html.clean.basestring" class="py-name" href="#" onclick="return doclink('link-914', 'basestring', 'link-13');">basestring</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-keyword">if</tt> <tt id="link-915" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-902', 'tag', 'link-50');">tag</a></tt><tt class="py-op">,</tt> <tt id="link-903" class="py-name"><a title="lxml.html.basestring
+lxml.html.clean.basestring" class="py-name" href="#" onclick="return doclink('link-903', 'basestring', 'link-13');">basestring</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1501"></a><tt class="py-lineno">1501</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-904" 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-915', 'tag', 'link-50');">tag</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-string">'{'</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">el</tt><tt class="py-op">.</tt><tt id="link-916" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-904', 'tag', 'link-50');">tag</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-string">'{'</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">el</tt><tt class="py-op">.</tt><tt id="link-905" 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-916', 'tag', 'link-50');">tag</a></tt> <tt class="py-op">=</tt> <tt id="link-917" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-917', 'prefix', 'link-907');">prefix</a></tt> <tt class="py-op">+</tt> <tt id="link-918" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-905', 'tag', 'link-50');">tag</a></tt> <tt class="py-op">=</tt> <tt id="link-906" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-906', 'prefix', 'link-896');">prefix</a></tt> <tt class="py-op">+</tt> <tt id="link-907" 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-918', 'tag', 'link-50');">tag</a></tt> </tt>
-</div><a name="L1495"></a><tt class="py-lineno">1495</tt> <tt class="py-line"> </tt>
-<a name="xhtml_to_html"></a><div id="xhtml_to_html-def"><a name="L1496"></a><tt class="py-lineno">1496</tt> <a class="py-toggle" href="#" id="xhtml_to_html-toggle" onclick="return toggle('xhtml_to_html');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html-module.html#xhtml_to_html">xhtml_to_html</a><tt class="py-op">(</tt><tt class="py-param">xhtml</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="xhtml_to_html-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="xhtml_to_html-expanded"><a name="L1497"></a><tt class="py-lineno">1497</tt> <tt class="py-line"> <tt class="py-docstring">"""Convert all tags in an XHTML tree to HTML by removing their</tt> </tt>
-<a name="L1498"></a><tt class="py-lineno">1498</tt> <tt class="py-line"><tt class="py-docstring"> XHTML namespace.</tt> </tt>
-<a name="L1499"></a><tt class="py-lineno">1499</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1500"></a><tt class="py-lineno">1500</tt> <tt class="py-line"> <tt class="py-keyword">try</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">xhtml</tt> <tt class="py-op">=</tt> <tt class="py-name">xhtml</tt><tt class="py-op">.</tt><tt id="link-919" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-919', 'getroot', 'link-906');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1502"></a><tt class="py-lineno">1502</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">:</tt> </tt>
-<a name="L1503"></a><tt class="py-lineno">1503</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
-<a name="L1504"></a><tt class="py-lineno">1504</tt> <tt class="py-line"> <tt id="link-920" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-920', 'prefix', 'link-907');">prefix</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"{%s}"</tt> <tt class="py-op">%</tt> <tt id="link-921" class="py-name"><a title="lxml.html.XHTML_NAMESPACE" class="py-name" href="#" onclick="return doclink('link-921', 'XHTML_NAMESPACE', 'link-16');">XHTML_NAMESPACE</a></tt> </tt>
-<a name="L1505"></a><tt class="py-lineno">1505</tt> <tt class="py-line"> <tt class="py-name">prefix_len</tt> <tt class="py-op">=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-922" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-922', 'prefix', 'link-907');">prefix</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1506"></a><tt class="py-lineno">1506</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">xhtml</tt><tt class="py-op">.</tt><tt id="link-923" class="py-name"><a title="lxml.etree._Element.iter
-lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-923', 'iter', 'link-162');">iter</a></tt><tt class="py-op">(</tt><tt id="link-924" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-924', 'prefix', 'link-907');">prefix</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="L1507"></a><tt class="py-lineno">1507</tt> <tt class="py-line"> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-925" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-907', 'tag', 'link-50');">tag</a></tt> </tt>
+</div><a name="L1503"></a><tt class="py-lineno">1503</tt> <tt class="py-line"> </tt>
+<a name="xhtml_to_html"></a><div id="xhtml_to_html-def"><a name="L1504"></a><tt class="py-lineno">1504</tt> <a class="py-toggle" href="#" id="xhtml_to_html-toggle" onclick="return toggle('xhtml_to_html');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html-module.html#xhtml_to_html">xhtml_to_html</a><tt class="py-op">(</tt><tt class="py-param">xhtml</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="xhtml_to_html-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="xhtml_to_html-expanded"><a name="L1505"></a><tt class="py-lineno">1505</tt> <tt class="py-line"> <tt class="py-docstring">"""Convert all tags in an XHTML tree to HTML by removing their</tt> </tt>
+<a name="L1506"></a><tt class="py-lineno">1506</tt> <tt class="py-line"><tt class="py-docstring"> XHTML namespace.</tt> </tt>
+<a name="L1507"></a><tt class="py-lineno">1507</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1508"></a><tt class="py-lineno">1508</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L1509"></a><tt class="py-lineno">1509</tt> <tt class="py-line"> <tt class="py-name">xhtml</tt> <tt class="py-op">=</tt> <tt class="py-name">xhtml</tt><tt class="py-op">.</tt><tt id="link-908" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-908', 'getroot', 'link-895');">getroot</a></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 class="py-keyword">except</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">:</tt> </tt>
+<a name="L1511"></a><tt class="py-lineno">1511</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+<a name="L1512"></a><tt class="py-lineno">1512</tt> <tt class="py-line"> <tt id="link-909" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-909', 'prefix', 'link-896');">prefix</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"{%s}"</tt> <tt class="py-op">%</tt> <tt id="link-910" class="py-name"><a title="lxml.html.XHTML_NAMESPACE" class="py-name" href="#" onclick="return doclink('link-910', 'XHTML_NAMESPACE', 'link-16');">XHTML_NAMESPACE</a></tt> </tt>
+<a name="L1513"></a><tt class="py-lineno">1513</tt> <tt class="py-line"> <tt class="py-name">prefix_len</tt> <tt class="py-op">=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-911" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-911', 'prefix', 'link-896');">prefix</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1514"></a><tt class="py-lineno">1514</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">xhtml</tt><tt class="py-op">.</tt><tt id="link-912" class="py-name"><a title="lxml.etree._Element.iter
+lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-912', 'iter', 'link-162');">iter</a></tt><tt class="py-op">(</tt><tt id="link-913" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-913', 'prefix', 'link-896');">prefix</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="L1515"></a><tt class="py-lineno">1515</tt> <tt class="py-line"> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-914" 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-925', 'tag', 'link-50');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-926" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-914', 'tag', 'link-50');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-915" 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-926', 'tag', 'link-50');">tag</a></tt><tt class="py-op">[</tt><tt class="py-name">prefix_len</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
-</div><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-comment"># This isn't a general match, but it's a match for what libxml2</tt> </tt>
-<a name="L1510"></a><tt class="py-lineno">1510</tt> <tt class="py-line"><tt class="py-comment"># specifically serialises:</tt> </tt>
-<a name="L1511"></a><tt class="py-lineno">1511</tt> <tt class="py-line"><tt class="py-name">__str_replace_meta_content_type</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>
-<a name="L1512"></a><tt class="py-lineno">1512</tt> <tt class="py-line"> <tt class="py-string">r'<meta http-equiv="Content-Type"[^>]*>'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">sub</tt> </tt>
-<a name="L1513"></a><tt class="py-lineno">1513</tt> <tt class="py-line"><tt class="py-name">__bytes_replace_meta_content_type</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>
-<a name="L1514"></a><tt class="py-lineno">1514</tt> <tt class="py-line"> <tt class="py-string">r'<meta http-equiv="Content-Type"[^>]*>'</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-op">)</tt><tt class="py-op">.</tt><tt class="py-name">sub</tt> </tt>
-<a name="L1515"></a><tt class="py-lineno">1515</tt> <tt class="py-line"> </tt>
-<a name="tostring"></a><div id="tostring-def"><a name="L1516"></a><tt class="py-lineno">1516</tt> <a class="py-toggle" href="#" id="tostring-toggle" onclick="return toggle('tostring');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html-module.html#tostring">tostring</a><tt class="py-op">(</tt><tt class="py-param">doc</tt><tt class="py-op">,</tt> <tt class="py-param">pretty_print</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-param">include_meta_content_type</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> </tt>
-<a name="L1517"></a><tt class="py-lineno">1517</tt> <tt class="py-line"> <tt class="py-param">encoding</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">method</tt><tt class="py-op">=</tt><tt class="py-string">"html"</tt><tt class="py-op">,</tt> <tt class="py-param">with_tail</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-param">doctype</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="tostring-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="tostring-expanded"><a name="L1518"></a><tt class="py-lineno">1518</tt> <tt class="py-line"> <tt class="py-docstring">"""Return an HTML string representation of the document.</tt> </tt>
-<a name="L1519"></a><tt class="py-lineno">1519</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1520"></a><tt class="py-lineno">1520</tt> <tt class="py-line"><tt class="py-docstring"> Note: if include_meta_content_type is true this will create a</tt> </tt>
-<a name="L1521"></a><tt class="py-lineno">1521</tt> <tt class="py-line"><tt class="py-docstring"> ``<meta http-equiv="Content-Type" ...>`` tag in the head;</tt> </tt>
-<a name="L1522"></a><tt class="py-lineno">1522</tt> <tt class="py-line"><tt class="py-docstring"> regardless of the value of include_meta_content_type any existing</tt> </tt>
-<a name="L1523"></a><tt class="py-lineno">1523</tt> <tt class="py-line"><tt class="py-docstring"> ``<meta http-equiv="Content-Type" ...>`` tag will be removed</tt> </tt>
-<a name="L1524"></a><tt class="py-lineno">1524</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1525"></a><tt class="py-lineno">1525</tt> <tt class="py-line"><tt class="py-docstring"> The ``encoding`` argument controls the output encoding (defauts to</tt> </tt>
-<a name="L1526"></a><tt class="py-lineno">1526</tt> <tt class="py-line"><tt class="py-docstring"> ASCII, with &#...; character references for any characters outside</tt> </tt>
-<a name="L1527"></a><tt class="py-lineno">1527</tt> <tt class="py-line"><tt class="py-docstring"> of ASCII). Note that you can pass the name ``'unicode'`` as</tt> </tt>
-<a name="L1528"></a><tt class="py-lineno">1528</tt> <tt class="py-line"><tt class="py-docstring"> ``encoding`` argument to serialise to a unicode string.</tt> </tt>
-<a name="L1529"></a><tt class="py-lineno">1529</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1530"></a><tt class="py-lineno">1530</tt> <tt class="py-line"><tt class="py-docstring"> The ``method`` argument defines the output method. It defaults to</tt> </tt>
-<a name="L1531"></a><tt class="py-lineno">1531</tt> <tt class="py-line"><tt class="py-docstring"> 'html', but can also be 'xml' for xhtml output, or 'text' to</tt> </tt>
-<a name="L1532"></a><tt class="py-lineno">1532</tt> <tt class="py-line"><tt class="py-docstring"> serialise to plain text without markup.</tt> </tt>
-<a name="L1533"></a><tt class="py-lineno">1533</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1534"></a><tt class="py-lineno">1534</tt> <tt class="py-line"><tt class="py-docstring"> To leave out the tail text of the top-level element that is being</tt> </tt>
-<a name="L1535"></a><tt class="py-lineno">1535</tt> <tt class="py-line"><tt class="py-docstring"> serialised, pass ``with_tail=False``.</tt> </tt>
-<a name="L1536"></a><tt class="py-lineno">1536</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1537"></a><tt class="py-lineno">1537</tt> <tt class="py-line"><tt class="py-docstring"> The ``doctype`` option allows passing in a plain string that will</tt> </tt>
-<a name="L1538"></a><tt class="py-lineno">1538</tt> <tt class="py-line"><tt class="py-docstring"> be serialised before the XML tree. Note that passing in non</tt> </tt>
-<a name="L1539"></a><tt class="py-lineno">1539</tt> <tt class="py-line"><tt class="py-docstring"> well-formed content here will make the XML output non well-formed.</tt> </tt>
-<a name="L1540"></a><tt class="py-lineno">1540</tt> <tt class="py-line"><tt class="py-docstring"> Also, an existing doctype in the document tree will not be removed</tt> </tt>
-<a name="L1541"></a><tt class="py-lineno">1541</tt> <tt class="py-line"><tt class="py-docstring"> when serialising an ElementTree instance.</tt> </tt>
-<a name="L1542"></a><tt class="py-lineno">1542</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1543"></a><tt class="py-lineno">1543</tt> <tt class="py-line"><tt class="py-docstring"> Example::</tt> </tt>
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-915', 'tag', 'link-50');">tag</a></tt><tt class="py-op">[</tt><tt class="py-name">prefix_len</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
+</div><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-comment"># This isn't a general match, but it's a match for what libxml2</tt> </tt>
+<a name="L1518"></a><tt class="py-lineno">1518</tt> <tt class="py-line"><tt class="py-comment"># specifically serialises:</tt> </tt>
+<a name="L1519"></a><tt class="py-lineno">1519</tt> <tt class="py-line"><tt class="py-name">__str_replace_meta_content_type</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>
+<a name="L1520"></a><tt class="py-lineno">1520</tt> <tt class="py-line"> <tt class="py-string">r'<meta http-equiv="Content-Type"[^>]*>'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">sub</tt> </tt>
+<a name="L1521"></a><tt class="py-lineno">1521</tt> <tt class="py-line"><tt class="py-name">__bytes_replace_meta_content_type</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>
+<a name="L1522"></a><tt class="py-lineno">1522</tt> <tt class="py-line"> <tt class="py-string">r'<meta http-equiv="Content-Type"[^>]*>'</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-op">)</tt><tt class="py-op">.</tt><tt class="py-name">sub</tt> </tt>
+<a name="L1523"></a><tt class="py-lineno">1523</tt> <tt class="py-line"> </tt>
+<a name="tostring"></a><div id="tostring-def"><a name="L1524"></a><tt class="py-lineno">1524</tt> <a class="py-toggle" href="#" id="tostring-toggle" onclick="return toggle('tostring');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html-module.html#tostring">tostring</a><tt class="py-op">(</tt><tt class="py-param">doc</tt><tt class="py-op">,</tt> <tt class="py-param">pretty_print</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-param">include_meta_content_type</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> </tt>
+<a name="L1525"></a><tt class="py-lineno">1525</tt> <tt class="py-line"> <tt class="py-param">encoding</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">method</tt><tt class="py-op">=</tt><tt class="py-string">"html"</tt><tt class="py-op">,</tt> <tt class="py-param">with_tail</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-param">doctype</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="tostring-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="tostring-expanded"><a name="L1526"></a><tt class="py-lineno">1526</tt> <tt class="py-line"> <tt class="py-docstring">"""Return an HTML string representation of the document.</tt> </tt>
+<a name="L1527"></a><tt class="py-lineno">1527</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1528"></a><tt class="py-lineno">1528</tt> <tt class="py-line"><tt class="py-docstring"> Note: if include_meta_content_type is true this will create a</tt> </tt>
+<a name="L1529"></a><tt class="py-lineno">1529</tt> <tt class="py-line"><tt class="py-docstring"> ``<meta http-equiv="Content-Type" ...>`` tag in the head;</tt> </tt>
+<a name="L1530"></a><tt class="py-lineno">1530</tt> <tt class="py-line"><tt class="py-docstring"> regardless of the value of include_meta_content_type any existing</tt> </tt>
+<a name="L1531"></a><tt class="py-lineno">1531</tt> <tt class="py-line"><tt class="py-docstring"> ``<meta http-equiv="Content-Type" ...>`` tag will be removed</tt> </tt>
+<a name="L1532"></a><tt class="py-lineno">1532</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1533"></a><tt class="py-lineno">1533</tt> <tt class="py-line"><tt class="py-docstring"> The ``encoding`` argument controls the output encoding (defauts to</tt> </tt>
+<a name="L1534"></a><tt class="py-lineno">1534</tt> <tt class="py-line"><tt class="py-docstring"> ASCII, with &#...; character references for any characters outside</tt> </tt>
+<a name="L1535"></a><tt class="py-lineno">1535</tt> <tt class="py-line"><tt class="py-docstring"> of ASCII). Note that you can pass the name ``'unicode'`` as</tt> </tt>
+<a name="L1536"></a><tt class="py-lineno">1536</tt> <tt class="py-line"><tt class="py-docstring"> ``encoding`` argument to serialise to a unicode string.</tt> </tt>
+<a name="L1537"></a><tt class="py-lineno">1537</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1538"></a><tt class="py-lineno">1538</tt> <tt class="py-line"><tt class="py-docstring"> The ``method`` argument defines the output method. It defaults to</tt> </tt>
+<a name="L1539"></a><tt class="py-lineno">1539</tt> <tt class="py-line"><tt class="py-docstring"> 'html', but can also be 'xml' for xhtml output, or 'text' to</tt> </tt>
+<a name="L1540"></a><tt class="py-lineno">1540</tt> <tt class="py-line"><tt class="py-docstring"> serialise to plain text without markup.</tt> </tt>
+<a name="L1541"></a><tt class="py-lineno">1541</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1542"></a><tt class="py-lineno">1542</tt> <tt class="py-line"><tt class="py-docstring"> To leave out the tail text of the top-level element that is being</tt> </tt>
+<a name="L1543"></a><tt class="py-lineno">1543</tt> <tt class="py-line"><tt class="py-docstring"> serialised, pass ``with_tail=False``.</tt> </tt>
<a name="L1544"></a><tt class="py-lineno">1544</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1545"></a><tt class="py-lineno">1545</tt> <tt class="py-line"><tt class="py-docstring"> >>> from lxml import html</tt> </tt>
-<a name="L1546"></a><tt class="py-lineno">1546</tt> <tt class="py-line"><tt class="py-docstring"> >>> root = html.fragment_fromstring('<p>Hello<br>world!</p>')</tt> </tt>
-<a name="L1547"></a><tt class="py-lineno">1547</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1548"></a><tt class="py-lineno">1548</tt> <tt class="py-line"><tt class="py-docstring"> >>> html.tostring(root)</tt> </tt>
-<a name="L1549"></a><tt class="py-lineno">1549</tt> <tt class="py-line"><tt class="py-docstring"> b'<p>Hello<br>world!</p>'</tt> </tt>
-<a name="L1550"></a><tt class="py-lineno">1550</tt> <tt class="py-line"><tt class="py-docstring"> >>> html.tostring(root, method='html')</tt> </tt>
-<a name="L1551"></a><tt class="py-lineno">1551</tt> <tt class="py-line"><tt class="py-docstring"> b'<p>Hello<br>world!</p>'</tt> </tt>
+<a name="L1545"></a><tt class="py-lineno">1545</tt> <tt class="py-line"><tt class="py-docstring"> The ``doctype`` option allows passing in a plain string that will</tt> </tt>
+<a name="L1546"></a><tt class="py-lineno">1546</tt> <tt class="py-line"><tt class="py-docstring"> be serialised before the XML tree. Note that passing in non</tt> </tt>
+<a name="L1547"></a><tt class="py-lineno">1547</tt> <tt class="py-line"><tt class="py-docstring"> well-formed content here will make the XML output non well-formed.</tt> </tt>
+<a name="L1548"></a><tt class="py-lineno">1548</tt> <tt class="py-line"><tt class="py-docstring"> Also, an existing doctype in the document tree will not be removed</tt> </tt>
+<a name="L1549"></a><tt class="py-lineno">1549</tt> <tt class="py-line"><tt class="py-docstring"> when serialising an ElementTree instance.</tt> </tt>
+<a name="L1550"></a><tt class="py-lineno">1550</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1551"></a><tt class="py-lineno">1551</tt> <tt class="py-line"><tt class="py-docstring"> Example::</tt> </tt>
<a name="L1552"></a><tt class="py-lineno">1552</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1553"></a><tt class="py-lineno">1553</tt> <tt class="py-line"><tt class="py-docstring"> >>> html.tostring(root, method='xml')</tt> </tt>
-<a name="L1554"></a><tt class="py-lineno">1554</tt> <tt class="py-line"><tt class="py-docstring"> b'<p>Hello<br/>world!</p>'</tt> </tt>
+<a name="L1553"></a><tt class="py-lineno">1553</tt> <tt class="py-line"><tt class="py-docstring"> >>> from lxml import html</tt> </tt>
+<a name="L1554"></a><tt class="py-lineno">1554</tt> <tt class="py-line"><tt class="py-docstring"> >>> root = html.fragment_fromstring('<p>Hello<br>world!</p>')</tt> </tt>
<a name="L1555"></a><tt class="py-lineno">1555</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1556"></a><tt class="py-lineno">1556</tt> <tt class="py-line"><tt class="py-docstring"> >>> html.tostring(root, method='text')</tt> </tt>
-<a name="L1557"></a><tt class="py-lineno">1557</tt> <tt class="py-line"><tt class="py-docstring"> b'Helloworld!'</tt> </tt>
-<a name="L1558"></a><tt class="py-lineno">1558</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1559"></a><tt class="py-lineno">1559</tt> <tt class="py-line"><tt class="py-docstring"> >>> html.tostring(root, method='text', encoding=unicode)</tt> </tt>
-<a name="L1560"></a><tt class="py-lineno">1560</tt> <tt class="py-line"><tt class="py-docstring"> u'Helloworld!'</tt> </tt>
-<a name="L1561"></a><tt class="py-lineno">1561</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1562"></a><tt class="py-lineno">1562</tt> <tt class="py-line"><tt class="py-docstring"> >>> root = html.fragment_fromstring('<div><p>Hello<br>world!</p>TAIL</div>')</tt> </tt>
-<a name="L1563"></a><tt class="py-lineno">1563</tt> <tt class="py-line"><tt class="py-docstring"> >>> html.tostring(root[0], method='text', encoding=unicode)</tt> </tt>
-<a name="L1564"></a><tt class="py-lineno">1564</tt> <tt class="py-line"><tt class="py-docstring"> u'Helloworld!TAIL'</tt> </tt>
-<a name="L1565"></a><tt class="py-lineno">1565</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1566"></a><tt class="py-lineno">1566</tt> <tt class="py-line"><tt class="py-docstring"> >>> html.tostring(root[0], method='text', encoding=unicode, with_tail=False)</tt> </tt>
-<a name="L1567"></a><tt class="py-lineno">1567</tt> <tt class="py-line"><tt class="py-docstring"> u'Helloworld!'</tt> </tt>
-<a name="L1568"></a><tt class="py-lineno">1568</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1569"></a><tt class="py-lineno">1569</tt> <tt class="py-line"><tt class="py-docstring"> >>> doc = html.document_fromstring('<p>Hello<br>world!</p>')</tt> </tt>
-<a name="L1570"></a><tt class="py-lineno">1570</tt> <tt class="py-line"><tt class="py-docstring"> >>> html.tostring(doc, method='html', encoding=unicode)</tt> </tt>
-<a name="L1571"></a><tt class="py-lineno">1571</tt> <tt class="py-line"><tt class="py-docstring"> u'<html><body><p>Hello<br>world!</p></body></html>'</tt> </tt>
-<a name="L1572"></a><tt class="py-lineno">1572</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1573"></a><tt class="py-lineno">1573</tt> <tt class="py-line"><tt class="py-docstring"> >>> print(html.tostring(doc, method='html', encoding=unicode,</tt> </tt>
-<a name="L1574"></a><tt class="py-lineno">1574</tt> <tt class="py-line"><tt class="py-docstring"> ... doctype='<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"'</tt> </tt>
-<a name="L1575"></a><tt class="py-lineno">1575</tt> <tt class="py-line"><tt class="py-docstring"> ... ' "http://www.w3.org/TR/html4/strict.dtd">'))</tt> </tt>
-<a name="L1576"></a><tt class="py-lineno">1576</tt> <tt class="py-line"><tt class="py-docstring"> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"></tt> </tt>
-<a name="L1577"></a><tt class="py-lineno">1577</tt> <tt class="py-line"><tt class="py-docstring"> <html><body><p>Hello<br>world!</p></body></html></tt> </tt>
-<a name="L1578"></a><tt class="py-lineno">1578</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1579"></a><tt class="py-lineno">1579</tt> <tt class="py-line"> <tt id="link-927" class="py-name"><a title="lxml.html
+<a name="L1556"></a><tt class="py-lineno">1556</tt> <tt class="py-line"><tt class="py-docstring"> >>> html.tostring(root)</tt> </tt>
+<a name="L1557"></a><tt class="py-lineno">1557</tt> <tt class="py-line"><tt class="py-docstring"> b'<p>Hello<br>world!</p>'</tt> </tt>
+<a name="L1558"></a><tt class="py-lineno">1558</tt> <tt class="py-line"><tt class="py-docstring"> >>> html.tostring(root, method='html')</tt> </tt>
+<a name="L1559"></a><tt class="py-lineno">1559</tt> <tt class="py-line"><tt class="py-docstring"> b'<p>Hello<br>world!</p>'</tt> </tt>
+<a name="L1560"></a><tt class="py-lineno">1560</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1561"></a><tt class="py-lineno">1561</tt> <tt class="py-line"><tt class="py-docstring"> >>> html.tostring(root, method='xml')</tt> </tt>
+<a name="L1562"></a><tt class="py-lineno">1562</tt> <tt class="py-line"><tt class="py-docstring"> b'<p>Hello<br/>world!</p>'</tt> </tt>
+<a name="L1563"></a><tt class="py-lineno">1563</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1564"></a><tt class="py-lineno">1564</tt> <tt class="py-line"><tt class="py-docstring"> >>> html.tostring(root, method='text')</tt> </tt>
+<a name="L1565"></a><tt class="py-lineno">1565</tt> <tt class="py-line"><tt class="py-docstring"> b'Helloworld!'</tt> </tt>
+<a name="L1566"></a><tt class="py-lineno">1566</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1567"></a><tt class="py-lineno">1567</tt> <tt class="py-line"><tt class="py-docstring"> >>> html.tostring(root, method='text', encoding=unicode)</tt> </tt>
+<a name="L1568"></a><tt class="py-lineno">1568</tt> <tt class="py-line"><tt class="py-docstring"> u'Helloworld!'</tt> </tt>
+<a name="L1569"></a><tt class="py-lineno">1569</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1570"></a><tt class="py-lineno">1570</tt> <tt class="py-line"><tt class="py-docstring"> >>> root = html.fragment_fromstring('<div><p>Hello<br>world!</p>TAIL</div>')</tt> </tt>
+<a name="L1571"></a><tt class="py-lineno">1571</tt> <tt class="py-line"><tt class="py-docstring"> >>> html.tostring(root[0], method='text', encoding=unicode)</tt> </tt>
+<a name="L1572"></a><tt class="py-lineno">1572</tt> <tt class="py-line"><tt class="py-docstring"> u'Helloworld!TAIL'</tt> </tt>
+<a name="L1573"></a><tt class="py-lineno">1573</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1574"></a><tt class="py-lineno">1574</tt> <tt class="py-line"><tt class="py-docstring"> >>> html.tostring(root[0], method='text', encoding=unicode, with_tail=False)</tt> </tt>
+<a name="L1575"></a><tt class="py-lineno">1575</tt> <tt class="py-line"><tt class="py-docstring"> u'Helloworld!'</tt> </tt>
+<a name="L1576"></a><tt class="py-lineno">1576</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1577"></a><tt class="py-lineno">1577</tt> <tt class="py-line"><tt class="py-docstring"> >>> doc = html.document_fromstring('<p>Hello<br>world!</p>')</tt> </tt>
+<a name="L1578"></a><tt class="py-lineno">1578</tt> <tt class="py-line"><tt class="py-docstring"> >>> html.tostring(doc, method='html', encoding=unicode)</tt> </tt>
+<a name="L1579"></a><tt class="py-lineno">1579</tt> <tt class="py-line"><tt class="py-docstring"> u'<html><body><p>Hello<br>world!</p></body></html>'</tt> </tt>
+<a name="L1580"></a><tt class="py-lineno">1580</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1581"></a><tt class="py-lineno">1581</tt> <tt class="py-line"><tt class="py-docstring"> >>> print(html.tostring(doc, method='html', encoding=unicode,</tt> </tt>
+<a name="L1582"></a><tt class="py-lineno">1582</tt> <tt class="py-line"><tt class="py-docstring"> ... doctype='<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"'</tt> </tt>
+<a name="L1583"></a><tt class="py-lineno">1583</tt> <tt class="py-line"><tt class="py-docstring"> ... ' "http://www.w3.org/TR/html4/strict.dtd">'))</tt> </tt>
+<a name="L1584"></a><tt class="py-lineno">1584</tt> <tt class="py-line"><tt class="py-docstring"> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"></tt> </tt>
+<a name="L1585"></a><tt class="py-lineno">1585</tt> <tt class="py-line"><tt class="py-docstring"> <html><body><p>Hello<br>world!</p></body></html></tt> </tt>
+<a name="L1586"></a><tt class="py-lineno">1586</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1587"></a><tt class="py-lineno">1587</tt> <tt class="py-line"> <tt id="link-916" 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-927', 'html', 'link-5');">html</a></tt> <tt class="py-op">=</tt> <tt id="link-928" class="py-name"><a title="lxml.etree
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-916', 'html', 'link-5');">html</a></tt> <tt class="py-op">=</tt> <tt id="link-917" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-928', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-929" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-929', 'tostring', 'link-46');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">doc</tt><tt class="py-op">,</tt> <tt id="link-930" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-930', 'method', 'link-562');">method</a></tt><tt class="py-op">=</tt><tt id="link-931" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-931', 'method', 'link-562');">method</a></tt><tt class="py-op">,</tt> <tt class="py-name">pretty_print</tt><tt class="py-op">=</tt><tt class="py-name">pretty_print</tt><tt class="py-op">,</tt> </tt>
-<a name="L1580"></a><tt class="py-lineno">1580</tt> <tt class="py-line"> <tt id="link-932" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-932', 'encoding', 'link-47');">encoding</a></tt><tt class="py-op">=</tt><tt id="link-933" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-933', 'encoding', 'link-47');">encoding</a></tt><tt class="py-op">,</tt> <tt class="py-name">with_tail</tt><tt class="py-op">=</tt><tt class="py-name">with_tail</tt><tt class="py-op">,</tt> </tt>
-<a name="L1581"></a><tt class="py-lineno">1581</tt> <tt class="py-line"> <tt id="link-934" class="py-name" targets="Variable lxml.etree.DocInfo.doctype=lxml.etree.DocInfo-class.html#doctype"><a title="lxml.etree.DocInfo.doctype" class="py-name" href="#" onclick="return doclink('link-934', 'doctype', 'link-934');">doctype</a></tt><tt class="py-op">=</tt><tt id="link-935" class="py-name"><a title="lxml.etree.DocInfo.doctype" class="py-name" href="#" onclick="return doclink('link-935', 'doctype', 'link-934');">doctype</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1582"></a><tt class="py-lineno">1582</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-936" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-936', 'method', 'link-562');">method</a></tt> <tt class="py-op">==</tt> <tt class="py-string">'html'</tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">include_meta_content_type</tt><tt class="py-op">:</tt> </tt>
-<a name="L1583"></a><tt class="py-lineno">1583</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-937" class="py-name"><a title="lxml.html
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-917', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-918" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-918', 'tostring', 'link-46');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">doc</tt><tt class="py-op">,</tt> <tt id="link-919" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-919', 'method', 'link-551');">method</a></tt><tt class="py-op">=</tt><tt id="link-920" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-920', 'method', 'link-551');">method</a></tt><tt class="py-op">,</tt> <tt class="py-name">pretty_print</tt><tt class="py-op">=</tt><tt class="py-name">pretty_print</tt><tt class="py-op">,</tt> </tt>
+<a name="L1588"></a><tt class="py-lineno">1588</tt> <tt class="py-line"> <tt id="link-921" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-921', 'encoding', 'link-47');">encoding</a></tt><tt class="py-op">=</tt><tt id="link-922" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-922', 'encoding', 'link-47');">encoding</a></tt><tt class="py-op">,</tt> <tt class="py-name">with_tail</tt><tt class="py-op">=</tt><tt class="py-name">with_tail</tt><tt class="py-op">,</tt> </tt>
+<a name="L1589"></a><tt class="py-lineno">1589</tt> <tt class="py-line"> <tt id="link-923" class="py-name" targets="Variable lxml.etree.DocInfo.doctype=lxml.etree.DocInfo-class.html#doctype"><a title="lxml.etree.DocInfo.doctype" class="py-name" href="#" onclick="return doclink('link-923', 'doctype', 'link-923');">doctype</a></tt><tt class="py-op">=</tt><tt id="link-924" class="py-name"><a title="lxml.etree.DocInfo.doctype" class="py-name" href="#" onclick="return doclink('link-924', 'doctype', 'link-923');">doctype</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1590"></a><tt class="py-lineno">1590</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-925" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-925', 'method', 'link-551');">method</a></tt> <tt class="py-op">==</tt> <tt class="py-string">'html'</tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">include_meta_content_type</tt><tt class="py-op">:</tt> </tt>
+<a name="L1591"></a><tt class="py-lineno">1591</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-926" 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-937', 'html', 'link-5');">html</a></tt><tt class="py-op">,</tt> <tt id="link-938" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-938', 'str', 'link-11');">str</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1584"></a><tt class="py-lineno">1584</tt> <tt class="py-line"> <tt id="link-939" class="py-name"><a title="lxml.html
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-926', 'html', 'link-5');">html</a></tt><tt class="py-op">,</tt> <tt id="link-927" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-927', 'str', 'link-11');">str</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1592"></a><tt class="py-lineno">1592</tt> <tt class="py-line"> <tt id="link-928" 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-939', 'html', 'link-5');">html</a></tt> <tt class="py-op">=</tt> <tt class="py-name">__str_replace_meta_content_type</tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt id="link-940" class="py-name"><a title="lxml.html
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-928', 'html', 'link-5');">html</a></tt> <tt class="py-op">=</tt> <tt class="py-name">__str_replace_meta_content_type</tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt id="link-929" 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-940', 'html', 'link-5');">html</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1585"></a><tt class="py-lineno">1585</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1586"></a><tt class="py-lineno">1586</tt> <tt class="py-line"> <tt id="link-941" class="py-name"><a title="lxml.html
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-929', 'html', 'link-5');">html</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1593"></a><tt class="py-lineno">1593</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1594"></a><tt class="py-lineno">1594</tt> <tt class="py-line"> <tt id="link-930" 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-941', 'html', 'link-5');">html</a></tt> <tt class="py-op">=</tt> <tt class="py-name">__bytes_replace_meta_content_type</tt><tt class="py-op">(</tt><tt class="py-name">bytes</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-942" class="py-name"><a title="lxml.html
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-930', 'html', 'link-5');">html</a></tt> <tt class="py-op">=</tt> <tt class="py-name">__bytes_replace_meta_content_type</tt><tt class="py-op">(</tt><tt class="py-name">bytes</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-931" 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-942', 'html', 'link-5');">html</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-keyword">return</tt> <tt id="link-943" class="py-name"><a title="lxml.html
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-931', 'html', 'link-5');">html</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1595"></a><tt class="py-lineno">1595</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-932" 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-943', 'html', 'link-5');">html</a></tt> </tt>
-</div><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 id="link-944" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-944', 'tostring', 'link-46');">tostring</a></tt><tt class="py-op">.</tt><tt id="link-945" class="py-name"><a title="lxml.html.ElementSoup.__doc__
-lxml.html.soupparser.__doc__" class="py-name" href="#" onclick="return doclink('link-945', '__doc__', 'link-64');">__doc__</a></tt> <tt class="py-op">=</tt> <tt class="py-name">__fix_docstring</tt><tt class="py-op">(</tt><tt id="link-946" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-946', 'tostring', 'link-46');">tostring</a></tt><tt class="py-op">.</tt><tt id="link-947" class="py-name"><a title="lxml.html.ElementSoup.__doc__
-lxml.html.soupparser.__doc__" class="py-name" href="#" onclick="return doclink('link-947', '__doc__', 'link-64');">__doc__</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1590"></a><tt class="py-lineno">1590</tt> <tt class="py-line"> </tt>
-<a name="open_in_browser"></a><div id="open_in_browser-def"><a name="L1591"></a><tt class="py-lineno">1591</tt> <a class="py-toggle" href="#" id="open_in_browser-toggle" onclick="return toggle('open_in_browser');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html-module.html#open_in_browser">open_in_browser</a><tt class="py-op">(</tt><tt class="py-param">doc</tt><tt class="py-op">,</tt> <tt class="py-param">encoding</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="open_in_browser-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="open_in_browser-expanded"><a name="L1592"></a><tt class="py-lineno">1592</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1593"></a><tt class="py-lineno">1593</tt> <tt class="py-line"><tt class="py-docstring"> Open the HTML document in a web browser, saving it to a temporary</tt> </tt>
-<a name="L1594"></a><tt class="py-lineno">1594</tt> <tt class="py-line"><tt class="py-docstring"> file to open it. Note that this does not delete the file after</tt> </tt>
-<a name="L1595"></a><tt class="py-lineno">1595</tt> <tt class="py-line"><tt class="py-docstring"> use. This is mainly meant for debugging.</tt> </tt>
-<a name="L1596"></a><tt class="py-lineno">1596</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1597"></a><tt class="py-lineno">1597</tt> <tt class="py-line"> <tt class="py-keyword">import</tt> <tt class="py-name">os</tt> </tt>
-<a name="L1598"></a><tt class="py-lineno">1598</tt> <tt class="py-line"> <tt class="py-keyword">import</tt> <tt class="py-name">webbrowser</tt> </tt>
-<a name="L1599"></a><tt class="py-lineno">1599</tt> <tt class="py-line"> <tt class="py-keyword">import</tt> <tt class="py-name">tempfile</tt> </tt>
-<a name="L1600"></a><tt class="py-lineno">1600</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">doc</tt><tt class="py-op">,</tt> <tt id="link-948" class="py-name"><a title="lxml.etree
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-932', 'html', 'link-5');">html</a></tt> </tt>
+</div><a name="L1596"></a><tt class="py-lineno">1596</tt> <tt class="py-line"> </tt>
+<a name="L1597"></a><tt class="py-lineno">1597</tt> <tt class="py-line"><tt id="link-933" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-933', 'tostring', 'link-46');">tostring</a></tt><tt class="py-op">.</tt><tt id="link-934" class="py-name"><a title="lxml.html.ElementSoup.__doc__
+lxml.html.soupparser.__doc__" class="py-name" href="#" onclick="return doclink('link-934', '__doc__', 'link-64');">__doc__</a></tt> <tt class="py-op">=</tt> <tt class="py-name">__fix_docstring</tt><tt class="py-op">(</tt><tt id="link-935" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-935', 'tostring', 'link-46');">tostring</a></tt><tt class="py-op">.</tt><tt id="link-936" class="py-name"><a title="lxml.html.ElementSoup.__doc__
+lxml.html.soupparser.__doc__" class="py-name" href="#" onclick="return doclink('link-936', '__doc__', 'link-64');">__doc__</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1598"></a><tt class="py-lineno">1598</tt> <tt class="py-line"> </tt>
+<a name="open_in_browser"></a><div id="open_in_browser-def"><a name="L1599"></a><tt class="py-lineno">1599</tt> <a class="py-toggle" href="#" id="open_in_browser-toggle" onclick="return toggle('open_in_browser');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html-module.html#open_in_browser">open_in_browser</a><tt class="py-op">(</tt><tt class="py-param">doc</tt><tt class="py-op">,</tt> <tt class="py-param">encoding</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="open_in_browser-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="open_in_browser-expanded"><a name="L1600"></a><tt class="py-lineno">1600</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1601"></a><tt class="py-lineno">1601</tt> <tt class="py-line"><tt class="py-docstring"> Open the HTML document in a web browser, saving it to a temporary</tt> </tt>
+<a name="L1602"></a><tt class="py-lineno">1602</tt> <tt class="py-line"><tt class="py-docstring"> file to open it. Note that this does not delete the file after</tt> </tt>
+<a name="L1603"></a><tt class="py-lineno">1603</tt> <tt class="py-line"><tt class="py-docstring"> use. This is mainly meant for debugging.</tt> </tt>
+<a name="L1604"></a><tt class="py-lineno">1604</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1605"></a><tt class="py-lineno">1605</tt> <tt class="py-line"> <tt class="py-keyword">import</tt> <tt class="py-name">os</tt> </tt>
+<a name="L1606"></a><tt class="py-lineno">1606</tt> <tt class="py-line"> <tt class="py-keyword">import</tt> <tt class="py-name">webbrowser</tt> </tt>
+<a name="L1607"></a><tt class="py-lineno">1607</tt> <tt class="py-line"> <tt class="py-keyword">import</tt> <tt class="py-name">tempfile</tt> </tt>
+<a name="L1608"></a><tt class="py-lineno">1608</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">doc</tt><tt class="py-op">,</tt> <tt id="link-937" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-948', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-949" class="py-name" targets="Class lxml.etree._ElementTree=lxml.etree._ElementTree-class.html"><a title="lxml.etree._ElementTree" class="py-name" href="#" onclick="return doclink('link-949', '_ElementTree', 'link-949');">_ElementTree</a></tt><tt class="py-op">)</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">doc</tt> <tt class="py-op">=</tt> <tt id="link-950" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-937', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-938" class="py-name" targets="Class lxml.etree._ElementTree=lxml.etree._ElementTree-class.html"><a title="lxml.etree._ElementTree" class="py-name" href="#" onclick="return doclink('link-938', '_ElementTree', 'link-938');">_ElementTree</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1609"></a><tt class="py-lineno">1609</tt> <tt class="py-line"> <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-939" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-950', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-951" class="py-name" targets="Function lxml.etree.ElementTree()=lxml.etree-module.html#ElementTree,Module xml.etree.ElementTree=xml.etree.ElementTree-module.html,Class xml.etree.ElementTree.ElementTree=xml.etree.ElementTree.ElementTree-class.html"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-939', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-940" class="py-name" targets="Function lxml.etree.ElementTree()=lxml.etree-module.html#ElementTree,Module xml.etree.ElementTree=xml.etree.ElementTree-module.html,Class xml.etree.ElementTree.ElementTree=xml.etree.ElementTree.ElementTree-class.html"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-951', 'ElementTree', 'link-951');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">doc</tt><tt class="py-op">)</tt> </tt>
-<a name="L1602"></a><tt class="py-lineno">1602</tt> <tt class="py-line"> <tt id="link-952" 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.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"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-940', 'ElementTree', 'link-940');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">doc</tt><tt class="py-op">)</tt> </tt>
+<a name="L1610"></a><tt class="py-lineno">1610</tt> <tt class="py-line"> <tt id="link-941" 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.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"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.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" class="py-name" href="#" onclick="return doclink('link-952', 'handle', 'link-952');">handle</a></tt><tt class="py-op">,</tt> <tt class="py-name">fn</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-name">suffix</tt><tt class="py-op">=</tt><tt class="py-string">'.html'</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">f</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">fdopen</tt><tt class="py-op">(</tt><tt id="link-953" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
+lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-941', 'handle', 'link-941');">handle</a></tt><tt class="py-op">,</tt> <tt class="py-name">fn</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-name">suffix</tt><tt class="py-op">=</tt><tt class="py-string">'.html'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1611"></a><tt class="py-lineno">1611</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">fdopen</tt><tt class="py-op">(</tt><tt id="link-942" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.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" class="py-name" href="#" onclick="return doclink('link-953', 'handle', 'link-952');">handle</a></tt><tt class="py-op">,</tt> <tt class="py-string">'wb'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1604"></a><tt class="py-lineno">1604</tt> <tt class="py-line"> <tt class="py-keyword">try</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">doc</tt><tt class="py-op">.</tt><tt id="link-954" 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-954', 'write', 'link-954');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-955" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-955', 'method', 'link-562');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">"html"</tt><tt class="py-op">,</tt> <tt id="link-956" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-956', 'encoding', 'link-47');">encoding</a></tt><tt class="py-op">=</tt><tt id="link-957" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-957', 'encoding', 'link-47');">encoding</a></tt> <tt class="py-keyword">or</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-958" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-958', 'docinfo', 'link-59');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-959" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-959', 'encoding', 'link-47');">encoding</a></tt> <tt class="py-keyword">or</tt> <tt class="py-string">"UTF-8"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1606"></a><tt class="py-lineno">1606</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L1607"></a><tt class="py-lineno">1607</tt> <tt class="py-line"> <tt class="py-comment"># we leak the file itself here, but we should at least close it</tt> </tt>
-<a name="L1608"></a><tt class="py-lineno">1608</tt> <tt class="py-line"> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-960" 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"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-960', 'close', 'link-960');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1609"></a><tt class="py-lineno">1609</tt> <tt class="py-line"> <tt class="py-name">url</tt> <tt class="py-op">=</tt> <tt class="py-string">'file://'</tt> <tt class="py-op">+</tt> <tt class="py-name">fn</tt><tt class="py-op">.</tt><tt id="link-961" 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-961', 'replace', 'link-961');">replace</a></tt><tt class="py-op">(</tt><tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-962" class="py-name" targets="Variable lxml.etree.XPath.path=lxml.etree.XPath-class.html#path"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-962', 'path', 'link-962');">path</a></tt><tt class="py-op">.</tt><tt class="py-name">sep</tt><tt class="py-op">,</tt> <tt class="py-string">'/'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1610"></a><tt class="py-lineno">1610</tt> <tt class="py-line"> <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-name">url</tt><tt class="py-op">)</tt> </tt>
-<a name="L1611"></a><tt class="py-lineno">1611</tt> <tt class="py-line"> <tt class="py-name">webbrowser</tt><tt class="py-op">.</tt><tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">url</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1612"></a><tt class="py-lineno">1612</tt> <tt class="py-line"> </tt>
-<a name="L1613"></a><tt class="py-lineno">1613</tt> <tt class="py-line"><tt class="py-comment">################################################################################</tt> </tt>
-<a name="L1614"></a><tt class="py-lineno">1614</tt> <tt class="py-line"><tt class="py-comment"># configure Element class lookup</tt> </tt>
-<a name="L1615"></a><tt class="py-lineno">1615</tt> <tt class="py-line"><tt class="py-comment">################################################################################</tt> </tt>
-<a name="L1616"></a><tt class="py-lineno">1616</tt> <tt class="py-line"> </tt>
-<a name="HTMLParser"></a><div id="HTMLParser-def"><a name="L1617"></a><tt class="py-lineno">1617</tt> <a class="py-toggle" href="#" id="HTMLParser-toggle" onclick="return toggle('HTMLParser');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.html.HTMLParser-class.html">HTMLParser</a><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">HTMLParser</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="HTMLParser-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="HTMLParser-expanded"><a name="L1618"></a><tt class="py-lineno">1618</tt> <tt class="py-line"> <tt class="py-docstring">"""An HTML parser that is configured to return lxml.html Element</tt> </tt>
-<a name="L1619"></a><tt class="py-lineno">1619</tt> <tt class="py-line"><tt class="py-docstring"> objects.</tt> </tt>
-<a name="L1620"></a><tt class="py-lineno">1620</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="HTMLParser.__init__"></a><div id="HTMLParser.__init__-def"><a name="L1621"></a><tt class="py-lineno">1621</tt> <a class="py-toggle" href="#" id="HTMLParser.__init__-toggle" onclick="return toggle('HTMLParser.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.HTMLParser-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-param">kwargs</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="HTMLParser.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="HTMLParser.__init__-expanded"><a name="L1622"></a><tt class="py-lineno">1622</tt> <tt class="py-line"> <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-963" class="py-name" targets="Class lxml.etree.HTMLParser=lxml.etree.HTMLParser-class.html,Class lxml.html.HTMLParser=lxml.html.HTMLParser-class.html,Class lxml.html.html5parser.HTMLParser=lxml.html.html5parser.HTMLParser-class.html"><a title="lxml.etree.HTMLParser
+lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-942', 'handle', 'link-941');">handle</a></tt><tt class="py-op">,</tt> <tt class="py-string">'wb'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1612"></a><tt class="py-lineno">1612</tt> <tt class="py-line"> <tt class="py-keyword">try</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">doc</tt><tt class="py-op">.</tt><tt id="link-943" 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-943', 'write', 'link-943');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-944" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-944', 'method', 'link-551');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">"html"</tt><tt class="py-op">,</tt> <tt id="link-945" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-945', 'encoding', 'link-47');">encoding</a></tt><tt class="py-op">=</tt><tt id="link-946" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-946', 'encoding', 'link-47');">encoding</a></tt> <tt class="py-keyword">or</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-947" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-947', 'docinfo', 'link-59');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-948" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-948', 'encoding', 'link-47');">encoding</a></tt> <tt class="py-keyword">or</tt> <tt class="py-string">"UTF-8"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1614"></a><tt class="py-lineno">1614</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L1615"></a><tt class="py-lineno">1615</tt> <tt class="py-line"> <tt class="py-comment"># we leak the file itself here, but we should at least close it</tt> </tt>
+<a name="L1616"></a><tt class="py-lineno">1616</tt> <tt class="py-line"> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-949" 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"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-949', 'close', 'link-949');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1617"></a><tt class="py-lineno">1617</tt> <tt class="py-line"> <tt class="py-name">url</tt> <tt class="py-op">=</tt> <tt class="py-string">'file://'</tt> <tt class="py-op">+</tt> <tt class="py-name">fn</tt><tt class="py-op">.</tt><tt id="link-950" 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-950', 'replace', 'link-950');">replace</a></tt><tt class="py-op">(</tt><tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-951" class="py-name" targets="Variable lxml.etree.XPath.path=lxml.etree.XPath-class.html#path"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-951', 'path', 'link-951');">path</a></tt><tt class="py-op">.</tt><tt class="py-name">sep</tt><tt class="py-op">,</tt> <tt class="py-string">'/'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1618"></a><tt class="py-lineno">1618</tt> <tt class="py-line"> <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-name">url</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">webbrowser</tt><tt class="py-op">.</tt><tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">url</tt><tt class="py-op">)</tt> </tt>
+</div><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-comment">################################################################################</tt> </tt>
+<a name="L1622"></a><tt class="py-lineno">1622</tt> <tt class="py-line"><tt class="py-comment"># configure Element class lookup</tt> </tt>
+<a name="L1623"></a><tt class="py-lineno">1623</tt> <tt class="py-line"><tt class="py-comment">################################################################################</tt> </tt>
+<a name="L1624"></a><tt class="py-lineno">1624</tt> <tt class="py-line"> </tt>
+<a name="HTMLParser"></a><div id="HTMLParser-def"><a name="L1625"></a><tt class="py-lineno">1625</tt> <a class="py-toggle" href="#" id="HTMLParser-toggle" onclick="return toggle('HTMLParser');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.html.HTMLParser-class.html">HTMLParser</a><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">HTMLParser</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="HTMLParser-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="HTMLParser-expanded"><a name="L1626"></a><tt class="py-lineno">1626</tt> <tt class="py-line"> <tt class="py-docstring">"""An HTML parser that is configured to return lxml.html Element</tt> </tt>
+<a name="L1627"></a><tt class="py-lineno">1627</tt> <tt class="py-line"><tt class="py-docstring"> objects.</tt> </tt>
+<a name="L1628"></a><tt class="py-lineno">1628</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="HTMLParser.__init__"></a><div id="HTMLParser.__init__-def"><a name="L1629"></a><tt class="py-lineno">1629</tt> <a class="py-toggle" href="#" id="HTMLParser.__init__-toggle" onclick="return toggle('HTMLParser.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.HTMLParser-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-param">kwargs</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="HTMLParser.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="HTMLParser.__init__-expanded"><a name="L1630"></a><tt class="py-lineno">1630</tt> <tt class="py-line"> <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-952" class="py-name" targets="Class lxml.etree.HTMLParser=lxml.etree.HTMLParser-class.html,Class lxml.html.HTMLParser=lxml.html.HTMLParser-class.html,Class lxml.html.html5parser.HTMLParser=lxml.html.html5parser.HTMLParser-class.html"><a title="lxml.etree.HTMLParser
lxml.html.HTMLParser
-lxml.html.html5parser.HTMLParser" class="py-name" href="#" onclick="return doclink('link-963', 'HTMLParser', 'link-963');">HTMLParser</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-964" class="py-name"><a title="lxml.builder.ElementMaker.__init__
+lxml.html.html5parser.HTMLParser" class="py-name" href="#" onclick="return doclink('link-952', 'HTMLParser', 'link-952');">HTMLParser</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-953" class="py-name"><a title="lxml.builder.ElementMaker.__init__
lxml.cssselect.CSSSelector.__init__
lxml.doctestcompare._RestoreChecker.__init__
lxml.etree.AttributeBasedElementClassLookup.__init__
lxml.tests.common_imports.LargeFileLike.__init__
lxml.tests.common_imports.LargeFileLikeUnicode.__init__
lxml.tests.common_imports.SillyFileLike.__init__
+lxml.tests.dummy_http_server.HTTPRequestCollector.__init__
lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.__init__
lxml.tests.test_threading.ThreadPipelineTestCase.Worker.__init__
-lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver.__init__" class="py-name" href="#" onclick="return doclink('link-964', '__init__', 'link-268');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-op">**</tt><tt class="py-name">kwargs</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">self</tt><tt class="py-op">.</tt><tt id="link-965" class="py-name" targets="Function lxml.etree.set_element_class_lookup()=lxml.etree-module.html#set_element_class_lookup"><a title="lxml.etree.set_element_class_lookup" class="py-name" href="#" onclick="return doclink('link-965', 'set_element_class_lookup', 'link-965');">set_element_class_lookup</a></tt><tt class="py-op">(</tt><tt id="link-966" class="py-name"><a title="lxml.html.HtmlElementClassLookup" class="py-name" href="#" onclick="return doclink('link-966', 'HtmlElementClassLookup', 'link-567');">HtmlElementClassLookup</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1624"></a><tt class="py-lineno">1624</tt> <tt class="py-line"> </tt>
-<a name="XHTMLParser"></a><div id="XHTMLParser-def"><a name="L1625"></a><tt class="py-lineno">1625</tt> <a class="py-toggle" href="#" id="XHTMLParser-toggle" onclick="return toggle('XHTMLParser');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.html.XHTMLParser-class.html">XHTMLParser</a><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XMLParser</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="XHTMLParser-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="XHTMLParser-expanded"><a name="L1626"></a><tt class="py-lineno">1626</tt> <tt class="py-line"> <tt class="py-docstring">"""An XML parser that is configured to return lxml.html Element</tt> </tt>
-<a name="L1627"></a><tt class="py-lineno">1627</tt> <tt class="py-line"><tt class="py-docstring"> objects.</tt> </tt>
-<a name="L1628"></a><tt class="py-lineno">1628</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1629"></a><tt class="py-lineno">1629</tt> <tt class="py-line"><tt class="py-docstring"> Note that this parser is not really XHTML aware unless you let it</tt> </tt>
-<a name="L1630"></a><tt class="py-lineno">1630</tt> <tt class="py-line"><tt class="py-docstring"> load a DTD that declares the HTML entities. To do this, make sure</tt> </tt>
-<a name="L1631"></a><tt class="py-lineno">1631</tt> <tt class="py-line"><tt class="py-docstring"> you have the XHTML DTDs installed in your catalogs, and create the</tt> </tt>
-<a name="L1632"></a><tt class="py-lineno">1632</tt> <tt class="py-line"><tt class="py-docstring"> parser like this::</tt> </tt>
-<a name="L1633"></a><tt class="py-lineno">1633</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1634"></a><tt class="py-lineno">1634</tt> <tt class="py-line"><tt class="py-docstring"> >>> parser = XHTMLParser(load_dtd=True)</tt> </tt>
-<a name="L1635"></a><tt class="py-lineno">1635</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1636"></a><tt class="py-lineno">1636</tt> <tt class="py-line"><tt class="py-docstring"> If you additionally want to validate the document, use this::</tt> </tt>
-<a name="L1637"></a><tt class="py-lineno">1637</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1638"></a><tt class="py-lineno">1638</tt> <tt class="py-line"><tt class="py-docstring"> >>> parser = XHTMLParser(dtd_validation=True)</tt> </tt>
-<a name="L1639"></a><tt class="py-lineno">1639</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1640"></a><tt class="py-lineno">1640</tt> <tt class="py-line"><tt class="py-docstring"> For catalog support, see http://www.xmlsoft.org/catalog.html.</tt> </tt>
-<a name="L1641"></a><tt class="py-lineno">1641</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="XHTMLParser.__init__"></a><div id="XHTMLParser.__init__-def"><a name="L1642"></a><tt class="py-lineno">1642</tt> <a class="py-toggle" href="#" id="XHTMLParser.__init__-toggle" onclick="return toggle('XHTMLParser.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.XHTMLParser-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-param">kwargs</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="XHTMLParser.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XHTMLParser.__init__-expanded"><a name="L1643"></a><tt class="py-lineno">1643</tt> <tt class="py-line"> <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-967" class="py-name" targets="Class lxml.html.XHTMLParser=lxml.html.XHTMLParser-class.html,Class lxml.html.html5parser.XHTMLParser=lxml.html.html5parser.XHTMLParser-class.html"><a title="lxml.html.XHTMLParser
-lxml.html.html5parser.XHTMLParser" class="py-name" href="#" onclick="return doclink('link-967', 'XHTMLParser', 'link-967');">XHTMLParser</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-968" class="py-name"><a title="lxml.builder.ElementMaker.__init__
+lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver.__init__" class="py-name" href="#" onclick="return doclink('link-953', '__init__', 'link-268');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-op">**</tt><tt class="py-name">kwargs</tt><tt class="py-op">)</tt> </tt>
+<a name="L1631"></a><tt class="py-lineno">1631</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-954" class="py-name" targets="Function lxml.etree.set_element_class_lookup()=lxml.etree-module.html#set_element_class_lookup"><a title="lxml.etree.set_element_class_lookup" class="py-name" href="#" onclick="return doclink('link-954', 'set_element_class_lookup', 'link-954');">set_element_class_lookup</a></tt><tt class="py-op">(</tt><tt id="link-955" class="py-name"><a title="lxml.html.HtmlElementClassLookup" class="py-name" href="#" onclick="return doclink('link-955', 'HtmlElementClassLookup', 'link-556');">HtmlElementClassLookup</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1632"></a><tt class="py-lineno">1632</tt> <tt class="py-line"> </tt>
+<a name="XHTMLParser"></a><div id="XHTMLParser-def"><a name="L1633"></a><tt class="py-lineno">1633</tt> <a class="py-toggle" href="#" id="XHTMLParser-toggle" onclick="return toggle('XHTMLParser');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.html.XHTMLParser-class.html">XHTMLParser</a><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XMLParser</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="XHTMLParser-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="XHTMLParser-expanded"><a name="L1634"></a><tt class="py-lineno">1634</tt> <tt class="py-line"> <tt class="py-docstring">"""An XML parser that is configured to return lxml.html Element</tt> </tt>
+<a name="L1635"></a><tt class="py-lineno">1635</tt> <tt class="py-line"><tt class="py-docstring"> objects.</tt> </tt>
+<a name="L1636"></a><tt class="py-lineno">1636</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1637"></a><tt class="py-lineno">1637</tt> <tt class="py-line"><tt class="py-docstring"> Note that this parser is not really XHTML aware unless you let it</tt> </tt>
+<a name="L1638"></a><tt class="py-lineno">1638</tt> <tt class="py-line"><tt class="py-docstring"> load a DTD that declares the HTML entities. To do this, make sure</tt> </tt>
+<a name="L1639"></a><tt class="py-lineno">1639</tt> <tt class="py-line"><tt class="py-docstring"> you have the XHTML DTDs installed in your catalogs, and create the</tt> </tt>
+<a name="L1640"></a><tt class="py-lineno">1640</tt> <tt class="py-line"><tt class="py-docstring"> parser like this::</tt> </tt>
+<a name="L1641"></a><tt class="py-lineno">1641</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1642"></a><tt class="py-lineno">1642</tt> <tt class="py-line"><tt class="py-docstring"> >>> parser = XHTMLParser(load_dtd=True)</tt> </tt>
+<a name="L1643"></a><tt class="py-lineno">1643</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1644"></a><tt class="py-lineno">1644</tt> <tt class="py-line"><tt class="py-docstring"> If you additionally want to validate the document, use this::</tt> </tt>
+<a name="L1645"></a><tt class="py-lineno">1645</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1646"></a><tt class="py-lineno">1646</tt> <tt class="py-line"><tt class="py-docstring"> >>> parser = XHTMLParser(dtd_validation=True)</tt> </tt>
+<a name="L1647"></a><tt class="py-lineno">1647</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1648"></a><tt class="py-lineno">1648</tt> <tt class="py-line"><tt class="py-docstring"> For catalog support, see http://www.xmlsoft.org/catalog.html.</tt> </tt>
+<a name="L1649"></a><tt class="py-lineno">1649</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="XHTMLParser.__init__"></a><div id="XHTMLParser.__init__-def"><a name="L1650"></a><tt class="py-lineno">1650</tt> <a class="py-toggle" href="#" id="XHTMLParser.__init__-toggle" onclick="return toggle('XHTMLParser.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.XHTMLParser-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-param">kwargs</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="XHTMLParser.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XHTMLParser.__init__-expanded"><a name="L1651"></a><tt class="py-lineno">1651</tt> <tt class="py-line"> <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-956" class="py-name" targets="Class lxml.html.XHTMLParser=lxml.html.XHTMLParser-class.html,Class lxml.html.html5parser.XHTMLParser=lxml.html.html5parser.XHTMLParser-class.html"><a title="lxml.html.XHTMLParser
+lxml.html.html5parser.XHTMLParser" class="py-name" href="#" onclick="return doclink('link-956', 'XHTMLParser', 'link-956');">XHTMLParser</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-957" class="py-name"><a title="lxml.builder.ElementMaker.__init__
lxml.cssselect.CSSSelector.__init__
lxml.doctestcompare._RestoreChecker.__init__
lxml.etree.AttributeBasedElementClassLookup.__init__
lxml.tests.common_imports.LargeFileLike.__init__
lxml.tests.common_imports.LargeFileLikeUnicode.__init__
lxml.tests.common_imports.SillyFileLike.__init__
+lxml.tests.dummy_http_server.HTTPRequestCollector.__init__
lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.__init__
lxml.tests.test_threading.ThreadPipelineTestCase.Worker.__init__
-lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver.__init__" class="py-name" href="#" onclick="return doclink('link-968', '__init__', 'link-268');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-op">**</tt><tt class="py-name">kwargs</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">self</tt><tt class="py-op">.</tt><tt id="link-969" class="py-name"><a title="lxml.etree.set_element_class_lookup" class="py-name" href="#" onclick="return doclink('link-969', 'set_element_class_lookup', 'link-965');">set_element_class_lookup</a></tt><tt class="py-op">(</tt><tt id="link-970" class="py-name"><a title="lxml.html.HtmlElementClassLookup" class="py-name" href="#" onclick="return doclink('link-970', 'HtmlElementClassLookup', 'link-567');">HtmlElementClassLookup</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1645"></a><tt class="py-lineno">1645</tt> <tt class="py-line"> </tt>
-<a name="Element"></a><div id="Element-def"><a name="L1646"></a><tt class="py-lineno">1646</tt> <a class="py-toggle" href="#" id="Element-toggle" onclick="return toggle('Element');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html-module.html#Element">Element</a><tt class="py-op">(</tt><tt class="py-op">*</tt><tt class="py-param">args</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-param">kw</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Element-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="Element-expanded"><a name="L1647"></a><tt class="py-lineno">1647</tt> <tt class="py-line"> <tt class="py-docstring">"""Create a new HTML Element.</tt> </tt>
-<a name="L1648"></a><tt class="py-lineno">1648</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1649"></a><tt class="py-lineno">1649</tt> <tt class="py-line"><tt class="py-docstring"> This can also be used for XHTML documents.</tt> </tt>
-<a name="L1650"></a><tt class="py-lineno">1650</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1651"></a><tt class="py-lineno">1651</tt> <tt class="py-line"> <tt id="link-971" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-971', 'v', 'link-521');">v</a></tt> <tt class="py-op">=</tt> <tt id="link-972" class="py-name"><a title="lxml.html.html5parser.html_parser
-lxml.html.html_parser" class="py-name" href="#" onclick="return doclink('link-972', 'html_parser', 'link-295');">html_parser</a></tt><tt class="py-op">.</tt><tt id="link-973" class="py-name" targets="Method lxml.etree._Element.makeelement()=lxml.etree._Element-class.html#makeelement"><a title="lxml.etree._Element.makeelement" class="py-name" href="#" onclick="return doclink('link-973', 'makeelement', 'link-973');">makeelement</a></tt><tt class="py-op">(</tt><tt class="py-op">*</tt><tt class="py-name">args</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-name">kw</tt><tt class="py-op">)</tt> </tt>
-<a name="L1652"></a><tt class="py-lineno">1652</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-974" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-974', 'v', 'link-521');">v</a></tt> </tt>
-</div><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 id="link-975" class="py-name"><a title="lxml.html.html5parser.html_parser
-lxml.html.html_parser" class="py-name" href="#" onclick="return doclink('link-975', 'html_parser', 'link-295');">html_parser</a></tt> <tt class="py-op">=</tt> <tt id="link-976" class="py-name"><a title="lxml.etree.HTMLParser
+lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver.__init__" class="py-name" href="#" onclick="return doclink('link-957', '__init__', 'link-268');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-op">**</tt><tt class="py-name">kwargs</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">self</tt><tt class="py-op">.</tt><tt id="link-958" class="py-name"><a title="lxml.etree.set_element_class_lookup" class="py-name" href="#" onclick="return doclink('link-958', 'set_element_class_lookup', 'link-954');">set_element_class_lookup</a></tt><tt class="py-op">(</tt><tt id="link-959" class="py-name"><a title="lxml.html.HtmlElementClassLookup" class="py-name" href="#" onclick="return doclink('link-959', 'HtmlElementClassLookup', 'link-556');">HtmlElementClassLookup</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1653"></a><tt class="py-lineno">1653</tt> <tt class="py-line"> </tt>
+<a name="Element"></a><div id="Element-def"><a name="L1654"></a><tt class="py-lineno">1654</tt> <a class="py-toggle" href="#" id="Element-toggle" onclick="return toggle('Element');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html-module.html#Element">Element</a><tt class="py-op">(</tt><tt class="py-op">*</tt><tt class="py-param">args</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-param">kw</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Element-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="Element-expanded"><a name="L1655"></a><tt class="py-lineno">1655</tt> <tt class="py-line"> <tt class="py-docstring">"""Create a new HTML Element.</tt> </tt>
+<a name="L1656"></a><tt class="py-lineno">1656</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1657"></a><tt class="py-lineno">1657</tt> <tt class="py-line"><tt class="py-docstring"> This can also be used for XHTML documents.</tt> </tt>
+<a name="L1658"></a><tt class="py-lineno">1658</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1659"></a><tt class="py-lineno">1659</tt> <tt class="py-line"> <tt id="link-960" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-960', 'v', 'link-510');">v</a></tt> <tt class="py-op">=</tt> <tt id="link-961" class="py-name"><a title="lxml.html.html5parser.html_parser
+lxml.html.html_parser" class="py-name" href="#" onclick="return doclink('link-961', 'html_parser', 'link-297');">html_parser</a></tt><tt class="py-op">.</tt><tt id="link-962" class="py-name" targets="Method lxml.etree._Element.makeelement()=lxml.etree._Element-class.html#makeelement"><a title="lxml.etree._Element.makeelement" class="py-name" href="#" onclick="return doclink('link-962', 'makeelement', 'link-962');">makeelement</a></tt><tt class="py-op">(</tt><tt class="py-op">*</tt><tt class="py-name">args</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-name">kw</tt><tt class="py-op">)</tt> </tt>
+<a name="L1660"></a><tt class="py-lineno">1660</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-963" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-963', 'v', 'link-510');">v</a></tt> </tt>
+</div><a name="L1661"></a><tt class="py-lineno">1661</tt> <tt class="py-line"> </tt>
+<a name="L1662"></a><tt class="py-lineno">1662</tt> <tt class="py-line"><tt id="link-964" class="py-name"><a title="lxml.html.html5parser.html_parser
+lxml.html.html_parser" class="py-name" href="#" onclick="return doclink('link-964', 'html_parser', 'link-297');">html_parser</a></tt> <tt class="py-op">=</tt> <tt id="link-965" class="py-name"><a title="lxml.etree.HTMLParser
lxml.html.HTMLParser
-lxml.html.html5parser.HTMLParser" class="py-name" href="#" onclick="return doclink('link-976', 'HTMLParser', 'link-963');">HTMLParser</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 id="link-977" class="py-name" targets="Variable lxml.html.html5parser.xhtml_parser=lxml.html.html5parser-module.html#xhtml_parser,Variable lxml.html.xhtml_parser=lxml.html-module.html#xhtml_parser"><a title="lxml.html.html5parser.xhtml_parser
-lxml.html.xhtml_parser" class="py-name" href="#" onclick="return doclink('link-977', 'xhtml_parser', 'link-977');">xhtml_parser</a></tt> <tt class="py-op">=</tt> <tt id="link-978" class="py-name"><a title="lxml.html.XHTMLParser
-lxml.html.html5parser.XHTMLParser" class="py-name" href="#" onclick="return doclink('link-978', 'XHTMLParser', 'link-967');">XHTMLParser</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1656"></a><tt class="py-lineno">1656</tt> <tt class="py-line"> </tt><script type="text/javascript">
+lxml.html.html5parser.HTMLParser" class="py-name" href="#" onclick="return doclink('link-965', 'HTMLParser', 'link-952');">HTMLParser</a></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 id="link-966" class="py-name" targets="Variable lxml.html.html5parser.xhtml_parser=lxml.html.html5parser-module.html#xhtml_parser,Variable lxml.html.xhtml_parser=lxml.html-module.html#xhtml_parser"><a title="lxml.html.html5parser.xhtml_parser
+lxml.html.xhtml_parser" class="py-name" href="#" onclick="return doclink('link-966', 'xhtml_parser', 'link-966');">xhtml_parser</a></tt> <tt class="py-op">=</tt> <tt id="link-967" class="py-name"><a title="lxml.html.XHTMLParser
+lxml.html.html5parser.XHTMLParser" class="py-name" href="#" onclick="return doclink('link-967', 'XHTMLParser', 'link-956');">XHTMLParser</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1664"></a><tt class="py-lineno">1664</tt> <tt class="py-line"> </tt><script type="text/javascript">
<!--
expandto(location.href);
// -->
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:38 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:13 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:36 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:12 2013
</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="_abc_negative_cache"></a><span class="summary-name">_abc_negative_cache</span> = <code title="<_weakrefset.WeakSet object at 0x1dee610>"><_weakrefset.WeakSet object at 0x1dee610></code>
+ <a name="_abc_negative_cache"></a><span class="summary-name">_abc_negative_cache</span> = <code title="<_weakrefset.WeakSet object at 0x35796d0>"><_weakrefset.WeakSet object at 0x35796d0></code>
</td>
</tr>
<tr class="private">
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type"> </span>
</td><td class="summary">
- <a name="_abc_registry"></a><span class="summary-name">_abc_registry</span> = <code title="<_weakrefset.WeakSet object at 0x1dee4d0>"><_weakrefset.WeakSet object at 0x1dee4d0></code>
+ <a name="_abc_registry"></a><span class="summary-name">_abc_registry</span> = <code title="<_weakrefset.WeakSet object at 0x3579550>"><_weakrefset.WeakSet object at 0x3579550></code>
</td>
</tr>
<tr>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:36 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:14 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"><tt class="py-docstring"> Removes any ``<script>`` tags.</tt> </tt>
<a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
<a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"><tt class="py-docstring"> ``javascript``:</tt> </tt>
-<a name="L100"></a><tt class="py-lineno">100</tt> <tt class="py-line"><tt class="py-docstring"> Removes any Javascript, like an ``onclick`` attribute.</tt> </tt>
-<a name="L101"></a><tt class="py-lineno">101</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L102"></a><tt class="py-lineno">102</tt> <tt class="py-line"><tt class="py-docstring"> ``comments``:</tt> </tt>
-<a name="L103"></a><tt class="py-lineno">103</tt> <tt class="py-line"><tt class="py-docstring"> Removes any comments.</tt> </tt>
-<a name="L104"></a><tt class="py-lineno">104</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L105"></a><tt class="py-lineno">105</tt> <tt class="py-line"><tt class="py-docstring"> ``style``:</tt> </tt>
-<a name="L106"></a><tt class="py-lineno">106</tt> <tt class="py-line"><tt class="py-docstring"> Removes any style tags or attributes.</tt> </tt>
-<a name="L107"></a><tt class="py-lineno">107</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L108"></a><tt class="py-lineno">108</tt> <tt class="py-line"><tt class="py-docstring"> ``links``:</tt> </tt>
-<a name="L109"></a><tt class="py-lineno">109</tt> <tt class="py-line"><tt class="py-docstring"> Removes any ``<link>`` tags</tt> </tt>
-<a name="L110"></a><tt class="py-lineno">110</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L111"></a><tt class="py-lineno">111</tt> <tt class="py-line"><tt class="py-docstring"> ``meta``:</tt> </tt>
-<a name="L112"></a><tt class="py-lineno">112</tt> <tt class="py-line"><tt class="py-docstring"> Removes any ``<meta>`` tags</tt> </tt>
-<a name="L113"></a><tt class="py-lineno">113</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L114"></a><tt class="py-lineno">114</tt> <tt class="py-line"><tt class="py-docstring"> ``page_structure``:</tt> </tt>
-<a name="L115"></a><tt class="py-lineno">115</tt> <tt class="py-line"><tt class="py-docstring"> Structural parts of a page: ``<head>``, ``<html>``, ``<title>``.</tt> </tt>
-<a name="L116"></a><tt class="py-lineno">116</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L117"></a><tt class="py-lineno">117</tt> <tt class="py-line"><tt class="py-docstring"> ``processing_instructions``:</tt> </tt>
-<a name="L118"></a><tt class="py-lineno">118</tt> <tt class="py-line"><tt class="py-docstring"> Removes any processing instructions.</tt> </tt>
-<a name="L119"></a><tt class="py-lineno">119</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L120"></a><tt class="py-lineno">120</tt> <tt class="py-line"><tt class="py-docstring"> ``embedded``:</tt> </tt>
-<a name="L121"></a><tt class="py-lineno">121</tt> <tt class="py-line"><tt class="py-docstring"> Removes any embedded objects (flash, iframes)</tt> </tt>
-<a name="L122"></a><tt class="py-lineno">122</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L123"></a><tt class="py-lineno">123</tt> <tt class="py-line"><tt class="py-docstring"> ``frames``:</tt> </tt>
-<a name="L124"></a><tt class="py-lineno">124</tt> <tt class="py-line"><tt class="py-docstring"> Removes any frame-related tags</tt> </tt>
-<a name="L125"></a><tt class="py-lineno">125</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L126"></a><tt class="py-lineno">126</tt> <tt class="py-line"><tt class="py-docstring"> ``forms``:</tt> </tt>
-<a name="L127"></a><tt class="py-lineno">127</tt> <tt class="py-line"><tt class="py-docstring"> Removes any form tags</tt> </tt>
-<a name="L128"></a><tt class="py-lineno">128</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L129"></a><tt class="py-lineno">129</tt> <tt class="py-line"><tt class="py-docstring"> ``annoying_tags``:</tt> </tt>
-<a name="L130"></a><tt class="py-lineno">130</tt> <tt class="py-line"><tt class="py-docstring"> Tags that aren't *wrong*, but are annoying. ``<blink>`` and ``<marquee>``</tt> </tt>
-<a name="L131"></a><tt class="py-lineno">131</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L132"></a><tt class="py-lineno">132</tt> <tt class="py-line"><tt class="py-docstring"> ``remove_tags``:</tt> </tt>
-<a name="L133"></a><tt class="py-lineno">133</tt> <tt class="py-line"><tt class="py-docstring"> A list of tags to remove. Only the tags will be removed,</tt> </tt>
-<a name="L134"></a><tt class="py-lineno">134</tt> <tt class="py-line"><tt class="py-docstring"> their content will get pulled up into the parent tag.</tt> </tt>
-<a name="L135"></a><tt class="py-lineno">135</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L136"></a><tt class="py-lineno">136</tt> <tt class="py-line"><tt class="py-docstring"> ``kill_tags``:</tt> </tt>
-<a name="L137"></a><tt class="py-lineno">137</tt> <tt class="py-line"><tt class="py-docstring"> A list of tags to kill. Killing also removes the tag's content,</tt> </tt>
-<a name="L138"></a><tt class="py-lineno">138</tt> <tt class="py-line"><tt class="py-docstring"> i.e. the whole subtree, not just the tag itself.</tt> </tt>
-<a name="L139"></a><tt class="py-lineno">139</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L140"></a><tt class="py-lineno">140</tt> <tt class="py-line"><tt class="py-docstring"> ``allow_tags``:</tt> </tt>
-<a name="L141"></a><tt class="py-lineno">141</tt> <tt class="py-line"><tt class="py-docstring"> A list of tags to include (default include all).</tt> </tt>
-<a name="L142"></a><tt class="py-lineno">142</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L143"></a><tt class="py-lineno">143</tt> <tt class="py-line"><tt class="py-docstring"> ``remove_unknown_tags``:</tt> </tt>
-<a name="L144"></a><tt class="py-lineno">144</tt> <tt class="py-line"><tt class="py-docstring"> Remove any tags that aren't standard parts of HTML.</tt> </tt>
-<a name="L145"></a><tt class="py-lineno">145</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L146"></a><tt class="py-lineno">146</tt> <tt class="py-line"><tt class="py-docstring"> ``safe_attrs_only``:</tt> </tt>
-<a name="L147"></a><tt class="py-lineno">147</tt> <tt class="py-line"><tt class="py-docstring"> If true, only include 'safe' attributes (specifically the list</tt> </tt>
-<a name="L148"></a><tt class="py-lineno">148</tt> <tt class="py-line"><tt class="py-docstring"> from the feedparser HTML sanitisation web site).</tt> </tt>
-<a name="L149"></a><tt class="py-lineno">149</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L150"></a><tt class="py-lineno">150</tt> <tt class="py-line"><tt class="py-docstring"> ``safe_attrs``:</tt> </tt>
-<a name="L151"></a><tt class="py-lineno">151</tt> <tt class="py-line"><tt class="py-docstring"> A set of attribute names to override the default list of attributes</tt> </tt>
-<a name="L152"></a><tt class="py-lineno">152</tt> <tt class="py-line"><tt class="py-docstring"> considered 'safe' (when safe_attrs_only=True).</tt> </tt>
-<a name="L153"></a><tt class="py-lineno">153</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L154"></a><tt class="py-lineno">154</tt> <tt class="py-line"><tt class="py-docstring"> ``add_nofollow``:</tt> </tt>
-<a name="L155"></a><tt class="py-lineno">155</tt> <tt class="py-line"><tt class="py-docstring"> If true, then any <a> tags will have ``rel="nofollow"`` added to them.</tt> </tt>
-<a name="L156"></a><tt class="py-lineno">156</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L157"></a><tt class="py-lineno">157</tt> <tt class="py-line"><tt class="py-docstring"> ``host_whitelist``:</tt> </tt>
-<a name="L158"></a><tt class="py-lineno">158</tt> <tt class="py-line"><tt class="py-docstring"> A list or set of hosts that you can use for embedded content</tt> </tt>
-<a name="L159"></a><tt class="py-lineno">159</tt> <tt class="py-line"><tt class="py-docstring"> (for content like ``<object>``, ``<link rel="stylesheet">``, etc).</tt> </tt>
-<a name="L160"></a><tt class="py-lineno">160</tt> <tt class="py-line"><tt class="py-docstring"> You can also implement/override the method</tt> </tt>
-<a name="L161"></a><tt class="py-lineno">161</tt> <tt class="py-line"><tt class="py-docstring"> ``allow_embedded_url(el, url)`` or ``allow_element(el)`` to</tt> </tt>
-<a name="L162"></a><tt class="py-lineno">162</tt> <tt class="py-line"><tt class="py-docstring"> implement more complex rules for what can be embedded.</tt> </tt>
-<a name="L163"></a><tt class="py-lineno">163</tt> <tt class="py-line"><tt class="py-docstring"> Anything that passes this test will be shown, regardless of</tt> </tt>
-<a name="L164"></a><tt class="py-lineno">164</tt> <tt class="py-line"><tt class="py-docstring"> the value of (for instance) ``embedded``.</tt> </tt>
-<a name="L165"></a><tt class="py-lineno">165</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L166"></a><tt class="py-lineno">166</tt> <tt class="py-line"><tt class="py-docstring"> Note that this parameter might not work as intended if you do not</tt> </tt>
-<a name="L167"></a><tt class="py-lineno">167</tt> <tt class="py-line"><tt class="py-docstring"> make the links absolute before doing the cleaning.</tt> </tt>
-<a name="L168"></a><tt class="py-lineno">168</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L169"></a><tt class="py-lineno">169</tt> <tt class="py-line"><tt class="py-docstring"> ``whitelist_tags``:</tt> </tt>
-<a name="L170"></a><tt class="py-lineno">170</tt> <tt class="py-line"><tt class="py-docstring"> A set of tags that can be included with ``host_whitelist``.</tt> </tt>
-<a name="L171"></a><tt class="py-lineno">171</tt> <tt class="py-line"><tt class="py-docstring"> The default is ``iframe`` and ``embed``; you may wish to</tt> </tt>
-<a name="L172"></a><tt class="py-lineno">172</tt> <tt class="py-line"><tt class="py-docstring"> include other tags like ``script``, or you may want to</tt> </tt>
-<a name="L173"></a><tt class="py-lineno">173</tt> <tt class="py-line"><tt class="py-docstring"> implement ``allow_embedded_url`` for more control. Set to None to</tt> </tt>
-<a name="L174"></a><tt class="py-lineno">174</tt> <tt class="py-line"><tt class="py-docstring"> include all tags.</tt> </tt>
-<a name="L175"></a><tt class="py-lineno">175</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L176"></a><tt class="py-lineno">176</tt> <tt class="py-line"><tt class="py-docstring"> This modifies the document *in place*.</tt> </tt>
-<a name="L177"></a><tt class="py-lineno">177</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L178"></a><tt class="py-lineno">178</tt> <tt class="py-line"> </tt>
-<a name="L179"></a><tt class="py-lineno">179</tt> <tt class="py-line"> <tt id="link-39" class="py-name" targets="Variable lxml.html.clean.Cleaner.scripts=lxml.html.clean.Cleaner-class.html#scripts"><a title="lxml.html.clean.Cleaner.scripts" class="py-name" href="#" onclick="return doclink('link-39', 'scripts', 'link-39');">scripts</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L180"></a><tt class="py-lineno">180</tt> <tt class="py-line"> <tt id="link-40" class="py-name" targets="Variable lxml.html.clean.Cleaner.javascript=lxml.html.clean.Cleaner-class.html#javascript"><a title="lxml.html.clean.Cleaner.javascript" class="py-name" href="#" onclick="return doclink('link-40', 'javascript', 'link-40');">javascript</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L181"></a><tt class="py-lineno">181</tt> <tt class="py-line"> <tt id="link-41" class="py-name" targets="Variable lxml.html.clean.Cleaner.comments=lxml.html.clean.Cleaner-class.html#comments"><a title="lxml.html.clean.Cleaner.comments" class="py-name" href="#" onclick="return doclink('link-41', 'comments', 'link-41');">comments</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L182"></a><tt class="py-lineno">182</tt> <tt class="py-line"> <tt id="link-42" class="py-name" targets="Variable lxml.html.clean.Cleaner.style=lxml.html.clean.Cleaner-class.html#style"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-42', 'style', 'link-42');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
-<a name="L183"></a><tt class="py-lineno">183</tt> <tt class="py-line"> <tt id="link-43" class="py-name" targets="Variable lxml.html.clean.Cleaner.links=lxml.html.clean.Cleaner-class.html#links"><a title="lxml.html.clean.Cleaner.links" class="py-name" href="#" onclick="return doclink('link-43', 'links', 'link-43');">links</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L184"></a><tt class="py-lineno">184</tt> <tt class="py-line"> <tt id="link-44" class="py-name" targets="Variable lxml.html.clean.Cleaner.meta=lxml.html.clean.Cleaner-class.html#meta"><a title="lxml.html.clean.Cleaner.meta" class="py-name" href="#" onclick="return doclink('link-44', 'meta', 'link-44');">meta</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L185"></a><tt class="py-lineno">185</tt> <tt class="py-line"> <tt id="link-45" class="py-name" targets="Variable lxml.html.clean.Cleaner.page_structure=lxml.html.clean.Cleaner-class.html#page_structure"><a title="lxml.html.clean.Cleaner.page_structure" class="py-name" href="#" onclick="return doclink('link-45', 'page_structure', 'link-45');">page_structure</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L186"></a><tt class="py-lineno">186</tt> <tt class="py-line"> <tt id="link-46" class="py-name" targets="Variable lxml.html.clean.Cleaner.processing_instructions=lxml.html.clean.Cleaner-class.html#processing_instructions"><a title="lxml.html.clean.Cleaner.processing_instructions" class="py-name" href="#" onclick="return doclink('link-46', 'processing_instructions', 'link-46');">processing_instructions</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L187"></a><tt class="py-lineno">187</tt> <tt class="py-line"> <tt id="link-47" class="py-name" targets="Variable lxml.html.clean.Cleaner.embedded=lxml.html.clean.Cleaner-class.html#embedded"><a title="lxml.html.clean.Cleaner.embedded" class="py-name" href="#" onclick="return doclink('link-47', 'embedded', 'link-47');">embedded</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L188"></a><tt class="py-lineno">188</tt> <tt class="py-line"> <tt id="link-48" class="py-name" targets="Variable lxml.html.clean.Cleaner.frames=lxml.html.clean.Cleaner-class.html#frames"><a title="lxml.html.clean.Cleaner.frames" class="py-name" href="#" onclick="return doclink('link-48', 'frames', 'link-48');">frames</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L189"></a><tt class="py-lineno">189</tt> <tt class="py-line"> <tt id="link-49" class="py-name" targets="Variable lxml.html.HtmlMixin.forms=lxml.html.HtmlMixin-class.html#forms,Variable lxml.html.clean.Cleaner.forms=lxml.html.clean.Cleaner-class.html#forms"><a title="lxml.html.HtmlMixin.forms
+<a name="L100"></a><tt class="py-lineno">100</tt> <tt class="py-line"><tt class="py-docstring"> Removes any Javascript, like an ``onclick`` attribute. Also removes stylesheets</tt> </tt>
+<a name="L101"></a><tt class="py-lineno">101</tt> <tt class="py-line"><tt class="py-docstring"> as they could contain Javascript.</tt> </tt>
+<a name="L102"></a><tt class="py-lineno">102</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L103"></a><tt class="py-lineno">103</tt> <tt class="py-line"><tt class="py-docstring"> ``comments``:</tt> </tt>
+<a name="L104"></a><tt class="py-lineno">104</tt> <tt class="py-line"><tt class="py-docstring"> Removes any comments.</tt> </tt>
+<a name="L105"></a><tt class="py-lineno">105</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L106"></a><tt class="py-lineno">106</tt> <tt class="py-line"><tt class="py-docstring"> ``style``:</tt> </tt>
+<a name="L107"></a><tt class="py-lineno">107</tt> <tt class="py-line"><tt class="py-docstring"> Removes any style tags or attributes.</tt> </tt>
+<a name="L108"></a><tt class="py-lineno">108</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L109"></a><tt class="py-lineno">109</tt> <tt class="py-line"><tt class="py-docstring"> ``links``:</tt> </tt>
+<a name="L110"></a><tt class="py-lineno">110</tt> <tt class="py-line"><tt class="py-docstring"> Removes any ``<link>`` tags</tt> </tt>
+<a name="L111"></a><tt class="py-lineno">111</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L112"></a><tt class="py-lineno">112</tt> <tt class="py-line"><tt class="py-docstring"> ``meta``:</tt> </tt>
+<a name="L113"></a><tt class="py-lineno">113</tt> <tt class="py-line"><tt class="py-docstring"> Removes any ``<meta>`` tags</tt> </tt>
+<a name="L114"></a><tt class="py-lineno">114</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L115"></a><tt class="py-lineno">115</tt> <tt class="py-line"><tt class="py-docstring"> ``page_structure``:</tt> </tt>
+<a name="L116"></a><tt class="py-lineno">116</tt> <tt class="py-line"><tt class="py-docstring"> Structural parts of a page: ``<head>``, ``<html>``, ``<title>``.</tt> </tt>
+<a name="L117"></a><tt class="py-lineno">117</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L118"></a><tt class="py-lineno">118</tt> <tt class="py-line"><tt class="py-docstring"> ``processing_instructions``:</tt> </tt>
+<a name="L119"></a><tt class="py-lineno">119</tt> <tt class="py-line"><tt class="py-docstring"> Removes any processing instructions.</tt> </tt>
+<a name="L120"></a><tt class="py-lineno">120</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L121"></a><tt class="py-lineno">121</tt> <tt class="py-line"><tt class="py-docstring"> ``embedded``:</tt> </tt>
+<a name="L122"></a><tt class="py-lineno">122</tt> <tt class="py-line"><tt class="py-docstring"> Removes any embedded objects (flash, iframes)</tt> </tt>
+<a name="L123"></a><tt class="py-lineno">123</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L124"></a><tt class="py-lineno">124</tt> <tt class="py-line"><tt class="py-docstring"> ``frames``:</tt> </tt>
+<a name="L125"></a><tt class="py-lineno">125</tt> <tt class="py-line"><tt class="py-docstring"> Removes any frame-related tags</tt> </tt>
+<a name="L126"></a><tt class="py-lineno">126</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L127"></a><tt class="py-lineno">127</tt> <tt class="py-line"><tt class="py-docstring"> ``forms``:</tt> </tt>
+<a name="L128"></a><tt class="py-lineno">128</tt> <tt class="py-line"><tt class="py-docstring"> Removes any form tags</tt> </tt>
+<a name="L129"></a><tt class="py-lineno">129</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L130"></a><tt class="py-lineno">130</tt> <tt class="py-line"><tt class="py-docstring"> ``annoying_tags``:</tt> </tt>
+<a name="L131"></a><tt class="py-lineno">131</tt> <tt class="py-line"><tt class="py-docstring"> Tags that aren't *wrong*, but are annoying. ``<blink>`` and ``<marquee>``</tt> </tt>
+<a name="L132"></a><tt class="py-lineno">132</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L133"></a><tt class="py-lineno">133</tt> <tt class="py-line"><tt class="py-docstring"> ``remove_tags``:</tt> </tt>
+<a name="L134"></a><tt class="py-lineno">134</tt> <tt class="py-line"><tt class="py-docstring"> A list of tags to remove. Only the tags will be removed,</tt> </tt>
+<a name="L135"></a><tt class="py-lineno">135</tt> <tt class="py-line"><tt class="py-docstring"> their content will get pulled up into the parent tag.</tt> </tt>
+<a name="L136"></a><tt class="py-lineno">136</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L137"></a><tt class="py-lineno">137</tt> <tt class="py-line"><tt class="py-docstring"> ``kill_tags``:</tt> </tt>
+<a name="L138"></a><tt class="py-lineno">138</tt> <tt class="py-line"><tt class="py-docstring"> A list of tags to kill. Killing also removes the tag's content,</tt> </tt>
+<a name="L139"></a><tt class="py-lineno">139</tt> <tt class="py-line"><tt class="py-docstring"> i.e. the whole subtree, not just the tag itself.</tt> </tt>
+<a name="L140"></a><tt class="py-lineno">140</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L141"></a><tt class="py-lineno">141</tt> <tt class="py-line"><tt class="py-docstring"> ``allow_tags``:</tt> </tt>
+<a name="L142"></a><tt class="py-lineno">142</tt> <tt class="py-line"><tt class="py-docstring"> A list of tags to include (default include all).</tt> </tt>
+<a name="L143"></a><tt class="py-lineno">143</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L144"></a><tt class="py-lineno">144</tt> <tt class="py-line"><tt class="py-docstring"> ``remove_unknown_tags``:</tt> </tt>
+<a name="L145"></a><tt class="py-lineno">145</tt> <tt class="py-line"><tt class="py-docstring"> Remove any tags that aren't standard parts of HTML.</tt> </tt>
+<a name="L146"></a><tt class="py-lineno">146</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L147"></a><tt class="py-lineno">147</tt> <tt class="py-line"><tt class="py-docstring"> ``safe_attrs_only``:</tt> </tt>
+<a name="L148"></a><tt class="py-lineno">148</tt> <tt class="py-line"><tt class="py-docstring"> If true, only include 'safe' attributes (specifically the list</tt> </tt>
+<a name="L149"></a><tt class="py-lineno">149</tt> <tt class="py-line"><tt class="py-docstring"> from the feedparser HTML sanitisation web site).</tt> </tt>
+<a name="L150"></a><tt class="py-lineno">150</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L151"></a><tt class="py-lineno">151</tt> <tt class="py-line"><tt class="py-docstring"> ``safe_attrs``:</tt> </tt>
+<a name="L152"></a><tt class="py-lineno">152</tt> <tt class="py-line"><tt class="py-docstring"> A set of attribute names to override the default list of attributes</tt> </tt>
+<a name="L153"></a><tt class="py-lineno">153</tt> <tt class="py-line"><tt class="py-docstring"> considered 'safe' (when safe_attrs_only=True).</tt> </tt>
+<a name="L154"></a><tt class="py-lineno">154</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L155"></a><tt class="py-lineno">155</tt> <tt class="py-line"><tt class="py-docstring"> ``add_nofollow``:</tt> </tt>
+<a name="L156"></a><tt class="py-lineno">156</tt> <tt class="py-line"><tt class="py-docstring"> If true, then any <a> tags will have ``rel="nofollow"`` added to them.</tt> </tt>
+<a name="L157"></a><tt class="py-lineno">157</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L158"></a><tt class="py-lineno">158</tt> <tt class="py-line"><tt class="py-docstring"> ``host_whitelist``:</tt> </tt>
+<a name="L159"></a><tt class="py-lineno">159</tt> <tt class="py-line"><tt class="py-docstring"> A list or set of hosts that you can use for embedded content</tt> </tt>
+<a name="L160"></a><tt class="py-lineno">160</tt> <tt class="py-line"><tt class="py-docstring"> (for content like ``<object>``, ``<link rel="stylesheet">``, etc).</tt> </tt>
+<a name="L161"></a><tt class="py-lineno">161</tt> <tt class="py-line"><tt class="py-docstring"> You can also implement/override the method</tt> </tt>
+<a name="L162"></a><tt class="py-lineno">162</tt> <tt class="py-line"><tt class="py-docstring"> ``allow_embedded_url(el, url)`` or ``allow_element(el)`` to</tt> </tt>
+<a name="L163"></a><tt class="py-lineno">163</tt> <tt class="py-line"><tt class="py-docstring"> implement more complex rules for what can be embedded.</tt> </tt>
+<a name="L164"></a><tt class="py-lineno">164</tt> <tt class="py-line"><tt class="py-docstring"> Anything that passes this test will be shown, regardless of</tt> </tt>
+<a name="L165"></a><tt class="py-lineno">165</tt> <tt class="py-line"><tt class="py-docstring"> the value of (for instance) ``embedded``.</tt> </tt>
+<a name="L166"></a><tt class="py-lineno">166</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L167"></a><tt class="py-lineno">167</tt> <tt class="py-line"><tt class="py-docstring"> Note that this parameter might not work as intended if you do not</tt> </tt>
+<a name="L168"></a><tt class="py-lineno">168</tt> <tt class="py-line"><tt class="py-docstring"> make the links absolute before doing the cleaning.</tt> </tt>
+<a name="L169"></a><tt class="py-lineno">169</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L170"></a><tt class="py-lineno">170</tt> <tt class="py-line"><tt class="py-docstring"> Note that you may also need to set ``whitelist_tags``.</tt> </tt>
+<a name="L171"></a><tt class="py-lineno">171</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L172"></a><tt class="py-lineno">172</tt> <tt class="py-line"><tt class="py-docstring"> ``whitelist_tags``:</tt> </tt>
+<a name="L173"></a><tt class="py-lineno">173</tt> <tt class="py-line"><tt class="py-docstring"> A set of tags that can be included with ``host_whitelist``.</tt> </tt>
+<a name="L174"></a><tt class="py-lineno">174</tt> <tt class="py-line"><tt class="py-docstring"> The default is ``iframe`` and ``embed``; you may wish to</tt> </tt>
+<a name="L175"></a><tt class="py-lineno">175</tt> <tt class="py-line"><tt class="py-docstring"> include other tags like ``script``, or you may want to</tt> </tt>
+<a name="L176"></a><tt class="py-lineno">176</tt> <tt class="py-line"><tt class="py-docstring"> implement ``allow_embedded_url`` for more control. Set to None to</tt> </tt>
+<a name="L177"></a><tt class="py-lineno">177</tt> <tt class="py-line"><tt class="py-docstring"> include all tags.</tt> </tt>
+<a name="L178"></a><tt class="py-lineno">178</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L179"></a><tt class="py-lineno">179</tt> <tt class="py-line"><tt class="py-docstring"> This modifies the document *in place*.</tt> </tt>
+<a name="L180"></a><tt class="py-lineno">180</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L181"></a><tt class="py-lineno">181</tt> <tt class="py-line"> </tt>
+<a name="L182"></a><tt class="py-lineno">182</tt> <tt class="py-line"> <tt id="link-39" class="py-name" targets="Variable lxml.html.clean.Cleaner.scripts=lxml.html.clean.Cleaner-class.html#scripts"><a title="lxml.html.clean.Cleaner.scripts" class="py-name" href="#" onclick="return doclink('link-39', 'scripts', 'link-39');">scripts</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L183"></a><tt class="py-lineno">183</tt> <tt class="py-line"> <tt id="link-40" class="py-name" targets="Variable lxml.html.clean.Cleaner.javascript=lxml.html.clean.Cleaner-class.html#javascript"><a title="lxml.html.clean.Cleaner.javascript" class="py-name" href="#" onclick="return doclink('link-40', 'javascript', 'link-40');">javascript</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L184"></a><tt class="py-lineno">184</tt> <tt class="py-line"> <tt id="link-41" class="py-name" targets="Variable lxml.html.clean.Cleaner.comments=lxml.html.clean.Cleaner-class.html#comments"><a title="lxml.html.clean.Cleaner.comments" class="py-name" href="#" onclick="return doclink('link-41', 'comments', 'link-41');">comments</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L185"></a><tt class="py-lineno">185</tt> <tt class="py-line"> <tt id="link-42" class="py-name" targets="Variable lxml.html.clean.Cleaner.style=lxml.html.clean.Cleaner-class.html#style"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-42', 'style', 'link-42');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L186"></a><tt class="py-lineno">186</tt> <tt class="py-line"> <tt id="link-43" class="py-name" targets="Variable lxml.html.clean.Cleaner.links=lxml.html.clean.Cleaner-class.html#links"><a title="lxml.html.clean.Cleaner.links" class="py-name" href="#" onclick="return doclink('link-43', 'links', 'link-43');">links</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L187"></a><tt class="py-lineno">187</tt> <tt class="py-line"> <tt id="link-44" class="py-name" targets="Variable lxml.html.clean.Cleaner.meta=lxml.html.clean.Cleaner-class.html#meta"><a title="lxml.html.clean.Cleaner.meta" class="py-name" href="#" onclick="return doclink('link-44', 'meta', 'link-44');">meta</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L188"></a><tt class="py-lineno">188</tt> <tt class="py-line"> <tt id="link-45" class="py-name" targets="Variable lxml.html.clean.Cleaner.page_structure=lxml.html.clean.Cleaner-class.html#page_structure"><a title="lxml.html.clean.Cleaner.page_structure" class="py-name" href="#" onclick="return doclink('link-45', 'page_structure', 'link-45');">page_structure</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L189"></a><tt class="py-lineno">189</tt> <tt class="py-line"> <tt id="link-46" class="py-name" targets="Variable lxml.html.clean.Cleaner.processing_instructions=lxml.html.clean.Cleaner-class.html#processing_instructions"><a title="lxml.html.clean.Cleaner.processing_instructions" class="py-name" href="#" onclick="return doclink('link-46', 'processing_instructions', 'link-46');">processing_instructions</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L190"></a><tt class="py-lineno">190</tt> <tt class="py-line"> <tt id="link-47" class="py-name" targets="Variable lxml.html.clean.Cleaner.embedded=lxml.html.clean.Cleaner-class.html#embedded"><a title="lxml.html.clean.Cleaner.embedded" class="py-name" href="#" onclick="return doclink('link-47', 'embedded', 'link-47');">embedded</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L191"></a><tt class="py-lineno">191</tt> <tt class="py-line"> <tt id="link-48" class="py-name" targets="Variable lxml.html.clean.Cleaner.frames=lxml.html.clean.Cleaner-class.html#frames"><a title="lxml.html.clean.Cleaner.frames" class="py-name" href="#" onclick="return doclink('link-48', 'frames', 'link-48');">frames</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L192"></a><tt class="py-lineno">192</tt> <tt class="py-line"> <tt id="link-49" class="py-name" targets="Variable lxml.html.HtmlMixin.forms=lxml.html.HtmlMixin-class.html#forms,Variable lxml.html.clean.Cleaner.forms=lxml.html.clean.Cleaner-class.html#forms"><a title="lxml.html.HtmlMixin.forms
lxml.html.clean.Cleaner.forms" class="py-name" href="#" onclick="return doclink('link-49', 'forms', 'link-49');">forms</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L190"></a><tt class="py-lineno">190</tt> <tt class="py-line"> <tt id="link-50" class="py-name" targets="Variable lxml.html.clean.Cleaner.annoying_tags=lxml.html.clean.Cleaner-class.html#annoying_tags"><a title="lxml.html.clean.Cleaner.annoying_tags" class="py-name" href="#" onclick="return doclink('link-50', 'annoying_tags', 'link-50');">annoying_tags</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L191"></a><tt class="py-lineno">191</tt> <tt class="py-line"> <tt id="link-51" class="py-name" targets="Variable lxml.html.clean.Cleaner.remove_tags=lxml.html.clean.Cleaner-class.html#remove_tags"><a title="lxml.html.clean.Cleaner.remove_tags" class="py-name" href="#" onclick="return doclink('link-51', 'remove_tags', 'link-51');">remove_tags</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L192"></a><tt class="py-lineno">192</tt> <tt class="py-line"> <tt id="link-52" class="py-name" targets="Variable lxml.html.clean.Cleaner.allow_tags=lxml.html.clean.Cleaner-class.html#allow_tags"><a title="lxml.html.clean.Cleaner.allow_tags" class="py-name" href="#" onclick="return doclink('link-52', 'allow_tags', 'link-52');">allow_tags</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L193"></a><tt class="py-lineno">193</tt> <tt class="py-line"> <tt id="link-53" class="py-name" targets="Variable lxml.html.clean.Cleaner.kill_tags=lxml.html.clean.Cleaner-class.html#kill_tags"><a title="lxml.html.clean.Cleaner.kill_tags" class="py-name" href="#" onclick="return doclink('link-53', 'kill_tags', 'link-53');">kill_tags</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L194"></a><tt class="py-lineno">194</tt> <tt class="py-line"> <tt id="link-54" class="py-name" targets="Variable lxml.html.clean.Cleaner.remove_unknown_tags=lxml.html.clean.Cleaner-class.html#remove_unknown_tags"><a title="lxml.html.clean.Cleaner.remove_unknown_tags" class="py-name" href="#" onclick="return doclink('link-54', 'remove_unknown_tags', 'link-54');">remove_unknown_tags</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L195"></a><tt class="py-lineno">195</tt> <tt class="py-line"> <tt id="link-55" class="py-name" targets="Variable lxml.html.clean.Cleaner.safe_attrs_only=lxml.html.clean.Cleaner-class.html#safe_attrs_only"><a title="lxml.html.clean.Cleaner.safe_attrs_only" class="py-name" href="#" onclick="return doclink('link-55', 'safe_attrs_only', 'link-55');">safe_attrs_only</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L196"></a><tt class="py-lineno">196</tt> <tt class="py-line"> <tt id="link-56" class="py-name" targets="Variable lxml.html.clean.Cleaner.safe_attrs=lxml.html.clean.Cleaner-class.html#safe_attrs,Variable lxml.html.defs.safe_attrs=lxml.html.defs-module.html#safe_attrs"><a title="lxml.html.clean.Cleaner.safe_attrs
+<a name="L193"></a><tt class="py-lineno">193</tt> <tt class="py-line"> <tt id="link-50" class="py-name" targets="Variable lxml.html.clean.Cleaner.annoying_tags=lxml.html.clean.Cleaner-class.html#annoying_tags"><a title="lxml.html.clean.Cleaner.annoying_tags" class="py-name" href="#" onclick="return doclink('link-50', 'annoying_tags', 'link-50');">annoying_tags</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L194"></a><tt class="py-lineno">194</tt> <tt class="py-line"> <tt id="link-51" class="py-name" targets="Variable lxml.html.clean.Cleaner.remove_tags=lxml.html.clean.Cleaner-class.html#remove_tags"><a title="lxml.html.clean.Cleaner.remove_tags" class="py-name" href="#" onclick="return doclink('link-51', 'remove_tags', 'link-51');">remove_tags</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L195"></a><tt class="py-lineno">195</tt> <tt class="py-line"> <tt id="link-52" class="py-name" targets="Variable lxml.html.clean.Cleaner.allow_tags=lxml.html.clean.Cleaner-class.html#allow_tags"><a title="lxml.html.clean.Cleaner.allow_tags" class="py-name" href="#" onclick="return doclink('link-52', 'allow_tags', 'link-52');">allow_tags</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L196"></a><tt class="py-lineno">196</tt> <tt class="py-line"> <tt id="link-53" class="py-name" targets="Variable lxml.html.clean.Cleaner.kill_tags=lxml.html.clean.Cleaner-class.html#kill_tags"><a title="lxml.html.clean.Cleaner.kill_tags" class="py-name" href="#" onclick="return doclink('link-53', 'kill_tags', 'link-53');">kill_tags</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L197"></a><tt class="py-lineno">197</tt> <tt class="py-line"> <tt id="link-54" class="py-name" targets="Variable lxml.html.clean.Cleaner.remove_unknown_tags=lxml.html.clean.Cleaner-class.html#remove_unknown_tags"><a title="lxml.html.clean.Cleaner.remove_unknown_tags" class="py-name" href="#" onclick="return doclink('link-54', 'remove_unknown_tags', 'link-54');">remove_unknown_tags</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L198"></a><tt class="py-lineno">198</tt> <tt class="py-line"> <tt id="link-55" class="py-name" targets="Variable lxml.html.clean.Cleaner.safe_attrs_only=lxml.html.clean.Cleaner-class.html#safe_attrs_only"><a title="lxml.html.clean.Cleaner.safe_attrs_only" class="py-name" href="#" onclick="return doclink('link-55', 'safe_attrs_only', 'link-55');">safe_attrs_only</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L199"></a><tt class="py-lineno">199</tt> <tt class="py-line"> <tt id="link-56" class="py-name" targets="Variable lxml.html.clean.Cleaner.safe_attrs=lxml.html.clean.Cleaner-class.html#safe_attrs,Variable lxml.html.defs.safe_attrs=lxml.html.defs-module.html#safe_attrs"><a title="lxml.html.clean.Cleaner.safe_attrs
lxml.html.defs.safe_attrs" class="py-name" href="#" onclick="return doclink('link-56', 'safe_attrs', 'link-56');">safe_attrs</a></tt> <tt class="py-op">=</tt> <tt id="link-57" class="py-name"><a title="lxml.html.defs" class="py-name" href="#" onclick="return doclink('link-57', 'defs', 'link-6');">defs</a></tt><tt class="py-op">.</tt><tt id="link-58" class="py-name"><a title="lxml.html.clean.Cleaner.safe_attrs
lxml.html.defs.safe_attrs" class="py-name" href="#" onclick="return doclink('link-58', 'safe_attrs', 'link-56');">safe_attrs</a></tt> </tt>
-<a name="L197"></a><tt class="py-lineno">197</tt> <tt class="py-line"> <tt id="link-59" class="py-name" targets="Variable lxml.html.clean.Cleaner.add_nofollow=lxml.html.clean.Cleaner-class.html#add_nofollow"><a title="lxml.html.clean.Cleaner.add_nofollow" class="py-name" href="#" onclick="return doclink('link-59', 'add_nofollow', 'link-59');">add_nofollow</a></tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
-<a name="L198"></a><tt class="py-lineno">198</tt> <tt class="py-line"> <tt id="link-60" class="py-name" targets="Variable lxml.html.clean.Cleaner.host_whitelist=lxml.html.clean.Cleaner-class.html#host_whitelist"><a title="lxml.html.clean.Cleaner.host_whitelist" class="py-name" href="#" onclick="return doclink('link-60', 'host_whitelist', 'link-60');">host_whitelist</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L199"></a><tt class="py-lineno">199</tt> <tt class="py-line"> <tt id="link-61" class="py-name" targets="Variable lxml.html.clean.Cleaner.whitelist_tags=lxml.html.clean.Cleaner-class.html#whitelist_tags"><a title="lxml.html.clean.Cleaner.whitelist_tags" class="py-name" href="#" onclick="return doclink('link-61', 'whitelist_tags', 'link-61');">whitelist_tags</a></tt> <tt class="py-op">=</tt> <tt id="link-62" class="py-name" targets="Method lxml.etree._Element.set()=lxml.etree._Element-class.html#set,Method lxml.etree._XSLTProcessingInstruction.set()=lxml.etree._XSLTProcessingInstruction-class.html#set"><a title="lxml.etree._Element.set
+<a name="L200"></a><tt class="py-lineno">200</tt> <tt class="py-line"> <tt id="link-59" class="py-name" targets="Variable lxml.html.clean.Cleaner.add_nofollow=lxml.html.clean.Cleaner-class.html#add_nofollow"><a title="lxml.html.clean.Cleaner.add_nofollow" class="py-name" href="#" onclick="return doclink('link-59', 'add_nofollow', 'link-59');">add_nofollow</a></tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L201"></a><tt class="py-lineno">201</tt> <tt class="py-line"> <tt id="link-60" class="py-name" targets="Variable lxml.html.clean.Cleaner.host_whitelist=lxml.html.clean.Cleaner-class.html#host_whitelist"><a title="lxml.html.clean.Cleaner.host_whitelist" class="py-name" href="#" onclick="return doclink('link-60', 'host_whitelist', 'link-60');">host_whitelist</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L202"></a><tt class="py-lineno">202</tt> <tt class="py-line"> <tt id="link-61" class="py-name" targets="Variable lxml.html.clean.Cleaner.whitelist_tags=lxml.html.clean.Cleaner-class.html#whitelist_tags"><a title="lxml.html.clean.Cleaner.whitelist_tags" class="py-name" href="#" onclick="return doclink('link-61', 'whitelist_tags', 'link-61');">whitelist_tags</a></tt> <tt class="py-op">=</tt> <tt id="link-62" class="py-name" targets="Method lxml.etree._Element.set()=lxml.etree._Element-class.html#set,Method lxml.etree._XSLTProcessingInstruction.set()=lxml.etree._XSLTProcessingInstruction-class.html#set"><a title="lxml.etree._Element.set
lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-62', 'set', 'link-62');">set</a></tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'iframe'</tt><tt class="py-op">,</tt> <tt class="py-string">'embed'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L200"></a><tt class="py-lineno">200</tt> <tt class="py-line"> </tt>
-<a name="Cleaner.__init__"></a><div id="Cleaner.__init__-def"><a name="L201"></a><tt class="py-lineno">201</tt> <a class="py-toggle" href="#" id="Cleaner.__init__-toggle" onclick="return toggle('Cleaner.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean.Cleaner-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-param">kw</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Cleaner.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Cleaner.__init__-expanded"><a name="L202"></a><tt class="py-lineno">202</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt id="link-63" 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
+<a name="L203"></a><tt class="py-lineno">203</tt> <tt class="py-line"> </tt>
+<a name="Cleaner.__init__"></a><div id="Cleaner.__init__-def"><a name="L204"></a><tt class="py-lineno">204</tt> <a class="py-toggle" href="#" id="Cleaner.__init__-toggle" onclick="return toggle('Cleaner.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean.Cleaner-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-param">kw</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Cleaner.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Cleaner.__init__-expanded"><a name="L205"></a><tt class="py-lineno">205</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt id="link-63" 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-63', 'name', 'link-63');">name</a></tt><tt class="py-op">,</tt> <tt id="link-64" 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.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-64', 'value', 'link-64');">value</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">kw</tt><tt class="py-op">.</tt><tt id="link-65" class="py-name" targets="Method lxml.etree._Attrib.items()=lxml.etree._Attrib-class.html#items,Method lxml.etree._Element.items()=lxml.etree._Element-class.html#items,Method lxml.etree._IDDict.items()=lxml.etree._IDDict-class.html#items"><a title="lxml.etree._Attrib.items
lxml.etree._Element.items
lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-65', 'items', 'link-65');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L203"></a><tt class="py-lineno">203</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-66" 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-66', 'hasattr', 'link-66');">hasattr</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt id="link-67" class="py-name"><a title="lxml.etree.DTD.name
+<a name="L206"></a><tt class="py-lineno">206</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-66" 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-66', 'hasattr', 'link-66');">hasattr</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt id="link-67" 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-67', 'name', 'link-63');">name</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L204"></a><tt class="py-lineno">204</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">TypeError</tt><tt class="py-op">(</tt> </tt>
-<a name="L205"></a><tt class="py-lineno">205</tt> <tt class="py-line"> <tt class="py-string">"Unknown parameter: %s=%r"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-68" class="py-name"><a title="lxml.etree.DTD.name
+<a name="L207"></a><tt class="py-lineno">207</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">TypeError</tt><tt class="py-op">(</tt> </tt>
+<a name="L208"></a><tt class="py-lineno">208</tt> <tt class="py-line"> <tt class="py-string">"Unknown parameter: %s=%r"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-68" 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-68', 'name', 'link-63');">name</a></tt><tt class="py-op">,</tt> <tt id="link-69" class="py-name"><a title="lxml.html.CheckboxGroup.value
lxml.html.RadioGroup.value
lxml.html.SelectElement.value
lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-69', 'value', 'link-64');">value</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L206"></a><tt class="py-lineno">206</tt> <tt class="py-line"> <tt id="link-70" class="py-name" targets="Method lxml.objectify.ObjectPath.setattr()=lxml.objectify.ObjectPath-class.html#setattr"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-70', 'setattr', 'link-70');">setattr</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt id="link-71" class="py-name"><a title="lxml.etree.DTD.name
+<a name="L209"></a><tt class="py-lineno">209</tt> <tt class="py-line"> <tt id="link-70" class="py-name" targets="Method lxml.objectify.ObjectPath.setattr()=lxml.objectify.ObjectPath-class.html#setattr"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-70', 'setattr', 'link-70');">setattr</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt id="link-71" 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-71', 'name', 'link-63');">name</a></tt><tt class="py-op">,</tt> <tt id="link-72" class="py-name"><a title="lxml.html.CheckboxGroup.value
lxml.html.RadioGroup.value
lxml.html.SelectElement.value
lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-72', 'value', 'link-64');">value</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L207"></a><tt class="py-lineno">207</tt> <tt class="py-line"> </tt>
-<a name="L208"></a><tt class="py-lineno">208</tt> <tt class="py-line"> <tt class="py-comment"># Used to lookup the primary URL for a given tag that is up for</tt> </tt>
-<a name="L209"></a><tt class="py-lineno">209</tt> <tt class="py-line"> <tt class="py-comment"># removal:</tt> </tt>
-<a name="L210"></a><tt class="py-lineno">210</tt> <tt class="py-line"> <tt id="link-73" class="py-name" targets="Variable lxml.html.clean.Cleaner._tag_link_attrs=lxml.html.clean.Cleaner-class.html#_tag_link_attrs"><a title="lxml.html.clean.Cleaner._tag_link_attrs" class="py-name" href="#" onclick="return doclink('link-73', '_tag_link_attrs', 'link-73');">_tag_link_attrs</a></tt> <tt class="py-op">=</tt> <tt class="py-name">dict</tt><tt class="py-op">(</tt> </tt>
-<a name="L211"></a><tt class="py-lineno">211</tt> <tt class="py-line"> <tt class="py-name">script</tt><tt class="py-op">=</tt><tt class="py-string">'src'</tt><tt class="py-op">,</tt> </tt>
-<a name="L212"></a><tt class="py-lineno">212</tt> <tt class="py-line"> <tt class="py-name">link</tt><tt class="py-op">=</tt><tt class="py-string">'href'</tt><tt class="py-op">,</tt> </tt>
-<a name="L213"></a><tt class="py-lineno">213</tt> <tt class="py-line"> <tt class="py-comment"># From: http://java.sun.com/j2se/1.4.2/docs/guide/misc/applet.html</tt> </tt>
-<a name="L214"></a><tt class="py-lineno">214</tt> <tt class="py-line"> <tt class="py-comment"># From what I can tell, both attributes can contain a link:</tt> </tt>
-<a name="L215"></a><tt class="py-lineno">215</tt> <tt class="py-line"> <tt class="py-name">applet</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-string">'code'</tt><tt class="py-op">,</tt> <tt class="py-string">'object'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L216"></a><tt class="py-lineno">216</tt> <tt class="py-line"> <tt class="py-name">iframe</tt><tt class="py-op">=</tt><tt class="py-string">'src'</tt><tt class="py-op">,</tt> </tt>
-<a name="L217"></a><tt class="py-lineno">217</tt> <tt class="py-line"> <tt class="py-name">embed</tt><tt class="py-op">=</tt><tt class="py-string">'src'</tt><tt class="py-op">,</tt> </tt>
-<a name="L218"></a><tt class="py-lineno">218</tt> <tt class="py-line"> <tt class="py-name">layer</tt><tt class="py-op">=</tt><tt class="py-string">'src'</tt><tt class="py-op">,</tt> </tt>
-<a name="L219"></a><tt class="py-lineno">219</tt> <tt class="py-line"> <tt class="py-comment"># FIXME: there doesn't really seem like a general way to figure out what</tt> </tt>
-<a name="L220"></a><tt class="py-lineno">220</tt> <tt class="py-line"> <tt class="py-comment"># links an <object> tag uses; links often go in <param> tags with values</tt> </tt>
-<a name="L221"></a><tt class="py-lineno">221</tt> <tt class="py-line"> <tt class="py-comment"># that we don't really know. You'd have to have knowledge about specific</tt> </tt>
-<a name="L222"></a><tt class="py-lineno">222</tt> <tt class="py-line"> <tt class="py-comment"># kinds of plugins (probably keyed off classid), and match against those.</tt> </tt>
-<a name="L223"></a><tt class="py-lineno">223</tt> <tt class="py-line"> <tt class="py-comment">##object=?,</tt> </tt>
-<a name="L224"></a><tt class="py-lineno">224</tt> <tt class="py-line"> <tt class="py-comment"># FIXME: not looking at the action currently, because it is more complex</tt> </tt>
-<a name="L225"></a><tt class="py-lineno">225</tt> <tt class="py-line"> <tt class="py-comment"># than than -- if you keep the form, you should keep the form controls.</tt> </tt>
-<a name="L226"></a><tt class="py-lineno">226</tt> <tt class="py-line"> <tt class="py-comment">##form='action',</tt> </tt>
-<a name="L227"></a><tt class="py-lineno">227</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">=</tt><tt class="py-string">'href'</tt><tt class="py-op">,</tt> </tt>
-<a name="L228"></a><tt class="py-lineno">228</tt> <tt class="py-line"> <tt class="py-op">)</tt> </tt>
-<a name="L229"></a><tt class="py-lineno">229</tt> <tt class="py-line"> </tt>
-<a name="Cleaner.__call__"></a><div id="Cleaner.__call__-def"><a name="L230"></a><tt class="py-lineno">230</tt> <a class="py-toggle" href="#" id="Cleaner.__call__-toggle" onclick="return toggle('Cleaner.__call__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean.Cleaner-class.html#__call__">__call__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">doc</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Cleaner.__call__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Cleaner.__call__-expanded"><a name="L231"></a><tt class="py-lineno">231</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L232"></a><tt class="py-lineno">232</tt> <tt class="py-line"><tt class="py-docstring"> Cleans the document.</tt> </tt>
-<a name="L233"></a><tt class="py-lineno">233</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L234"></a><tt class="py-lineno">234</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-74" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-74', 'hasattr', 'link-66');">hasattr</a></tt><tt class="py-op">(</tt><tt class="py-name">doc</tt><tt class="py-op">,</tt> <tt class="py-string">'getroot'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L235"></a><tt class="py-lineno">235</tt> <tt class="py-line"> <tt class="py-comment"># ElementTree instance, instead of an element</tt> </tt>
-<a name="L236"></a><tt class="py-lineno">236</tt> <tt class="py-line"> <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-75" class="py-name" targets="Method lxml.etree._ElementTree.getroot()=lxml.etree._ElementTree-class.html#getroot"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-75', 'getroot', 'link-75');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L237"></a><tt class="py-lineno">237</tt> <tt class="py-line"> <tt class="py-comment"># convert XHTML to HTML</tt> </tt>
-<a name="L238"></a><tt class="py-lineno">238</tt> <tt class="py-line"> <tt class="py-name">xhtml_to_html</tt><tt class="py-op">(</tt><tt class="py-name">doc</tt><tt class="py-op">)</tt> </tt>
-<a name="L239"></a><tt class="py-lineno">239</tt> <tt class="py-line"> <tt class="py-comment"># Normalize a case that IE treats <image> like <img>, and that</tt> </tt>
-<a name="L240"></a><tt class="py-lineno">240</tt> <tt class="py-line"> <tt class="py-comment"># can confuse either this step or later steps.</tt> </tt>
-<a name="L241"></a><tt class="py-lineno">241</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">doc</tt><tt class="py-op">.</tt><tt id="link-76" class="py-name" targets="Method lxml.etree._Element.iter()=lxml.etree._Element-class.html#iter,Method lxml.etree._ElementTree.iter()=lxml.etree._ElementTree-class.html#iter"><a title="lxml.etree._Element.iter
+</div><a name="L210"></a><tt class="py-lineno">210</tt> <tt class="py-line"> </tt>
+<a name="L211"></a><tt class="py-lineno">211</tt> <tt class="py-line"> <tt class="py-comment"># Used to lookup the primary URL for a given tag that is up for</tt> </tt>
+<a name="L212"></a><tt class="py-lineno">212</tt> <tt class="py-line"> <tt class="py-comment"># removal:</tt> </tt>
+<a name="L213"></a><tt class="py-lineno">213</tt> <tt class="py-line"> <tt id="link-73" class="py-name" targets="Variable lxml.html.clean.Cleaner._tag_link_attrs=lxml.html.clean.Cleaner-class.html#_tag_link_attrs"><a title="lxml.html.clean.Cleaner._tag_link_attrs" class="py-name" href="#" onclick="return doclink('link-73', '_tag_link_attrs', 'link-73');">_tag_link_attrs</a></tt> <tt class="py-op">=</tt> <tt class="py-name">dict</tt><tt class="py-op">(</tt> </tt>
+<a name="L214"></a><tt class="py-lineno">214</tt> <tt class="py-line"> <tt class="py-name">script</tt><tt class="py-op">=</tt><tt class="py-string">'src'</tt><tt class="py-op">,</tt> </tt>
+<a name="L215"></a><tt class="py-lineno">215</tt> <tt class="py-line"> <tt class="py-name">link</tt><tt class="py-op">=</tt><tt class="py-string">'href'</tt><tt class="py-op">,</tt> </tt>
+<a name="L216"></a><tt class="py-lineno">216</tt> <tt class="py-line"> <tt class="py-comment"># From: http://java.sun.com/j2se/1.4.2/docs/guide/misc/applet.html</tt> </tt>
+<a name="L217"></a><tt class="py-lineno">217</tt> <tt class="py-line"> <tt class="py-comment"># From what I can tell, both attributes can contain a link:</tt> </tt>
+<a name="L218"></a><tt class="py-lineno">218</tt> <tt class="py-line"> <tt class="py-name">applet</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-string">'code'</tt><tt class="py-op">,</tt> <tt class="py-string">'object'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L219"></a><tt class="py-lineno">219</tt> <tt class="py-line"> <tt class="py-name">iframe</tt><tt class="py-op">=</tt><tt class="py-string">'src'</tt><tt class="py-op">,</tt> </tt>
+<a name="L220"></a><tt class="py-lineno">220</tt> <tt class="py-line"> <tt class="py-name">embed</tt><tt class="py-op">=</tt><tt class="py-string">'src'</tt><tt class="py-op">,</tt> </tt>
+<a name="L221"></a><tt class="py-lineno">221</tt> <tt class="py-line"> <tt class="py-name">layer</tt><tt class="py-op">=</tt><tt class="py-string">'src'</tt><tt class="py-op">,</tt> </tt>
+<a name="L222"></a><tt class="py-lineno">222</tt> <tt class="py-line"> <tt class="py-comment"># FIXME: there doesn't really seem like a general way to figure out what</tt> </tt>
+<a name="L223"></a><tt class="py-lineno">223</tt> <tt class="py-line"> <tt class="py-comment"># links an <object> tag uses; links often go in <param> tags with values</tt> </tt>
+<a name="L224"></a><tt class="py-lineno">224</tt> <tt class="py-line"> <tt class="py-comment"># that we don't really know. You'd have to have knowledge about specific</tt> </tt>
+<a name="L225"></a><tt class="py-lineno">225</tt> <tt class="py-line"> <tt class="py-comment"># kinds of plugins (probably keyed off classid), and match against those.</tt> </tt>
+<a name="L226"></a><tt class="py-lineno">226</tt> <tt class="py-line"> <tt class="py-comment">##object=?,</tt> </tt>
+<a name="L227"></a><tt class="py-lineno">227</tt> <tt class="py-line"> <tt class="py-comment"># FIXME: not looking at the action currently, because it is more complex</tt> </tt>
+<a name="L228"></a><tt class="py-lineno">228</tt> <tt class="py-line"> <tt class="py-comment"># than than -- if you keep the form, you should keep the form controls.</tt> </tt>
+<a name="L229"></a><tt class="py-lineno">229</tt> <tt class="py-line"> <tt class="py-comment">##form='action',</tt> </tt>
+<a name="L230"></a><tt class="py-lineno">230</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">=</tt><tt class="py-string">'href'</tt><tt class="py-op">,</tt> </tt>
+<a name="L231"></a><tt class="py-lineno">231</tt> <tt class="py-line"> <tt class="py-op">)</tt> </tt>
+<a name="L232"></a><tt class="py-lineno">232</tt> <tt class="py-line"> </tt>
+<a name="Cleaner.__call__"></a><div id="Cleaner.__call__-def"><a name="L233"></a><tt class="py-lineno">233</tt> <a class="py-toggle" href="#" id="Cleaner.__call__-toggle" onclick="return toggle('Cleaner.__call__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean.Cleaner-class.html#__call__">__call__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">doc</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Cleaner.__call__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Cleaner.__call__-expanded"><a name="L234"></a><tt class="py-lineno">234</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L235"></a><tt class="py-lineno">235</tt> <tt class="py-line"><tt class="py-docstring"> Cleans the document.</tt> </tt>
+<a name="L236"></a><tt class="py-lineno">236</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L237"></a><tt class="py-lineno">237</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-74" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-74', 'hasattr', 'link-66');">hasattr</a></tt><tt class="py-op">(</tt><tt class="py-name">doc</tt><tt class="py-op">,</tt> <tt class="py-string">'getroot'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L238"></a><tt class="py-lineno">238</tt> <tt class="py-line"> <tt class="py-comment"># ElementTree instance, instead of an element</tt> </tt>
+<a name="L239"></a><tt class="py-lineno">239</tt> <tt class="py-line"> <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-75" class="py-name" targets="Method lxml.etree._ElementTree.getroot()=lxml.etree._ElementTree-class.html#getroot"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-75', 'getroot', 'link-75');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L240"></a><tt class="py-lineno">240</tt> <tt class="py-line"> <tt class="py-comment"># convert XHTML to HTML</tt> </tt>
+<a name="L241"></a><tt class="py-lineno">241</tt> <tt class="py-line"> <tt class="py-name">xhtml_to_html</tt><tt class="py-op">(</tt><tt class="py-name">doc</tt><tt class="py-op">)</tt> </tt>
+<a name="L242"></a><tt class="py-lineno">242</tt> <tt class="py-line"> <tt class="py-comment"># Normalize a case that IE treats <image> like <img>, and that</tt> </tt>
+<a name="L243"></a><tt class="py-lineno">243</tt> <tt class="py-line"> <tt class="py-comment"># can confuse either this step or later steps.</tt> </tt>
+<a name="L244"></a><tt class="py-lineno">244</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">doc</tt><tt class="py-op">.</tt><tt id="link-76" class="py-name" targets="Method lxml.etree._Element.iter()=lxml.etree._Element-class.html#iter,Method lxml.etree._ElementTree.iter()=lxml.etree._ElementTree-class.html#iter"><a title="lxml.etree._Element.iter
lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-76', 'iter', 'link-76');">iter</a></tt><tt class="py-op">(</tt><tt class="py-string">'image'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L242"></a><tt class="py-lineno">242</tt> <tt class="py-line"> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-77" class="py-name" targets="Variable lxml.etree._Comment.tag=lxml.etree._Comment-class.html#tag,Variable lxml.etree._Element.tag=lxml.etree._Element-class.html#tag,Variable lxml.etree._Entity.tag=lxml.etree._Entity-class.html#tag,Variable lxml.etree._ProcessingInstruction.tag=lxml.etree._ProcessingInstruction-class.html#tag,Function lxml.tests.test_xpathevaluator.tag()=lxml.tests.test_xpathevaluator-module.html#tag,Variable xml.etree.ElementTree.Element.tag=xml.etree.ElementTree.Element-class.html#tag"><a title="lxml.etree._Comment.tag
+<a name="L245"></a><tt class="py-lineno">245</tt> <tt class="py-line"> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-77" class="py-name" targets="Variable lxml.etree._Comment.tag=lxml.etree._Comment-class.html#tag,Variable lxml.etree._Element.tag=lxml.etree._Element-class.html#tag,Variable lxml.etree._Entity.tag=lxml.etree._Entity-class.html#tag,Variable lxml.etree._ProcessingInstruction.tag=lxml.etree._ProcessingInstruction-class.html#tag,Function lxml.tests.test_xpathevaluator.tag()=lxml.tests.test_xpathevaluator-module.html#tag,Variable xml.etree.ElementTree.Element.tag=xml.etree.ElementTree.Element-class.html#tag"><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-77', 'tag', 'link-77');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'img'</tt> </tt>
-<a name="L243"></a><tt class="py-lineno">243</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-78" class="py-name"><a title="lxml.html.clean.Cleaner.comments" class="py-name" href="#" onclick="return doclink('link-78', 'comments', 'link-41');">comments</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L244"></a><tt class="py-lineno">244</tt> <tt class="py-line"> <tt class="py-comment"># Of course, if we were going to kill comments anyway, we don't</tt> </tt>
-<a name="L245"></a><tt class="py-lineno">245</tt> <tt class="py-line"> <tt class="py-comment"># need to worry about this</tt> </tt>
-<a name="L246"></a><tt class="py-lineno">246</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-79" class="py-name" targets="Method lxml.html.clean.Cleaner.kill_conditional_comments()=lxml.html.clean.Cleaner-class.html#kill_conditional_comments"><a title="lxml.html.clean.Cleaner.kill_conditional_comments" class="py-name" href="#" onclick="return doclink('link-79', 'kill_conditional_comments', 'link-79');">kill_conditional_comments</a></tt><tt class="py-op">(</tt><tt class="py-name">doc</tt><tt class="py-op">)</tt> </tt>
-<a name="L247"></a><tt class="py-lineno">247</tt> <tt class="py-line"> </tt>
-<a name="L248"></a><tt class="py-lineno">248</tt> <tt class="py-line"> <tt id="link-80" class="py-name"><a title="lxml.html.clean.Cleaner.kill_tags" class="py-name" href="#" onclick="return doclink('link-80', 'kill_tags', 'link-53');">kill_tags</a></tt> <tt class="py-op">=</tt> <tt id="link-81" class="py-name"><a title="lxml.etree._Element.set
+<a name="L246"></a><tt class="py-lineno">246</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-78" class="py-name"><a title="lxml.html.clean.Cleaner.comments" class="py-name" href="#" onclick="return doclink('link-78', 'comments', 'link-41');">comments</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L247"></a><tt class="py-lineno">247</tt> <tt class="py-line"> <tt class="py-comment"># Of course, if we were going to kill comments anyway, we don't</tt> </tt>
+<a name="L248"></a><tt class="py-lineno">248</tt> <tt class="py-line"> <tt class="py-comment"># need to worry about this</tt> </tt>
+<a name="L249"></a><tt class="py-lineno">249</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-79" class="py-name" targets="Method lxml.html.clean.Cleaner.kill_conditional_comments()=lxml.html.clean.Cleaner-class.html#kill_conditional_comments"><a title="lxml.html.clean.Cleaner.kill_conditional_comments" class="py-name" href="#" onclick="return doclink('link-79', 'kill_conditional_comments', 'link-79');">kill_conditional_comments</a></tt><tt class="py-op">(</tt><tt class="py-name">doc</tt><tt class="py-op">)</tt> </tt>
+<a name="L250"></a><tt class="py-lineno">250</tt> <tt class="py-line"> </tt>
+<a name="L251"></a><tt class="py-lineno">251</tt> <tt class="py-line"> <tt id="link-80" class="py-name"><a title="lxml.html.clean.Cleaner.kill_tags" class="py-name" href="#" onclick="return doclink('link-80', 'kill_tags', 'link-53');">kill_tags</a></tt> <tt class="py-op">=</tt> <tt id="link-81" class="py-name"><a title="lxml.etree._Element.set
lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-81', 'set', 'link-62');">set</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-82" class="py-name"><a title="lxml.html.clean.Cleaner.kill_tags" class="py-name" href="#" onclick="return doclink('link-82', 'kill_tags', 'link-53');">kill_tags</a></tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L249"></a><tt class="py-lineno">249</tt> <tt class="py-line"> <tt id="link-83" class="py-name"><a title="lxml.html.clean.Cleaner.remove_tags" class="py-name" href="#" onclick="return doclink('link-83', 'remove_tags', 'link-51');">remove_tags</a></tt> <tt class="py-op">=</tt> <tt id="link-84" class="py-name"><a title="lxml.etree._Element.set
+<a name="L252"></a><tt class="py-lineno">252</tt> <tt class="py-line"> <tt id="link-83" class="py-name"><a title="lxml.html.clean.Cleaner.remove_tags" class="py-name" href="#" onclick="return doclink('link-83', 'remove_tags', 'link-51');">remove_tags</a></tt> <tt class="py-op">=</tt> <tt id="link-84" class="py-name"><a title="lxml.etree._Element.set
lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-84', 'set', 'link-62');">set</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-85" class="py-name"><a title="lxml.html.clean.Cleaner.remove_tags" class="py-name" href="#" onclick="return doclink('link-85', 'remove_tags', 'link-51');">remove_tags</a></tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L250"></a><tt class="py-lineno">250</tt> <tt class="py-line"> <tt id="link-86" class="py-name"><a title="lxml.html.clean.Cleaner.allow_tags" class="py-name" href="#" onclick="return doclink('link-86', 'allow_tags', 'link-52');">allow_tags</a></tt> <tt class="py-op">=</tt> <tt id="link-87" class="py-name"><a title="lxml.etree._Element.set
+<a name="L253"></a><tt class="py-lineno">253</tt> <tt class="py-line"> <tt id="link-86" class="py-name"><a title="lxml.html.clean.Cleaner.allow_tags" class="py-name" href="#" onclick="return doclink('link-86', 'allow_tags', 'link-52');">allow_tags</a></tt> <tt class="py-op">=</tt> <tt id="link-87" class="py-name"><a title="lxml.etree._Element.set
lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-87', 'set', 'link-62');">set</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-88" class="py-name"><a title="lxml.html.clean.Cleaner.allow_tags" class="py-name" href="#" onclick="return doclink('link-88', 'allow_tags', 'link-52');">allow_tags</a></tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L251"></a><tt class="py-lineno">251</tt> <tt class="py-line"> </tt>
-<a name="L252"></a><tt class="py-lineno">252</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-89" class="py-name"><a title="lxml.html.clean.Cleaner.scripts" class="py-name" href="#" onclick="return doclink('link-89', 'scripts', 'link-39');">scripts</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L253"></a><tt class="py-lineno">253</tt> <tt class="py-line"> <tt id="link-90" class="py-name"><a title="lxml.html.clean.Cleaner.kill_tags" class="py-name" href="#" onclick="return doclink('link-90', 'kill_tags', 'link-53');">kill_tags</a></tt><tt class="py-op">.</tt><tt id="link-91" class="py-name" targets="Method lxml.html.CheckboxValues.add()=lxml.html.CheckboxValues-class.html#add,Method lxml.html.MultipleSelectOptions.add()=lxml.html.MultipleSelectOptions-class.html#add"><a title="lxml.html.CheckboxValues.add
+<a name="L254"></a><tt class="py-lineno">254</tt> <tt class="py-line"> </tt>
+<a name="L255"></a><tt class="py-lineno">255</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-89" class="py-name"><a title="lxml.html.clean.Cleaner.scripts" class="py-name" href="#" onclick="return doclink('link-89', 'scripts', 'link-39');">scripts</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L256"></a><tt class="py-lineno">256</tt> <tt class="py-line"> <tt id="link-90" class="py-name"><a title="lxml.html.clean.Cleaner.kill_tags" class="py-name" href="#" onclick="return doclink('link-90', 'kill_tags', 'link-53');">kill_tags</a></tt><tt class="py-op">.</tt><tt id="link-91" class="py-name" targets="Method lxml.html.CheckboxValues.add()=lxml.html.CheckboxValues-class.html#add,Method lxml.html.MultipleSelectOptions.add()=lxml.html.MultipleSelectOptions-class.html#add"><a title="lxml.html.CheckboxValues.add
lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-91', 'add', 'link-91');">add</a></tt><tt class="py-op">(</tt><tt class="py-string">'script'</tt><tt class="py-op">)</tt> </tt>
-<a name="L254"></a><tt class="py-lineno">254</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-92" class="py-name"><a title="lxml.html.clean.Cleaner.safe_attrs_only" class="py-name" href="#" onclick="return doclink('link-92', 'safe_attrs_only', 'link-55');">safe_attrs_only</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L255"></a><tt class="py-lineno">255</tt> <tt class="py-line"> <tt id="link-93" class="py-name"><a title="lxml.html.clean.Cleaner.safe_attrs
+<a name="L257"></a><tt class="py-lineno">257</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-92" class="py-name"><a title="lxml.html.clean.Cleaner.safe_attrs_only" class="py-name" href="#" onclick="return doclink('link-92', 'safe_attrs_only', 'link-55');">safe_attrs_only</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L258"></a><tt class="py-lineno">258</tt> <tt class="py-line"> <tt id="link-93" class="py-name"><a title="lxml.html.clean.Cleaner.safe_attrs
lxml.html.defs.safe_attrs" class="py-name" href="#" onclick="return doclink('link-93', 'safe_attrs', 'link-56');">safe_attrs</a></tt> <tt class="py-op">=</tt> <tt id="link-94" class="py-name"><a title="lxml.etree._Element.set
lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-94', 'set', 'link-62');">set</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-95" class="py-name"><a title="lxml.html.clean.Cleaner.safe_attrs
lxml.html.defs.safe_attrs" class="py-name" href="#" onclick="return doclink('link-95', 'safe_attrs', 'link-56');">safe_attrs</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L256"></a><tt class="py-lineno">256</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">doc</tt><tt class="py-op">.</tt><tt id="link-96" class="py-name"><a title="lxml.etree._Element.iter
+<a name="L259"></a><tt class="py-lineno">259</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">doc</tt><tt class="py-op">.</tt><tt id="link-96" class="py-name"><a title="lxml.etree._Element.iter
lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-96', 'iter', 'link-76');">iter</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L257"></a><tt class="py-lineno">257</tt> <tt class="py-line"> <tt id="link-97" class="py-name" targets="Variable lxml.etree._Element.attrib=lxml.etree._Element-class.html#attrib,Variable lxml.etree._ProcessingInstruction.attrib=lxml.etree._ProcessingInstruction-class.html#attrib,Variable xml.etree.ElementTree.Element.attrib=xml.etree.ElementTree.Element-class.html#attrib"><a title="lxml.etree._Element.attrib
+<a name="L260"></a><tt class="py-lineno">260</tt> <tt class="py-line"> <tt id="link-97" class="py-name" targets="Variable lxml.etree._Element.attrib=lxml.etree._Element-class.html#attrib,Variable lxml.etree._ProcessingInstruction.attrib=lxml.etree._ProcessingInstruction-class.html#attrib,Variable xml.etree.ElementTree.Element.attrib=xml.etree.ElementTree.Element-class.html#attrib"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-97', 'attrib', 'link-97');">attrib</a></tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-98" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-98', 'attrib', 'link-97');">attrib</a></tt> </tt>
-<a name="L258"></a><tt class="py-lineno">258</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">aname</tt> <tt class="py-keyword">in</tt> <tt id="link-99" class="py-name"><a title="lxml.etree._Element.attrib
+<a name="L261"></a><tt class="py-lineno">261</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">aname</tt> <tt class="py-keyword">in</tt> <tt id="link-99" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-99', 'attrib', 'link-97');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-100" class="py-name" targets="Method lxml.etree._Attrib.keys()=lxml.etree._Attrib-class.html#keys,Method lxml.etree._Element.keys()=lxml.etree._Element-class.html#keys,Method lxml.etree._IDDict.keys()=lxml.etree._IDDict-class.html#keys,Method lxml.html.FieldsDict.keys()=lxml.html.FieldsDict-class.html#keys,Method lxml.html.InputGetter.keys()=lxml.html.InputGetter-class.html#keys"><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-100', 'keys', 'link-100');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L259"></a><tt class="py-lineno">259</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">aname</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt id="link-101" class="py-name"><a title="lxml.html.clean.Cleaner.safe_attrs
+<a name="L262"></a><tt class="py-lineno">262</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">aname</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt id="link-101" class="py-name"><a title="lxml.html.clean.Cleaner.safe_attrs
lxml.html.defs.safe_attrs" class="py-name" href="#" onclick="return doclink('link-101', 'safe_attrs', 'link-56');">safe_attrs</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L260"></a><tt class="py-lineno">260</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt id="link-102" class="py-name"><a title="lxml.etree._Element.attrib
+<a name="L263"></a><tt class="py-lineno">263</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt id="link-102" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-102', 'attrib', 'link-97');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-name">aname</tt><tt class="py-op">]</tt> </tt>
-<a name="L261"></a><tt class="py-lineno">261</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-103" class="py-name"><a title="lxml.html.clean.Cleaner.javascript" class="py-name" href="#" onclick="return doclink('link-103', 'javascript', 'link-40');">javascript</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L262"></a><tt class="py-lineno">262</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-104" class="py-name"><a title="lxml.html.clean.Cleaner.safe_attrs_only" class="py-name" href="#" onclick="return doclink('link-104', 'safe_attrs_only', 'link-55');">safe_attrs_only</a></tt> <tt class="py-keyword">and</tt> </tt>
-<a name="L263"></a><tt class="py-lineno">263</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-105" class="py-name"><a title="lxml.html.clean.Cleaner.safe_attrs
+<a name="L264"></a><tt class="py-lineno">264</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-103" class="py-name"><a title="lxml.html.clean.Cleaner.javascript" class="py-name" href="#" onclick="return doclink('link-103', 'javascript', 'link-40');">javascript</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L265"></a><tt class="py-lineno">265</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-104" class="py-name"><a title="lxml.html.clean.Cleaner.safe_attrs_only" class="py-name" href="#" onclick="return doclink('link-104', 'safe_attrs_only', 'link-55');">safe_attrs_only</a></tt> <tt class="py-keyword">and</tt> </tt>
+<a name="L266"></a><tt class="py-lineno">266</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-105" class="py-name"><a title="lxml.html.clean.Cleaner.safe_attrs
lxml.html.defs.safe_attrs" class="py-name" href="#" onclick="return doclink('link-105', 'safe_attrs', 'link-56');">safe_attrs</a></tt> <tt class="py-op">==</tt> <tt id="link-106" class="py-name"><a title="lxml.html.defs" class="py-name" href="#" onclick="return doclink('link-106', 'defs', 'link-6');">defs</a></tt><tt class="py-op">.</tt><tt id="link-107" class="py-name"><a title="lxml.html.clean.Cleaner.safe_attrs
lxml.html.defs.safe_attrs" class="py-name" href="#" onclick="return doclink('link-107', 'safe_attrs', 'link-56');">safe_attrs</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L264"></a><tt class="py-lineno">264</tt> <tt class="py-line"> <tt class="py-comment"># safe_attrs handles events attributes itself</tt> </tt>
-<a name="L265"></a><tt class="py-lineno">265</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">doc</tt><tt class="py-op">.</tt><tt id="link-108" class="py-name"><a title="lxml.etree._Element.iter
+<a name="L267"></a><tt class="py-lineno">267</tt> <tt class="py-line"> <tt class="py-comment"># safe_attrs handles events attributes itself</tt> </tt>
+<a name="L268"></a><tt class="py-lineno">268</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">doc</tt><tt class="py-op">.</tt><tt id="link-108" class="py-name"><a title="lxml.etree._Element.iter
lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-108', 'iter', 'link-76');">iter</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L266"></a><tt class="py-lineno">266</tt> <tt class="py-line"> <tt id="link-109" class="py-name"><a title="lxml.etree._Element.attrib
+<a name="L269"></a><tt class="py-lineno">269</tt> <tt class="py-line"> <tt id="link-109" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-109', 'attrib', 'link-97');">attrib</a></tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-110" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-110', 'attrib', 'link-97');">attrib</a></tt> </tt>
-<a name="L267"></a><tt class="py-lineno">267</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">aname</tt> <tt class="py-keyword">in</tt> <tt id="link-111" class="py-name"><a title="lxml.etree._Element.attrib
+<a name="L270"></a><tt class="py-lineno">270</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">aname</tt> <tt class="py-keyword">in</tt> <tt id="link-111" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-111', 'attrib', 'link-97');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-112" 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-112', 'keys', 'link-100');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L268"></a><tt class="py-lineno">268</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">aname</tt><tt class="py-op">.</tt><tt class="py-name">startswith</tt><tt class="py-op">(</tt><tt class="py-string">'on'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L269"></a><tt class="py-lineno">269</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt id="link-113" class="py-name"><a title="lxml.etree._Element.attrib
+<a name="L271"></a><tt class="py-lineno">271</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">aname</tt><tt class="py-op">.</tt><tt class="py-name">startswith</tt><tt class="py-op">(</tt><tt class="py-string">'on'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L272"></a><tt class="py-lineno">272</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt id="link-113" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-113', 'attrib', 'link-97');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-name">aname</tt><tt class="py-op">]</tt> </tt>
-<a name="L270"></a><tt class="py-lineno">270</tt> <tt class="py-line"> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-114" class="py-name" targets="Method lxml.html.HtmlMixin.rewrite_links()=lxml.html.HtmlMixin-class.html#rewrite_links,Variable lxml.html.rewrite_links=lxml.html-module.html#rewrite_links"><a title="lxml.html.HtmlMixin.rewrite_links
+<a name="L273"></a><tt class="py-lineno">273</tt> <tt class="py-line"> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-114" class="py-name" targets="Method lxml.html.HtmlMixin.rewrite_links()=lxml.html.HtmlMixin-class.html#rewrite_links,Variable lxml.html.rewrite_links=lxml.html-module.html#rewrite_links"><a title="lxml.html.HtmlMixin.rewrite_links
lxml.html.rewrite_links" class="py-name" href="#" onclick="return doclink('link-114', 'rewrite_links', 'link-114');">rewrite_links</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-115" class="py-name" targets="Method lxml.html.clean.Cleaner._remove_javascript_link()=lxml.html.clean.Cleaner-class.html#_remove_javascript_link"><a title="lxml.html.clean.Cleaner._remove_javascript_link" class="py-name" href="#" onclick="return doclink('link-115', '_remove_javascript_link', 'link-115');">_remove_javascript_link</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L271"></a><tt class="py-lineno">271</tt> <tt class="py-line"> <tt id="link-116" class="py-name" targets="Method lxml.html.HtmlMixin.resolve_base_href()=lxml.html.HtmlMixin-class.html#resolve_base_href,Variable lxml.html.resolve_base_href=lxml.html-module.html#resolve_base_href"><a title="lxml.html.HtmlMixin.resolve_base_href
+<a name="L274"></a><tt class="py-lineno">274</tt> <tt class="py-line"> <tt id="link-116" class="py-name" targets="Method lxml.html.HtmlMixin.resolve_base_href()=lxml.html.HtmlMixin-class.html#resolve_base_href,Variable lxml.html.resolve_base_href=lxml.html-module.html#resolve_base_href"><a title="lxml.html.HtmlMixin.resolve_base_href
lxml.html.resolve_base_href" class="py-name" href="#" onclick="return doclink('link-116', 'resolve_base_href', 'link-116');">resolve_base_href</a></tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L272"></a><tt class="py-lineno">272</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-117" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-117', 'style', 'link-42');">style</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L273"></a><tt class="py-lineno">273</tt> <tt class="py-line"> <tt class="py-comment"># If we're deleting style then we don't have to remove JS links</tt> </tt>
-<a name="L274"></a><tt class="py-lineno">274</tt> <tt class="py-line"> <tt class="py-comment"># from styles, otherwise...</tt> </tt>
-<a name="L275"></a><tt class="py-lineno">275</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-118" class="py-name"><a title="lxml.html.clean._find_styled_elements" class="py-name" href="#" onclick="return doclink('link-118', '_find_styled_elements', 'link-32');">_find_styled_elements</a></tt><tt class="py-op">(</tt><tt class="py-name">doc</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L276"></a><tt class="py-lineno">276</tt> <tt class="py-line"> <tt class="py-name">old</tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-119" class="py-name" targets="Method lxml.etree._Attrib.get()=lxml.etree._Attrib-class.html#get,Method lxml.etree._Element.get()=lxml.etree._Element-class.html#get,Method lxml.etree._IDDict.get()=lxml.etree._IDDict-class.html#get,Method lxml.etree._ProcessingInstruction.get()=lxml.etree._ProcessingInstruction-class.html#get"><a title="lxml.etree._Attrib.get
+<a name="L275"></a><tt class="py-lineno">275</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-117" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-117', 'style', 'link-42');">style</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L276"></a><tt class="py-lineno">276</tt> <tt class="py-line"> <tt class="py-comment"># If we're deleting style then we don't have to remove JS links</tt> </tt>
+<a name="L277"></a><tt class="py-lineno">277</tt> <tt class="py-line"> <tt class="py-comment"># from styles, otherwise...</tt> </tt>
+<a name="L278"></a><tt class="py-lineno">278</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-118" class="py-name"><a title="lxml.html.clean._find_styled_elements" class="py-name" href="#" onclick="return doclink('link-118', '_find_styled_elements', 'link-32');">_find_styled_elements</a></tt><tt class="py-op">(</tt><tt class="py-name">doc</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L279"></a><tt class="py-lineno">279</tt> <tt class="py-line"> <tt class="py-name">old</tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-119" class="py-name" targets="Method lxml.etree._Attrib.get()=lxml.etree._Attrib-class.html#get,Method lxml.etree._Element.get()=lxml.etree._Element-class.html#get,Method lxml.etree._IDDict.get()=lxml.etree._IDDict-class.html#get,Method lxml.etree._ProcessingInstruction.get()=lxml.etree._ProcessingInstruction-class.html#get"><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-119', 'get', 'link-119');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'style'</tt><tt class="py-op">)</tt> </tt>
-<a name="L277"></a><tt class="py-lineno">277</tt> <tt class="py-line"> <tt class="py-name">new</tt> <tt class="py-op">=</tt> <tt id="link-120" class="py-name"><a title="lxml.html.clean._css_javascript_re" class="py-name" href="#" onclick="return doclink('link-120', '_css_javascript_re', 'link-21');">_css_javascript_re</a></tt><tt class="py-op">.</tt><tt class="py-name">sub</tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-name">old</tt><tt class="py-op">)</tt> </tt>
-<a name="L278"></a><tt class="py-lineno">278</tt> <tt class="py-line"> <tt class="py-name">new</tt> <tt class="py-op">=</tt> <tt id="link-121" class="py-name"><a title="lxml.html._css_import_re
-lxml.html.clean._css_import_re" class="py-name" href="#" onclick="return doclink('link-121', '_css_import_re', 'link-24');">_css_import_re</a></tt><tt class="py-op">.</tt><tt class="py-name">sub</tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-name">old</tt><tt class="py-op">)</tt> </tt>
-<a name="L279"></a><tt class="py-lineno">279</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-122" class="py-name" targets="Method lxml.html.clean.Cleaner._has_sneaky_javascript()=lxml.html.clean.Cleaner-class.html#_has_sneaky_javascript"><a title="lxml.html.clean.Cleaner._has_sneaky_javascript" class="py-name" href="#" onclick="return doclink('link-122', '_has_sneaky_javascript', 'link-122');">_has_sneaky_javascript</a></tt><tt class="py-op">(</tt><tt class="py-name">new</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L280"></a><tt class="py-lineno">280</tt> <tt class="py-line"> <tt class="py-comment"># Something tricky is going on...</tt> </tt>
-<a name="L281"></a><tt class="py-lineno">281</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-123" class="py-name"><a title="lxml.etree._Element.attrib
+<a name="L280"></a><tt class="py-lineno">280</tt> <tt class="py-line"> <tt class="py-name">new</tt> <tt class="py-op">=</tt> <tt id="link-120" class="py-name"><a title="lxml.html.clean._css_javascript_re" class="py-name" href="#" onclick="return doclink('link-120', '_css_javascript_re', 'link-21');">_css_javascript_re</a></tt><tt class="py-op">.</tt><tt class="py-name">sub</tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-name">old</tt><tt class="py-op">)</tt> </tt>
+<a name="L281"></a><tt class="py-lineno">281</tt> <tt class="py-line"> <tt class="py-name">new</tt> <tt class="py-op">=</tt> <tt id="link-121" class="py-name"><a title="lxml.html._css_import_re
+lxml.html.clean._css_import_re" class="py-name" href="#" onclick="return doclink('link-121', '_css_import_re', 'link-24');">_css_import_re</a></tt><tt class="py-op">.</tt><tt class="py-name">sub</tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-name">new</tt><tt class="py-op">)</tt> </tt>
+<a name="L282"></a><tt class="py-lineno">282</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-122" class="py-name" targets="Method lxml.html.clean.Cleaner._has_sneaky_javascript()=lxml.html.clean.Cleaner-class.html#_has_sneaky_javascript"><a title="lxml.html.clean.Cleaner._has_sneaky_javascript" class="py-name" href="#" onclick="return doclink('link-122', '_has_sneaky_javascript', 'link-122');">_has_sneaky_javascript</a></tt><tt class="py-op">(</tt><tt class="py-name">new</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L283"></a><tt class="py-lineno">283</tt> <tt class="py-line"> <tt class="py-comment"># Something tricky is going on...</tt> </tt>
+<a name="L284"></a><tt class="py-lineno">284</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-123" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-123', 'attrib', 'link-97');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'style'</tt><tt class="py-op">]</tt> </tt>
-<a name="L282"></a><tt class="py-lineno">282</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">new</tt> <tt class="py-op">!=</tt> <tt class="py-name">old</tt><tt class="py-op">:</tt> </tt>
-<a name="L283"></a><tt class="py-lineno">283</tt> <tt class="py-line"> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-124" class="py-name"><a title="lxml.etree._Element.set
+<a name="L285"></a><tt class="py-lineno">285</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">new</tt> <tt class="py-op">!=</tt> <tt class="py-name">old</tt><tt class="py-op">:</tt> </tt>
+<a name="L286"></a><tt class="py-lineno">286</tt> <tt class="py-line"> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-124" class="py-name"><a title="lxml.etree._Element.set
lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-124', 'set', 'link-62');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'style'</tt><tt class="py-op">,</tt> <tt class="py-name">new</tt><tt class="py-op">)</tt> </tt>
-<a name="L284"></a><tt class="py-lineno">284</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">list</tt><tt class="py-op">(</tt><tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-125" class="py-name"><a title="lxml.etree._Element.iter
+<a name="L287"></a><tt class="py-lineno">287</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">list</tt><tt class="py-op">(</tt><tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-125" class="py-name"><a title="lxml.etree._Element.iter
lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-125', 'iter', 'link-76');">iter</a></tt><tt class="py-op">(</tt><tt class="py-string">'style'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L285"></a><tt class="py-lineno">285</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-126" class="py-name"><a title="lxml.etree._Attrib.get
+<a name="L288"></a><tt class="py-lineno">288</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-126" 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-126', 'get', 'link-119');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'type'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">lower</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-127" class="py-name" targets="Function lxml.doctestcompare.strip()=lxml.doctestcompare-module.html#strip"><a title="lxml.doctestcompare.strip" class="py-name" href="#" onclick="return doclink('link-127', 'strip', 'link-127');">strip</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-string">'text/javascript'</tt><tt class="py-op">:</tt> </tt>
-<a name="L286"></a><tt class="py-lineno">286</tt> <tt class="py-line"> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-128" class="py-name" targets="Method lxml.html.HtmlMixin.drop_tree()=lxml.html.HtmlMixin-class.html#drop_tree"><a title="lxml.html.HtmlMixin.drop_tree" class="py-name" href="#" onclick="return doclink('link-128', 'drop_tree', 'link-128');">drop_tree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L287"></a><tt class="py-lineno">287</tt> <tt class="py-line"> <tt class="py-keyword">continue</tt> </tt>
-<a name="L288"></a><tt class="py-lineno">288</tt> <tt class="py-line"> <tt class="py-name">old</tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-129" class="py-name" targets="Variable lxml.etree.QName.text=lxml.etree.QName-class.html#text,Variable lxml.etree._Element.text=lxml.etree._Element-class.html#text,Variable lxml.etree._Entity.text=lxml.etree._Entity-class.html#text,Variable lxml.objectify.ObjectifiedElement.text=lxml.objectify.ObjectifiedElement-class.html#text,Variable xml.etree.ElementTree.Element.text=xml.etree.ElementTree.Element-class.html#text"><a title="lxml.etree.QName.text
+<a name="L289"></a><tt class="py-lineno">289</tt> <tt class="py-line"> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-128" class="py-name" targets="Method lxml.html.HtmlMixin.drop_tree()=lxml.html.HtmlMixin-class.html#drop_tree"><a title="lxml.html.HtmlMixin.drop_tree" class="py-name" href="#" onclick="return doclink('link-128', 'drop_tree', 'link-128');">drop_tree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L290"></a><tt class="py-lineno">290</tt> <tt class="py-line"> <tt class="py-keyword">continue</tt> </tt>
+<a name="L291"></a><tt class="py-lineno">291</tt> <tt class="py-line"> <tt class="py-name">old</tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-129" class="py-name" targets="Variable lxml.etree.QName.text=lxml.etree.QName-class.html#text,Variable lxml.etree._Element.text=lxml.etree._Element-class.html#text,Variable lxml.etree._Entity.text=lxml.etree._Entity-class.html#text,Variable lxml.objectify.ObjectifiedElement.text=lxml.objectify.ObjectifiedElement-class.html#text,Variable xml.etree.ElementTree.Element.text=xml.etree.ElementTree.Element-class.html#text"><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-129', 'text', 'link-129');">text</a></tt> <tt class="py-keyword">or</tt> <tt class="py-string">''</tt> </tt>
-<a name="L289"></a><tt class="py-lineno">289</tt> <tt class="py-line"> <tt class="py-name">new</tt> <tt class="py-op">=</tt> <tt id="link-130" class="py-name"><a title="lxml.html.clean._css_javascript_re" class="py-name" href="#" onclick="return doclink('link-130', '_css_javascript_re', 'link-21');">_css_javascript_re</a></tt><tt class="py-op">.</tt><tt class="py-name">sub</tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-name">old</tt><tt class="py-op">)</tt> </tt>
-<a name="L290"></a><tt class="py-lineno">290</tt> <tt class="py-line"> <tt class="py-comment"># The imported CSS can do anything; we just can't allow:</tt> </tt>
-<a name="L291"></a><tt class="py-lineno">291</tt> <tt class="py-line"> <tt class="py-name">new</tt> <tt class="py-op">=</tt> <tt id="link-131" class="py-name"><a title="lxml.html._css_import_re
+<a name="L292"></a><tt class="py-lineno">292</tt> <tt class="py-line"> <tt class="py-name">new</tt> <tt class="py-op">=</tt> <tt id="link-130" class="py-name"><a title="lxml.html.clean._css_javascript_re" class="py-name" href="#" onclick="return doclink('link-130', '_css_javascript_re', 'link-21');">_css_javascript_re</a></tt><tt class="py-op">.</tt><tt class="py-name">sub</tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-name">old</tt><tt class="py-op">)</tt> </tt>
+<a name="L293"></a><tt class="py-lineno">293</tt> <tt class="py-line"> <tt class="py-comment"># The imported CSS can do anything; we just can't allow:</tt> </tt>
+<a name="L294"></a><tt class="py-lineno">294</tt> <tt class="py-line"> <tt class="py-name">new</tt> <tt class="py-op">=</tt> <tt id="link-131" class="py-name"><a title="lxml.html._css_import_re
lxml.html.clean._css_import_re" class="py-name" href="#" onclick="return doclink('link-131', '_css_import_re', 'link-24');">_css_import_re</a></tt><tt class="py-op">.</tt><tt class="py-name">sub</tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-name">old</tt><tt class="py-op">)</tt> </tt>
-<a name="L292"></a><tt class="py-lineno">292</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-132" class="py-name"><a title="lxml.html.clean.Cleaner._has_sneaky_javascript" class="py-name" href="#" onclick="return doclink('link-132', '_has_sneaky_javascript', 'link-122');">_has_sneaky_javascript</a></tt><tt class="py-op">(</tt><tt class="py-name">new</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L293"></a><tt class="py-lineno">293</tt> <tt class="py-line"> <tt class="py-comment"># Something tricky is going on...</tt> </tt>
-<a name="L294"></a><tt class="py-lineno">294</tt> <tt class="py-line"> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-133" class="py-name"><a title="lxml.etree.QName.text
+<a name="L295"></a><tt class="py-lineno">295</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-132" class="py-name"><a title="lxml.html.clean.Cleaner._has_sneaky_javascript" class="py-name" href="#" onclick="return doclink('link-132', '_has_sneaky_javascript', 'link-122');">_has_sneaky_javascript</a></tt><tt class="py-op">(</tt><tt class="py-name">new</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L296"></a><tt class="py-lineno">296</tt> <tt class="py-line"> <tt class="py-comment"># Something tricky is going on...</tt> </tt>
+<a name="L297"></a><tt class="py-lineno">297</tt> <tt class="py-line"> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-133" 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-133', 'text', 'link-129');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'/* deleted */'</tt> </tt>
-<a name="L295"></a><tt class="py-lineno">295</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">new</tt> <tt class="py-op">!=</tt> <tt class="py-name">old</tt><tt class="py-op">:</tt> </tt>
-<a name="L296"></a><tt class="py-lineno">296</tt> <tt class="py-line"> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-134" class="py-name"><a title="lxml.etree.QName.text
+<a name="L298"></a><tt class="py-lineno">298</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">new</tt> <tt class="py-op">!=</tt> <tt class="py-name">old</tt><tt class="py-op">:</tt> </tt>
+<a name="L299"></a><tt class="py-lineno">299</tt> <tt class="py-line"> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-134" 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-134', 'text', 'link-129');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-name">new</tt> </tt>
-<a name="L297"></a><tt class="py-lineno">297</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-135" class="py-name"><a title="lxml.html.clean.Cleaner.comments" class="py-name" href="#" onclick="return doclink('link-135', 'comments', 'link-41');">comments</a></tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-136" class="py-name"><a title="lxml.html.clean.Cleaner.processing_instructions" class="py-name" href="#" onclick="return doclink('link-136', 'processing_instructions', 'link-46');">processing_instructions</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L298"></a><tt class="py-lineno">298</tt> <tt class="py-line"> <tt class="py-comment"># FIXME: why either? I feel like there's some obscure reason</tt> </tt>
-<a name="L299"></a><tt class="py-lineno">299</tt> <tt class="py-line"> <tt class="py-comment"># because you can put PIs in comments...? But I've already</tt> </tt>
-<a name="L300"></a><tt class="py-lineno">300</tt> <tt class="py-line"> <tt class="py-comment"># forgotten it</tt> </tt>
-<a name="L301"></a><tt class="py-lineno">301</tt> <tt class="py-line"> <tt id="link-137" class="py-name"><a title="lxml.html.clean.Cleaner.kill_tags" class="py-name" href="#" onclick="return doclink('link-137', 'kill_tags', 'link-53');">kill_tags</a></tt><tt class="py-op">.</tt><tt id="link-138" class="py-name"><a title="lxml.html.CheckboxValues.add
+<a name="L300"></a><tt class="py-lineno">300</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-135" class="py-name"><a title="lxml.html.clean.Cleaner.comments" class="py-name" href="#" onclick="return doclink('link-135', 'comments', 'link-41');">comments</a></tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-136" class="py-name"><a title="lxml.html.clean.Cleaner.processing_instructions" class="py-name" href="#" onclick="return doclink('link-136', 'processing_instructions', 'link-46');">processing_instructions</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L301"></a><tt class="py-lineno">301</tt> <tt class="py-line"> <tt class="py-comment"># FIXME: why either? I feel like there's some obscure reason</tt> </tt>
+<a name="L302"></a><tt class="py-lineno">302</tt> <tt class="py-line"> <tt class="py-comment"># because you can put PIs in comments...? But I've already</tt> </tt>
+<a name="L303"></a><tt class="py-lineno">303</tt> <tt class="py-line"> <tt class="py-comment"># forgotten it</tt> </tt>
+<a name="L304"></a><tt class="py-lineno">304</tt> <tt class="py-line"> <tt id="link-137" class="py-name"><a title="lxml.html.clean.Cleaner.kill_tags" class="py-name" href="#" onclick="return doclink('link-137', 'kill_tags', 'link-53');">kill_tags</a></tt><tt class="py-op">.</tt><tt id="link-138" class="py-name"><a title="lxml.html.CheckboxValues.add
lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-138', 'add', 'link-91');">add</a></tt><tt class="py-op">(</tt><tt id="link-139" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-139', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-140" class="py-name" targets="Function lxml.etree.Comment()=lxml.etree-module.html#Comment"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-140', 'Comment', 'link-140');">Comment</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L302"></a><tt class="py-lineno">302</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-141" class="py-name"><a title="lxml.html.clean.Cleaner.processing_instructions" class="py-name" href="#" onclick="return doclink('link-141', 'processing_instructions', 'link-46');">processing_instructions</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L303"></a><tt class="py-lineno">303</tt> <tt class="py-line"> <tt id="link-142" class="py-name"><a title="lxml.html.clean.Cleaner.kill_tags" class="py-name" href="#" onclick="return doclink('link-142', 'kill_tags', 'link-53');">kill_tags</a></tt><tt class="py-op">.</tt><tt id="link-143" class="py-name"><a title="lxml.html.CheckboxValues.add
+<a name="L305"></a><tt class="py-lineno">305</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-141" class="py-name"><a title="lxml.html.clean.Cleaner.processing_instructions" class="py-name" href="#" onclick="return doclink('link-141', 'processing_instructions', 'link-46');">processing_instructions</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L306"></a><tt class="py-lineno">306</tt> <tt class="py-line"> <tt id="link-142" class="py-name"><a title="lxml.html.clean.Cleaner.kill_tags" class="py-name" href="#" onclick="return doclink('link-142', 'kill_tags', 'link-53');">kill_tags</a></tt><tt class="py-op">.</tt><tt id="link-143" class="py-name"><a title="lxml.html.CheckboxValues.add
lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-143', 'add', 'link-91');">add</a></tt><tt class="py-op">(</tt><tt id="link-144" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-144', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt class="py-name">ProcessingInstruction</tt><tt class="py-op">)</tt> </tt>
-<a name="L304"></a><tt class="py-lineno">304</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-145" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-145', 'style', 'link-42');">style</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L305"></a><tt class="py-lineno">305</tt> <tt class="py-line"> <tt id="link-146" class="py-name"><a title="lxml.html.clean.Cleaner.kill_tags" class="py-name" href="#" onclick="return doclink('link-146', 'kill_tags', 'link-53');">kill_tags</a></tt><tt class="py-op">.</tt><tt id="link-147" class="py-name"><a title="lxml.html.CheckboxValues.add
+<a name="L307"></a><tt class="py-lineno">307</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-145" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-145', 'style', 'link-42');">style</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L308"></a><tt class="py-lineno">308</tt> <tt class="py-line"> <tt id="link-146" class="py-name"><a title="lxml.html.clean.Cleaner.kill_tags" class="py-name" href="#" onclick="return doclink('link-146', 'kill_tags', 'link-53');">kill_tags</a></tt><tt class="py-op">.</tt><tt id="link-147" class="py-name"><a title="lxml.html.CheckboxValues.add
lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-147', 'add', 'link-91');">add</a></tt><tt class="py-op">(</tt><tt class="py-string">'style'</tt><tt class="py-op">)</tt> </tt>
-<a name="L306"></a><tt class="py-lineno">306</tt> <tt class="py-line"> <tt id="link-148" class="py-name"><a title="lxml.etree
+<a name="L309"></a><tt class="py-lineno">309</tt> <tt class="py-line"> <tt id="link-148" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-148', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-149" class="py-name" targets="Function lxml.etree.strip_attributes()=lxml.etree-module.html#strip_attributes"><a title="lxml.etree.strip_attributes" class="py-name" href="#" onclick="return doclink('link-149', 'strip_attributes', 'link-149');">strip_attributes</a></tt><tt class="py-op">(</tt><tt class="py-name">doc</tt><tt class="py-op">,</tt> <tt class="py-string">'style'</tt><tt class="py-op">)</tt> </tt>
-<a name="L307"></a><tt class="py-lineno">307</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-150" class="py-name"><a title="lxml.html.clean.Cleaner.links" class="py-name" href="#" onclick="return doclink('link-150', 'links', 'link-43');">links</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L308"></a><tt class="py-lineno">308</tt> <tt class="py-line"> <tt id="link-151" class="py-name"><a title="lxml.html.clean.Cleaner.kill_tags" class="py-name" href="#" onclick="return doclink('link-151', 'kill_tags', 'link-53');">kill_tags</a></tt><tt class="py-op">.</tt><tt id="link-152" class="py-name"><a title="lxml.html.CheckboxValues.add
+<a name="L310"></a><tt class="py-lineno">310</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-150" class="py-name"><a title="lxml.html.clean.Cleaner.links" class="py-name" href="#" onclick="return doclink('link-150', 'links', 'link-43');">links</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L311"></a><tt class="py-lineno">311</tt> <tt class="py-line"> <tt id="link-151" class="py-name"><a title="lxml.html.clean.Cleaner.kill_tags" class="py-name" href="#" onclick="return doclink('link-151', 'kill_tags', 'link-53');">kill_tags</a></tt><tt class="py-op">.</tt><tt id="link-152" class="py-name"><a title="lxml.html.CheckboxValues.add
lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-152', 'add', 'link-91');">add</a></tt><tt class="py-op">(</tt><tt class="py-string">'link'</tt><tt class="py-op">)</tt> </tt>
-<a name="L309"></a><tt class="py-lineno">309</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-153" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-153', 'style', 'link-42');">style</a></tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-154" class="py-name"><a title="lxml.html.clean.Cleaner.javascript" class="py-name" href="#" onclick="return doclink('link-154', 'javascript', 'link-40');">javascript</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L310"></a><tt class="py-lineno">310</tt> <tt class="py-line"> <tt class="py-comment"># We must get rid of included stylesheets if Javascript is not</tt> </tt>
-<a name="L311"></a><tt class="py-lineno">311</tt> <tt class="py-line"> <tt class="py-comment"># allowed, as you can put Javascript in them</tt> </tt>
-<a name="L312"></a><tt class="py-lineno">312</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">list</tt><tt class="py-op">(</tt><tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-155" class="py-name"><a title="lxml.etree._Element.iter
+<a name="L312"></a><tt class="py-lineno">312</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-153" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-153', 'style', 'link-42');">style</a></tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-154" class="py-name"><a title="lxml.html.clean.Cleaner.javascript" class="py-name" href="#" onclick="return doclink('link-154', 'javascript', 'link-40');">javascript</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L313"></a><tt class="py-lineno">313</tt> <tt class="py-line"> <tt class="py-comment"># We must get rid of included stylesheets if Javascript is not</tt> </tt>
+<a name="L314"></a><tt class="py-lineno">314</tt> <tt class="py-line"> <tt class="py-comment"># allowed, as you can put Javascript in them</tt> </tt>
+<a name="L315"></a><tt class="py-lineno">315</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">list</tt><tt class="py-op">(</tt><tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-155" class="py-name"><a title="lxml.etree._Element.iter
lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-155', 'iter', 'link-76');">iter</a></tt><tt class="py-op">(</tt><tt class="py-string">'link'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L313"></a><tt class="py-lineno">313</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'stylesheet'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-156" class="py-name"><a title="lxml.etree._Attrib.get
+<a name="L316"></a><tt class="py-lineno">316</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'stylesheet'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-156" 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-156', 'get', 'link-119');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'rel'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">lower</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L314"></a><tt class="py-lineno">314</tt> <tt class="py-line"> <tt class="py-comment"># Note this kills alternate stylesheets as well</tt> </tt>
-<a name="L315"></a><tt class="py-lineno">315</tt> <tt class="py-line"> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-157" class="py-name"><a title="lxml.html.HtmlMixin.drop_tree" class="py-name" href="#" onclick="return doclink('link-157', 'drop_tree', 'link-128');">drop_tree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L316"></a><tt class="py-lineno">316</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-158" class="py-name"><a title="lxml.html.clean.Cleaner.meta" class="py-name" href="#" onclick="return doclink('link-158', 'meta', 'link-44');">meta</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L317"></a><tt class="py-lineno">317</tt> <tt class="py-line"> <tt id="link-159" class="py-name"><a title="lxml.html.clean.Cleaner.kill_tags" class="py-name" href="#" onclick="return doclink('link-159', 'kill_tags', 'link-53');">kill_tags</a></tt><tt class="py-op">.</tt><tt id="link-160" class="py-name"><a title="lxml.html.CheckboxValues.add
-lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-160', 'add', 'link-91');">add</a></tt><tt class="py-op">(</tt><tt class="py-string">'meta'</tt><tt class="py-op">)</tt> </tt>
-<a name="L318"></a><tt class="py-lineno">318</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-161" class="py-name"><a title="lxml.html.clean.Cleaner.page_structure" class="py-name" href="#" onclick="return doclink('link-161', 'page_structure', 'link-45');">page_structure</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L319"></a><tt class="py-lineno">319</tt> <tt class="py-line"> <tt id="link-162" class="py-name"><a title="lxml.html.clean.Cleaner.remove_tags" class="py-name" href="#" onclick="return doclink('link-162', 'remove_tags', 'link-51');">remove_tags</a></tt><tt class="py-op">.</tt><tt id="link-163" class="py-name" targets="Method lxml.etree._Attrib.update()=lxml.etree._Attrib-class.html#update"><a title="lxml.etree._Attrib.update" class="py-name" href="#" onclick="return doclink('link-163', 'update', 'link-163');">update</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-string">'head'</tt><tt class="py-op">,</tt> <tt class="py-string">'html'</tt><tt class="py-op">,</tt> <tt class="py-string">'title'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L320"></a><tt class="py-lineno">320</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-164" class="py-name"><a title="lxml.html.clean.Cleaner.embedded" class="py-name" href="#" onclick="return doclink('link-164', 'embedded', 'link-47');">embedded</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L321"></a><tt class="py-lineno">321</tt> <tt class="py-line"> <tt class="py-comment"># FIXME: is <layer> really embedded?</tt> </tt>
-<a name="L322"></a><tt class="py-lineno">322</tt> <tt class="py-line"> <tt class="py-comment"># We should get rid of any <param> tags not inside <applet>;</tt> </tt>
-<a name="L323"></a><tt class="py-lineno">323</tt> <tt class="py-line"> <tt class="py-comment"># These are not really valid anyway.</tt> </tt>
-<a name="L324"></a><tt class="py-lineno">324</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">list</tt><tt class="py-op">(</tt><tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-165" class="py-name"><a title="lxml.etree._Element.iter
-lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-165', 'iter', 'link-76');">iter</a></tt><tt class="py-op">(</tt><tt class="py-string">'param'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L325"></a><tt class="py-lineno">325</tt> <tt class="py-line"> <tt class="py-name">found_parent</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
-<a name="L326"></a><tt class="py-lineno">326</tt> <tt class="py-line"> <tt class="py-name">parent</tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-166" class="py-name" targets="Method lxml.etree._Element.getparent()=lxml.etree._Element-class.html#getparent,Method lxml.etree._ElementStringResult.getparent()=lxml.etree._ElementStringResult-class.html#getparent,Method lxml.etree._ElementUnicodeResult.getparent()=lxml.etree._ElementUnicodeResult-class.html#getparent"><a title="lxml.etree._Element.getparent
+<a name="L317"></a><tt class="py-lineno">317</tt> <tt class="py-line"> <tt class="py-comment"># Note this kills alternate stylesheets as well</tt> </tt>
+<a name="L318"></a><tt class="py-lineno">318</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-157" class="py-name" targets="Method lxml.html.clean.Cleaner.allow_element()=lxml.html.clean.Cleaner-class.html#allow_element"><a title="lxml.html.clean.Cleaner.allow_element" class="py-name" href="#" onclick="return doclink('link-157', 'allow_element', 'link-157');">allow_element</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="L319"></a><tt class="py-lineno">319</tt> <tt class="py-line"> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-158" class="py-name"><a title="lxml.html.HtmlMixin.drop_tree" class="py-name" href="#" onclick="return doclink('link-158', 'drop_tree', 'link-128');">drop_tree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L320"></a><tt class="py-lineno">320</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-159" class="py-name"><a title="lxml.html.clean.Cleaner.meta" class="py-name" href="#" onclick="return doclink('link-159', 'meta', 'link-44');">meta</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L321"></a><tt class="py-lineno">321</tt> <tt class="py-line"> <tt id="link-160" class="py-name"><a title="lxml.html.clean.Cleaner.kill_tags" class="py-name" href="#" onclick="return doclink('link-160', 'kill_tags', 'link-53');">kill_tags</a></tt><tt class="py-op">.</tt><tt id="link-161" class="py-name"><a title="lxml.html.CheckboxValues.add
+lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-161', 'add', 'link-91');">add</a></tt><tt class="py-op">(</tt><tt class="py-string">'meta'</tt><tt class="py-op">)</tt> </tt>
+<a name="L322"></a><tt class="py-lineno">322</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-162" class="py-name"><a title="lxml.html.clean.Cleaner.page_structure" class="py-name" href="#" onclick="return doclink('link-162', 'page_structure', 'link-45');">page_structure</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L323"></a><tt class="py-lineno">323</tt> <tt class="py-line"> <tt id="link-163" class="py-name"><a title="lxml.html.clean.Cleaner.remove_tags" class="py-name" href="#" onclick="return doclink('link-163', 'remove_tags', 'link-51');">remove_tags</a></tt><tt class="py-op">.</tt><tt id="link-164" class="py-name" targets="Method lxml.etree._Attrib.update()=lxml.etree._Attrib-class.html#update"><a title="lxml.etree._Attrib.update" class="py-name" href="#" onclick="return doclink('link-164', 'update', 'link-164');">update</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-string">'head'</tt><tt class="py-op">,</tt> <tt class="py-string">'html'</tt><tt class="py-op">,</tt> <tt class="py-string">'title'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L324"></a><tt class="py-lineno">324</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-165" class="py-name"><a title="lxml.html.clean.Cleaner.embedded" class="py-name" href="#" onclick="return doclink('link-165', 'embedded', 'link-47');">embedded</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L325"></a><tt class="py-lineno">325</tt> <tt class="py-line"> <tt class="py-comment"># FIXME: is <layer> really embedded?</tt> </tt>
+<a name="L326"></a><tt class="py-lineno">326</tt> <tt class="py-line"> <tt class="py-comment"># We should get rid of any <param> tags not inside <applet>;</tt> </tt>
+<a name="L327"></a><tt class="py-lineno">327</tt> <tt class="py-line"> <tt class="py-comment"># These are not really valid anyway.</tt> </tt>
+<a name="L328"></a><tt class="py-lineno">328</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">list</tt><tt class="py-op">(</tt><tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-166" class="py-name"><a title="lxml.etree._Element.iter
+lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-166', 'iter', 'link-76');">iter</a></tt><tt class="py-op">(</tt><tt class="py-string">'param'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L329"></a><tt class="py-lineno">329</tt> <tt class="py-line"> <tt class="py-name">found_parent</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L330"></a><tt class="py-lineno">330</tt> <tt class="py-line"> <tt class="py-name">parent</tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-167" class="py-name" targets="Method lxml.etree._Element.getparent()=lxml.etree._Element-class.html#getparent,Method lxml.etree._ElementStringResult.getparent()=lxml.etree._ElementStringResult-class.html#getparent,Method lxml.etree._ElementUnicodeResult.getparent()=lxml.etree._ElementUnicodeResult-class.html#getparent"><a title="lxml.etree._Element.getparent
lxml.etree._ElementStringResult.getparent
-lxml.etree._ElementUnicodeResult.getparent" class="py-name" href="#" onclick="return doclink('link-166', 'getparent', 'link-166');">getparent</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L327"></a><tt class="py-lineno">327</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">parent</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt> <tt class="py-keyword">and</tt> <tt class="py-name">parent</tt><tt class="py-op">.</tt><tt id="link-167" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.etree._ElementUnicodeResult.getparent" class="py-name" href="#" onclick="return doclink('link-167', 'getparent', 'link-167');">getparent</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L331"></a><tt class="py-lineno">331</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">parent</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt> <tt class="py-keyword">and</tt> <tt class="py-name">parent</tt><tt class="py-op">.</tt><tt id="link-168" 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-167', 'tag', 'link-77');">tag</a></tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-op">(</tt><tt class="py-string">'applet'</tt><tt class="py-op">,</tt> <tt class="py-string">'object'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L328"></a><tt class="py-lineno">328</tt> <tt class="py-line"> <tt class="py-name">parent</tt> <tt class="py-op">=</tt> <tt class="py-name">parent</tt><tt class="py-op">.</tt><tt id="link-168" class="py-name"><a title="lxml.etree._Element.getparent
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-168', 'tag', 'link-77');">tag</a></tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-op">(</tt><tt class="py-string">'applet'</tt><tt class="py-op">,</tt> <tt class="py-string">'object'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L332"></a><tt class="py-lineno">332</tt> <tt class="py-line"> <tt class="py-name">parent</tt> <tt class="py-op">=</tt> <tt class="py-name">parent</tt><tt class="py-op">.</tt><tt id="link-169" class="py-name"><a title="lxml.etree._Element.getparent
lxml.etree._ElementStringResult.getparent
-lxml.etree._ElementUnicodeResult.getparent" class="py-name" href="#" onclick="return doclink('link-168', 'getparent', 'link-166');">getparent</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L329"></a><tt class="py-lineno">329</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">parent</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L330"></a><tt class="py-lineno">330</tt> <tt class="py-line"> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-169" class="py-name"><a title="lxml.html.HtmlMixin.drop_tree" class="py-name" href="#" onclick="return doclink('link-169', 'drop_tree', 'link-128');">drop_tree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L331"></a><tt class="py-lineno">331</tt> <tt class="py-line"> <tt id="link-170" class="py-name"><a title="lxml.html.clean.Cleaner.kill_tags" class="py-name" href="#" onclick="return doclink('link-170', 'kill_tags', 'link-53');">kill_tags</a></tt><tt class="py-op">.</tt><tt id="link-171" class="py-name"><a title="lxml.etree._Attrib.update" class="py-name" href="#" onclick="return doclink('link-171', 'update', 'link-163');">update</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-string">'applet'</tt><tt class="py-op">,</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L332"></a><tt class="py-lineno">332</tt> <tt class="py-line"> <tt class="py-comment"># The alternate contents that are in an iframe are a good fallback:</tt> </tt>
-<a name="L333"></a><tt class="py-lineno">333</tt> <tt class="py-line"> <tt id="link-172" class="py-name"><a title="lxml.html.clean.Cleaner.remove_tags" class="py-name" href="#" onclick="return doclink('link-172', 'remove_tags', 'link-51');">remove_tags</a></tt><tt class="py-op">.</tt><tt id="link-173" class="py-name"><a title="lxml.etree._Attrib.update" class="py-name" href="#" onclick="return doclink('link-173', 'update', 'link-163');">update</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-string">'iframe'</tt><tt class="py-op">,</tt> <tt class="py-string">'embed'</tt><tt class="py-op">,</tt> <tt class="py-string">'layer'</tt><tt class="py-op">,</tt> <tt class="py-string">'object'</tt><tt class="py-op">,</tt> <tt class="py-string">'param'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L334"></a><tt class="py-lineno">334</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-174" class="py-name"><a title="lxml.html.clean.Cleaner.frames" class="py-name" href="#" onclick="return doclink('link-174', 'frames', 'link-48');">frames</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L335"></a><tt class="py-lineno">335</tt> <tt class="py-line"> <tt class="py-comment"># FIXME: ideally we should look at the frame links, but</tt> </tt>
-<a name="L336"></a><tt class="py-lineno">336</tt> <tt class="py-line"> <tt class="py-comment"># generally frames don't mix properly with an HTML</tt> </tt>
-<a name="L337"></a><tt class="py-lineno">337</tt> <tt class="py-line"> <tt class="py-comment"># fragment anyway.</tt> </tt>
-<a name="L338"></a><tt class="py-lineno">338</tt> <tt class="py-line"> <tt id="link-175" class="py-name"><a title="lxml.html.clean.Cleaner.kill_tags" class="py-name" href="#" onclick="return doclink('link-175', 'kill_tags', 'link-53');">kill_tags</a></tt><tt class="py-op">.</tt><tt id="link-176" class="py-name"><a title="lxml.etree._Attrib.update" class="py-name" href="#" onclick="return doclink('link-176', 'update', 'link-163');">update</a></tt><tt class="py-op">(</tt><tt id="link-177" class="py-name"><a title="lxml.html.defs" class="py-name" href="#" onclick="return doclink('link-177', 'defs', 'link-6');">defs</a></tt><tt class="py-op">.</tt><tt id="link-178" class="py-name" targets="Variable lxml.html.defs.frame_tags=lxml.html.defs-module.html#frame_tags"><a title="lxml.html.defs.frame_tags" class="py-name" href="#" onclick="return doclink('link-178', 'frame_tags', 'link-178');">frame_tags</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L339"></a><tt class="py-lineno">339</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-179" class="py-name"><a title="lxml.html.HtmlMixin.forms
-lxml.html.clean.Cleaner.forms" class="py-name" href="#" onclick="return doclink('link-179', 'forms', 'link-49');">forms</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L340"></a><tt class="py-lineno">340</tt> <tt class="py-line"> <tt id="link-180" class="py-name"><a title="lxml.html.clean.Cleaner.remove_tags" class="py-name" href="#" onclick="return doclink('link-180', 'remove_tags', 'link-51');">remove_tags</a></tt><tt class="py-op">.</tt><tt id="link-181" class="py-name"><a title="lxml.html.CheckboxValues.add
-lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-181', 'add', 'link-91');">add</a></tt><tt class="py-op">(</tt><tt class="py-string">'form'</tt><tt class="py-op">)</tt> </tt>
-<a name="L341"></a><tt class="py-lineno">341</tt> <tt class="py-line"> <tt id="link-182" class="py-name"><a title="lxml.html.clean.Cleaner.kill_tags" class="py-name" href="#" onclick="return doclink('link-182', 'kill_tags', 'link-53');">kill_tags</a></tt><tt class="py-op">.</tt><tt id="link-183" class="py-name"><a title="lxml.etree._Attrib.update" class="py-name" href="#" onclick="return doclink('link-183', 'update', 'link-163');">update</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-string">'button'</tt><tt class="py-op">,</tt> <tt class="py-string">'input'</tt><tt class="py-op">,</tt> <tt class="py-string">'select'</tt><tt class="py-op">,</tt> <tt class="py-string">'textarea'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L342"></a><tt class="py-lineno">342</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-184" class="py-name"><a title="lxml.html.clean.Cleaner.annoying_tags" class="py-name" href="#" onclick="return doclink('link-184', 'annoying_tags', 'link-50');">annoying_tags</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L343"></a><tt class="py-lineno">343</tt> <tt class="py-line"> <tt id="link-185" class="py-name"><a title="lxml.html.clean.Cleaner.remove_tags" class="py-name" href="#" onclick="return doclink('link-185', 'remove_tags', 'link-51');">remove_tags</a></tt><tt class="py-op">.</tt><tt id="link-186" class="py-name"><a title="lxml.etree._Attrib.update" class="py-name" href="#" onclick="return doclink('link-186', 'update', 'link-163');">update</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-string">'blink'</tt><tt class="py-op">,</tt> <tt class="py-string">'marquee'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L344"></a><tt class="py-lineno">344</tt> <tt class="py-line"> </tt>
-<a name="L345"></a><tt class="py-lineno">345</tt> <tt class="py-line"> <tt class="py-name">_remove</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L346"></a><tt class="py-lineno">346</tt> <tt class="py-line"> <tt class="py-name">_kill</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L347"></a><tt class="py-lineno">347</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">doc</tt><tt class="py-op">.</tt><tt id="link-187" class="py-name"><a title="lxml.etree._Element.iter
-lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-187', 'iter', 'link-76');">iter</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L348"></a><tt class="py-lineno">348</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-188" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.etree._ElementUnicodeResult.getparent" class="py-name" href="#" onclick="return doclink('link-169', 'getparent', 'link-167');">getparent</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L333"></a><tt class="py-lineno">333</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">parent</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L334"></a><tt class="py-lineno">334</tt> <tt class="py-line"> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-170" class="py-name"><a title="lxml.html.HtmlMixin.drop_tree" class="py-name" href="#" onclick="return doclink('link-170', 'drop_tree', 'link-128');">drop_tree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L335"></a><tt class="py-lineno">335</tt> <tt class="py-line"> <tt id="link-171" class="py-name"><a title="lxml.html.clean.Cleaner.kill_tags" class="py-name" href="#" onclick="return doclink('link-171', 'kill_tags', 'link-53');">kill_tags</a></tt><tt class="py-op">.</tt><tt id="link-172" class="py-name"><a title="lxml.etree._Attrib.update" class="py-name" href="#" onclick="return doclink('link-172', 'update', 'link-164');">update</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-string">'applet'</tt><tt class="py-op">,</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L336"></a><tt class="py-lineno">336</tt> <tt class="py-line"> <tt class="py-comment"># The alternate contents that are in an iframe are a good fallback:</tt> </tt>
+<a name="L337"></a><tt class="py-lineno">337</tt> <tt class="py-line"> <tt id="link-173" class="py-name"><a title="lxml.html.clean.Cleaner.remove_tags" class="py-name" href="#" onclick="return doclink('link-173', 'remove_tags', 'link-51');">remove_tags</a></tt><tt class="py-op">.</tt><tt id="link-174" class="py-name"><a title="lxml.etree._Attrib.update" class="py-name" href="#" onclick="return doclink('link-174', 'update', 'link-164');">update</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-string">'iframe'</tt><tt class="py-op">,</tt> <tt class="py-string">'embed'</tt><tt class="py-op">,</tt> <tt class="py-string">'layer'</tt><tt class="py-op">,</tt> <tt class="py-string">'object'</tt><tt class="py-op">,</tt> <tt class="py-string">'param'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L338"></a><tt class="py-lineno">338</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-175" class="py-name"><a title="lxml.html.clean.Cleaner.frames" class="py-name" href="#" onclick="return doclink('link-175', 'frames', 'link-48');">frames</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L339"></a><tt class="py-lineno">339</tt> <tt class="py-line"> <tt class="py-comment"># FIXME: ideally we should look at the frame links, but</tt> </tt>
+<a name="L340"></a><tt class="py-lineno">340</tt> <tt class="py-line"> <tt class="py-comment"># generally frames don't mix properly with an HTML</tt> </tt>
+<a name="L341"></a><tt class="py-lineno">341</tt> <tt class="py-line"> <tt class="py-comment"># fragment anyway.</tt> </tt>
+<a name="L342"></a><tt class="py-lineno">342</tt> <tt class="py-line"> <tt id="link-176" class="py-name"><a title="lxml.html.clean.Cleaner.kill_tags" class="py-name" href="#" onclick="return doclink('link-176', 'kill_tags', 'link-53');">kill_tags</a></tt><tt class="py-op">.</tt><tt id="link-177" class="py-name"><a title="lxml.etree._Attrib.update" class="py-name" href="#" onclick="return doclink('link-177', 'update', 'link-164');">update</a></tt><tt class="py-op">(</tt><tt id="link-178" class="py-name"><a title="lxml.html.defs" class="py-name" href="#" onclick="return doclink('link-178', 'defs', 'link-6');">defs</a></tt><tt class="py-op">.</tt><tt id="link-179" class="py-name" targets="Variable lxml.html.defs.frame_tags=lxml.html.defs-module.html#frame_tags"><a title="lxml.html.defs.frame_tags" class="py-name" href="#" onclick="return doclink('link-179', 'frame_tags', 'link-179');">frame_tags</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L343"></a><tt class="py-lineno">343</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-180" class="py-name"><a title="lxml.html.HtmlMixin.forms
+lxml.html.clean.Cleaner.forms" class="py-name" href="#" onclick="return doclink('link-180', 'forms', 'link-49');">forms</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L344"></a><tt class="py-lineno">344</tt> <tt class="py-line"> <tt id="link-181" class="py-name"><a title="lxml.html.clean.Cleaner.remove_tags" class="py-name" href="#" onclick="return doclink('link-181', 'remove_tags', 'link-51');">remove_tags</a></tt><tt class="py-op">.</tt><tt id="link-182" class="py-name"><a title="lxml.html.CheckboxValues.add
+lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-182', 'add', 'link-91');">add</a></tt><tt class="py-op">(</tt><tt class="py-string">'form'</tt><tt class="py-op">)</tt> </tt>
+<a name="L345"></a><tt class="py-lineno">345</tt> <tt class="py-line"> <tt id="link-183" class="py-name"><a title="lxml.html.clean.Cleaner.kill_tags" class="py-name" href="#" onclick="return doclink('link-183', 'kill_tags', 'link-53');">kill_tags</a></tt><tt class="py-op">.</tt><tt id="link-184" class="py-name"><a title="lxml.etree._Attrib.update" class="py-name" href="#" onclick="return doclink('link-184', 'update', 'link-164');">update</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-string">'button'</tt><tt class="py-op">,</tt> <tt class="py-string">'input'</tt><tt class="py-op">,</tt> <tt class="py-string">'select'</tt><tt class="py-op">,</tt> <tt class="py-string">'textarea'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L346"></a><tt class="py-lineno">346</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-185" class="py-name"><a title="lxml.html.clean.Cleaner.annoying_tags" class="py-name" href="#" onclick="return doclink('link-185', 'annoying_tags', 'link-50');">annoying_tags</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L347"></a><tt class="py-lineno">347</tt> <tt class="py-line"> <tt id="link-186" class="py-name"><a title="lxml.html.clean.Cleaner.remove_tags" class="py-name" href="#" onclick="return doclink('link-186', 'remove_tags', 'link-51');">remove_tags</a></tt><tt class="py-op">.</tt><tt id="link-187" class="py-name"><a title="lxml.etree._Attrib.update" class="py-name" href="#" onclick="return doclink('link-187', 'update', 'link-164');">update</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-string">'blink'</tt><tt class="py-op">,</tt> <tt class="py-string">'marquee'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L348"></a><tt class="py-lineno">348</tt> <tt class="py-line"> </tt>
+<a name="L349"></a><tt class="py-lineno">349</tt> <tt class="py-line"> <tt class="py-name">_remove</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L350"></a><tt class="py-lineno">350</tt> <tt class="py-line"> <tt class="py-name">_kill</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L351"></a><tt class="py-lineno">351</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">doc</tt><tt class="py-op">.</tt><tt id="link-188" class="py-name"><a title="lxml.etree._Element.iter
+lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-188', 'iter', 'link-76');">iter</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L352"></a><tt class="py-lineno">352</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-189" 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-188', 'tag', 'link-77');">tag</a></tt> <tt class="py-keyword">in</tt> <tt id="link-189" class="py-name"><a title="lxml.html.clean.Cleaner.kill_tags" class="py-name" href="#" onclick="return doclink('link-189', 'kill_tags', 'link-53');">kill_tags</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L349"></a><tt class="py-lineno">349</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-190" class="py-name" targets="Method lxml.html.clean.Cleaner.allow_element()=lxml.html.clean.Cleaner-class.html#allow_element"><a title="lxml.html.clean.Cleaner.allow_element" class="py-name" href="#" onclick="return doclink('link-190', 'allow_element', 'link-190');">allow_element</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="L350"></a><tt class="py-lineno">350</tt> <tt class="py-line"> <tt class="py-keyword">continue</tt> </tt>
-<a name="L351"></a><tt class="py-lineno">351</tt> <tt class="py-line"> <tt class="py-name">_kill</tt><tt class="py-op">.</tt><tt id="link-191" class="py-name" targets="Method lxml.etree._Element.append()=lxml.etree._Element-class.html#append"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-191', 'append', 'link-191');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
-<a name="L352"></a><tt class="py-lineno">352</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-192" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-189', 'tag', 'link-77');">tag</a></tt> <tt class="py-keyword">in</tt> <tt id="link-190" class="py-name"><a title="lxml.html.clean.Cleaner.kill_tags" class="py-name" href="#" onclick="return doclink('link-190', 'kill_tags', 'link-53');">kill_tags</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L353"></a><tt class="py-lineno">353</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-191" class="py-name"><a title="lxml.html.clean.Cleaner.allow_element" class="py-name" href="#" onclick="return doclink('link-191', 'allow_element', 'link-157');">allow_element</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="L354"></a><tt class="py-lineno">354</tt> <tt class="py-line"> <tt class="py-keyword">continue</tt> </tt>
+<a name="L355"></a><tt class="py-lineno">355</tt> <tt class="py-line"> <tt class="py-name">_kill</tt><tt class="py-op">.</tt><tt id="link-192" class="py-name" targets="Method lxml.etree._Element.append()=lxml.etree._Element-class.html#append"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-192', 'append', 'link-192');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
+<a name="L356"></a><tt class="py-lineno">356</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-193" 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-192', 'tag', 'link-77');">tag</a></tt> <tt class="py-keyword">in</tt> <tt id="link-193" class="py-name"><a title="lxml.html.clean.Cleaner.remove_tags" class="py-name" href="#" onclick="return doclink('link-193', 'remove_tags', 'link-51');">remove_tags</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L353"></a><tt class="py-lineno">353</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-194" class="py-name"><a title="lxml.html.clean.Cleaner.allow_element" class="py-name" href="#" onclick="return doclink('link-194', 'allow_element', 'link-190');">allow_element</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="L354"></a><tt class="py-lineno">354</tt> <tt class="py-line"> <tt class="py-keyword">continue</tt> </tt>
-<a name="L355"></a><tt class="py-lineno">355</tt> <tt class="py-line"> <tt class="py-name">_remove</tt><tt class="py-op">.</tt><tt id="link-195" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-195', 'append', 'link-191');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
-<a name="L356"></a><tt class="py-lineno">356</tt> <tt class="py-line"> </tt>
-<a name="L357"></a><tt class="py-lineno">357</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">_remove</tt> <tt class="py-keyword">and</tt> <tt class="py-name">_remove</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">doc</tt><tt class="py-op">:</tt> </tt>
-<a name="L358"></a><tt class="py-lineno">358</tt> <tt class="py-line"> <tt class="py-comment"># We have to drop the parent-most tag, which we can't</tt> </tt>
-<a name="L359"></a><tt class="py-lineno">359</tt> <tt class="py-line"> <tt class="py-comment"># do. Instead we'll rewrite it:</tt> </tt>
-<a name="L360"></a><tt class="py-lineno">360</tt> <tt class="py-line"> <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt class="py-name">_remove</tt><tt class="py-op">.</tt><tt id="link-196" class="py-name" targets="Method lxml.etree._Attrib.pop()=lxml.etree._Attrib-class.html#pop"><a title="lxml.etree._Attrib.pop" class="py-name" href="#" onclick="return doclink('link-196', 'pop', 'link-196');">pop</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
-<a name="L361"></a><tt class="py-lineno">361</tt> <tt class="py-line"> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-197" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-193', 'tag', 'link-77');">tag</a></tt> <tt class="py-keyword">in</tt> <tt id="link-194" class="py-name"><a title="lxml.html.clean.Cleaner.remove_tags" class="py-name" href="#" onclick="return doclink('link-194', 'remove_tags', 'link-51');">remove_tags</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L357"></a><tt class="py-lineno">357</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-195" class="py-name"><a title="lxml.html.clean.Cleaner.allow_element" class="py-name" href="#" onclick="return doclink('link-195', 'allow_element', 'link-157');">allow_element</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="L358"></a><tt class="py-lineno">358</tt> <tt class="py-line"> <tt class="py-keyword">continue</tt> </tt>
+<a name="L359"></a><tt class="py-lineno">359</tt> <tt class="py-line"> <tt class="py-name">_remove</tt><tt class="py-op">.</tt><tt id="link-196" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-196', 'append', 'link-192');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
+<a name="L360"></a><tt class="py-lineno">360</tt> <tt class="py-line"> </tt>
+<a name="L361"></a><tt class="py-lineno">361</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">_remove</tt> <tt class="py-keyword">and</tt> <tt class="py-name">_remove</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">doc</tt><tt class="py-op">:</tt> </tt>
+<a name="L362"></a><tt class="py-lineno">362</tt> <tt class="py-line"> <tt class="py-comment"># We have to drop the parent-most tag, which we can't</tt> </tt>
+<a name="L363"></a><tt class="py-lineno">363</tt> <tt class="py-line"> <tt class="py-comment"># do. Instead we'll rewrite it:</tt> </tt>
+<a name="L364"></a><tt class="py-lineno">364</tt> <tt class="py-line"> <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt class="py-name">_remove</tt><tt class="py-op">.</tt><tt id="link-197" class="py-name" targets="Method lxml.etree._Attrib.pop()=lxml.etree._Attrib-class.html#pop"><a title="lxml.etree._Attrib.pop" class="py-name" href="#" onclick="return doclink('link-197', 'pop', 'link-197');">pop</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L365"></a><tt class="py-lineno">365</tt> <tt class="py-line"> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-198" 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-197', 'tag', 'link-77');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'div'</tt> </tt>
-<a name="L362"></a><tt class="py-lineno">362</tt> <tt class="py-line"> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-198" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-198', 'tag', 'link-77');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'div'</tt> </tt>
+<a name="L366"></a><tt class="py-lineno">366</tt> <tt class="py-line"> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-199" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-198', 'attrib', 'link-97');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-199" class="py-name" targets="Method lxml.etree._Attrib.clear()=lxml.etree._Attrib-class.html#clear,Method lxml.etree._Element.clear()=lxml.etree._Element-class.html#clear,Method lxml.etree._ErrorLog.clear()=lxml.etree._ErrorLog-class.html#clear"><a title="lxml.etree._Attrib.clear
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-199', 'attrib', 'link-97');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-200" class="py-name" targets="Method lxml.etree._Attrib.clear()=lxml.etree._Attrib-class.html#clear,Method lxml.etree._Element.clear()=lxml.etree._Element-class.html#clear,Method lxml.etree._ErrorLog.clear()=lxml.etree._ErrorLog-class.html#clear"><a title="lxml.etree._Attrib.clear
lxml.etree._Element.clear
-lxml.etree._ErrorLog.clear" class="py-name" href="#" onclick="return doclink('link-199', 'clear', 'link-199');">clear</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L363"></a><tt class="py-lineno">363</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">_kill</tt> <tt class="py-keyword">and</tt> <tt class="py-name">_kill</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">doc</tt><tt class="py-op">:</tt> </tt>
-<a name="L364"></a><tt class="py-lineno">364</tt> <tt class="py-line"> <tt class="py-comment"># We have to drop the parent-most element, which we can't</tt> </tt>
-<a name="L365"></a><tt class="py-lineno">365</tt> <tt class="py-line"> <tt class="py-comment"># do. Instead we'll clear it:</tt> </tt>
-<a name="L366"></a><tt class="py-lineno">366</tt> <tt class="py-line"> <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt class="py-name">_kill</tt><tt class="py-op">.</tt><tt id="link-200" class="py-name"><a title="lxml.etree._Attrib.pop" class="py-name" href="#" onclick="return doclink('link-200', 'pop', 'link-196');">pop</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
-<a name="L367"></a><tt class="py-lineno">367</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-201" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.etree._ErrorLog.clear" class="py-name" href="#" onclick="return doclink('link-200', 'clear', 'link-200');">clear</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L367"></a><tt class="py-lineno">367</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">_kill</tt> <tt class="py-keyword">and</tt> <tt class="py-name">_kill</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">doc</tt><tt class="py-op">:</tt> </tt>
+<a name="L368"></a><tt class="py-lineno">368</tt> <tt class="py-line"> <tt class="py-comment"># We have to drop the parent-most element, which we can't</tt> </tt>
+<a name="L369"></a><tt class="py-lineno">369</tt> <tt class="py-line"> <tt class="py-comment"># do. Instead we'll clear it:</tt> </tt>
+<a name="L370"></a><tt class="py-lineno">370</tt> <tt class="py-line"> <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt class="py-name">_kill</tt><tt class="py-op">.</tt><tt id="link-201" class="py-name"><a title="lxml.etree._Attrib.pop" class="py-name" href="#" onclick="return doclink('link-201', 'pop', 'link-197');">pop</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L371"></a><tt class="py-lineno">371</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-202" 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-201', 'tag', 'link-77');">tag</a></tt> <tt class="py-op">!=</tt> <tt class="py-string">'html'</tt><tt class="py-op">:</tt> </tt>
-<a name="L368"></a><tt class="py-lineno">368</tt> <tt class="py-line"> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-202" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-202', 'tag', 'link-77');">tag</a></tt> <tt class="py-op">!=</tt> <tt class="py-string">'html'</tt><tt class="py-op">:</tt> </tt>
+<a name="L372"></a><tt class="py-lineno">372</tt> <tt class="py-line"> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-203" 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-202', 'tag', 'link-77');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'div'</tt> </tt>
-<a name="L369"></a><tt class="py-lineno">369</tt> <tt class="py-line"> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-203" class="py-name"><a title="lxml.etree._Attrib.clear
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-203', 'tag', 'link-77');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'div'</tt> </tt>
+<a name="L373"></a><tt class="py-lineno">373</tt> <tt class="py-line"> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-204" class="py-name"><a title="lxml.etree._Attrib.clear
lxml.etree._Element.clear
-lxml.etree._ErrorLog.clear" class="py-name" href="#" onclick="return doclink('link-203', 'clear', 'link-199');">clear</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L370"></a><tt class="py-lineno">370</tt> <tt class="py-line"> </tt>
-<a name="L371"></a><tt class="py-lineno">371</tt> <tt class="py-line"> <tt class="py-name">_kill</tt><tt class="py-op">.</tt><tt class="py-name">reverse</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-comment"># start with innermost tags</tt> </tt>
-<a name="L372"></a><tt class="py-lineno">372</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">_kill</tt><tt class="py-op">:</tt> </tt>
-<a name="L373"></a><tt class="py-lineno">373</tt> <tt class="py-line"> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-204" class="py-name"><a title="lxml.html.HtmlMixin.drop_tree" class="py-name" href="#" onclick="return doclink('link-204', 'drop_tree', 'link-128');">drop_tree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L374"></a><tt class="py-lineno">374</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">_remove</tt><tt class="py-op">:</tt> </tt>
-<a name="L375"></a><tt class="py-lineno">375</tt> <tt class="py-line"> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-205" class="py-name" targets="Method lxml.html.HtmlMixin.drop_tag()=lxml.html.HtmlMixin-class.html#drop_tag"><a title="lxml.html.HtmlMixin.drop_tag" class="py-name" href="#" onclick="return doclink('link-205', 'drop_tag', 'link-205');">drop_tag</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L376"></a><tt class="py-lineno">376</tt> <tt class="py-line"> </tt>
-<a name="L377"></a><tt class="py-lineno">377</tt> <tt class="py-line"> <tt id="link-206" class="py-name"><a title="lxml.html.clean.Cleaner.allow_tags" class="py-name" href="#" onclick="return doclink('link-206', 'allow_tags', 'link-52');">allow_tags</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-207" class="py-name"><a title="lxml.html.clean.Cleaner.allow_tags" class="py-name" href="#" onclick="return doclink('link-207', 'allow_tags', 'link-52');">allow_tags</a></tt> </tt>
-<a name="L378"></a><tt class="py-lineno">378</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-208" class="py-name"><a title="lxml.html.clean.Cleaner.remove_unknown_tags" class="py-name" href="#" onclick="return doclink('link-208', 'remove_unknown_tags', 'link-54');">remove_unknown_tags</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L379"></a><tt class="py-lineno">379</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-209" class="py-name"><a title="lxml.html.clean.Cleaner.allow_tags" class="py-name" href="#" onclick="return doclink('link-209', 'allow_tags', 'link-52');">allow_tags</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L380"></a><tt class="py-lineno">380</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">ValueError</tt><tt class="py-op">(</tt> </tt>
-<a name="L381"></a><tt class="py-lineno">381</tt> <tt class="py-line"> <tt class="py-string">"It does not make sense to pass in both allow_tags and remove_unknown_tags"</tt><tt class="py-op">)</tt> </tt>
-<a name="L382"></a><tt class="py-lineno">382</tt> <tt class="py-line"> <tt id="link-210" class="py-name"><a title="lxml.html.clean.Cleaner.allow_tags" class="py-name" href="#" onclick="return doclink('link-210', 'allow_tags', 'link-52');">allow_tags</a></tt> <tt class="py-op">=</tt> <tt id="link-211" class="py-name"><a title="lxml.etree._Element.set
-lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-211', 'set', 'link-62');">set</a></tt><tt class="py-op">(</tt><tt id="link-212" class="py-name"><a title="lxml.html.defs" class="py-name" href="#" onclick="return doclink('link-212', 'defs', 'link-6');">defs</a></tt><tt class="py-op">.</tt><tt id="link-213" class="py-name" targets="Variable lxml.html.defs.tags=lxml.html.defs-module.html#tags"><a title="lxml.html.defs.tags" class="py-name" href="#" onclick="return doclink('link-213', 'tags', 'link-213');">tags</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L383"></a><tt class="py-lineno">383</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-214" class="py-name"><a title="lxml.html.clean.Cleaner.allow_tags" class="py-name" href="#" onclick="return doclink('link-214', 'allow_tags', 'link-52');">allow_tags</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L384"></a><tt class="py-lineno">384</tt> <tt class="py-line"> <tt class="py-name">bad</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L385"></a><tt class="py-lineno">385</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">doc</tt><tt class="py-op">.</tt><tt id="link-215" class="py-name"><a title="lxml.etree._Element.iter
-lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-215', 'iter', 'link-76');">iter</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L386"></a><tt class="py-lineno">386</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-216" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.etree._ErrorLog.clear" class="py-name" href="#" onclick="return doclink('link-204', 'clear', 'link-200');">clear</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L374"></a><tt class="py-lineno">374</tt> <tt class="py-line"> </tt>
+<a name="L375"></a><tt class="py-lineno">375</tt> <tt class="py-line"> <tt class="py-name">_kill</tt><tt class="py-op">.</tt><tt class="py-name">reverse</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-comment"># start with innermost tags</tt> </tt>
+<a name="L376"></a><tt class="py-lineno">376</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">_kill</tt><tt class="py-op">:</tt> </tt>
+<a name="L377"></a><tt class="py-lineno">377</tt> <tt class="py-line"> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-205" class="py-name"><a title="lxml.html.HtmlMixin.drop_tree" class="py-name" href="#" onclick="return doclink('link-205', 'drop_tree', 'link-128');">drop_tree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L378"></a><tt class="py-lineno">378</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">_remove</tt><tt class="py-op">:</tt> </tt>
+<a name="L379"></a><tt class="py-lineno">379</tt> <tt class="py-line"> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-206" class="py-name" targets="Method lxml.html.HtmlMixin.drop_tag()=lxml.html.HtmlMixin-class.html#drop_tag"><a title="lxml.html.HtmlMixin.drop_tag" class="py-name" href="#" onclick="return doclink('link-206', 'drop_tag', 'link-206');">drop_tag</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L380"></a><tt class="py-lineno">380</tt> <tt class="py-line"> </tt>
+<a name="L381"></a><tt class="py-lineno">381</tt> <tt class="py-line"> <tt id="link-207" class="py-name"><a title="lxml.html.clean.Cleaner.allow_tags" class="py-name" href="#" onclick="return doclink('link-207', 'allow_tags', 'link-52');">allow_tags</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-208" class="py-name"><a title="lxml.html.clean.Cleaner.allow_tags" class="py-name" href="#" onclick="return doclink('link-208', 'allow_tags', 'link-52');">allow_tags</a></tt> </tt>
+<a name="L382"></a><tt class="py-lineno">382</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-209" class="py-name"><a title="lxml.html.clean.Cleaner.remove_unknown_tags" class="py-name" href="#" onclick="return doclink('link-209', 'remove_unknown_tags', 'link-54');">remove_unknown_tags</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L383"></a><tt class="py-lineno">383</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-210" class="py-name"><a title="lxml.html.clean.Cleaner.allow_tags" class="py-name" href="#" onclick="return doclink('link-210', 'allow_tags', 'link-52');">allow_tags</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L384"></a><tt class="py-lineno">384</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">ValueError</tt><tt class="py-op">(</tt> </tt>
+<a name="L385"></a><tt class="py-lineno">385</tt> <tt class="py-line"> <tt class="py-string">"It does not make sense to pass in both allow_tags and remove_unknown_tags"</tt><tt class="py-op">)</tt> </tt>
+<a name="L386"></a><tt class="py-lineno">386</tt> <tt class="py-line"> <tt id="link-211" class="py-name"><a title="lxml.html.clean.Cleaner.allow_tags" class="py-name" href="#" onclick="return doclink('link-211', 'allow_tags', 'link-52');">allow_tags</a></tt> <tt class="py-op">=</tt> <tt id="link-212" class="py-name"><a title="lxml.etree._Element.set
+lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-212', 'set', 'link-62');">set</a></tt><tt class="py-op">(</tt><tt id="link-213" class="py-name"><a title="lxml.html.defs" class="py-name" href="#" onclick="return doclink('link-213', 'defs', 'link-6');">defs</a></tt><tt class="py-op">.</tt><tt id="link-214" class="py-name" targets="Variable lxml.html.defs.tags=lxml.html.defs-module.html#tags"><a title="lxml.html.defs.tags" class="py-name" href="#" onclick="return doclink('link-214', 'tags', 'link-214');">tags</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L387"></a><tt class="py-lineno">387</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-215" class="py-name"><a title="lxml.html.clean.Cleaner.allow_tags" class="py-name" href="#" onclick="return doclink('link-215', 'allow_tags', 'link-52');">allow_tags</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L388"></a><tt class="py-lineno">388</tt> <tt class="py-line"> <tt class="py-name">bad</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L389"></a><tt class="py-lineno">389</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">doc</tt><tt class="py-op">.</tt><tt id="link-216" class="py-name"><a title="lxml.etree._Element.iter
+lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-216', 'iter', 'link-76');">iter</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L390"></a><tt class="py-lineno">390</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-217" 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-216', 'tag', 'link-77');">tag</a></tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt id="link-217" class="py-name"><a title="lxml.html.clean.Cleaner.allow_tags" class="py-name" href="#" onclick="return doclink('link-217', 'allow_tags', 'link-52');">allow_tags</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L387"></a><tt class="py-lineno">387</tt> <tt class="py-line"> <tt class="py-name">bad</tt><tt class="py-op">.</tt><tt id="link-218" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-218', 'append', 'link-191');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
-<a name="L388"></a><tt class="py-lineno">388</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">bad</tt><tt class="py-op">:</tt> </tt>
-<a name="L389"></a><tt class="py-lineno">389</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">bad</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-keyword">is</tt> <tt class="py-name">doc</tt><tt class="py-op">:</tt> </tt>
-<a name="L390"></a><tt class="py-lineno">390</tt> <tt class="py-line"> <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt class="py-name">bad</tt><tt class="py-op">.</tt><tt id="link-219" class="py-name"><a title="lxml.etree._Attrib.pop" class="py-name" href="#" onclick="return doclink('link-219', 'pop', 'link-196');">pop</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
-<a name="L391"></a><tt class="py-lineno">391</tt> <tt class="py-line"> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-220" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-217', 'tag', 'link-77');">tag</a></tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt id="link-218" class="py-name"><a title="lxml.html.clean.Cleaner.allow_tags" class="py-name" href="#" onclick="return doclink('link-218', 'allow_tags', 'link-52');">allow_tags</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L391"></a><tt class="py-lineno">391</tt> <tt class="py-line"> <tt class="py-name">bad</tt><tt class="py-op">.</tt><tt id="link-219" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-219', 'append', 'link-192');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
+<a name="L392"></a><tt class="py-lineno">392</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">bad</tt><tt class="py-op">:</tt> </tt>
+<a name="L393"></a><tt class="py-lineno">393</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">bad</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-keyword">is</tt> <tt class="py-name">doc</tt><tt class="py-op">:</tt> </tt>
+<a name="L394"></a><tt class="py-lineno">394</tt> <tt class="py-line"> <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt class="py-name">bad</tt><tt class="py-op">.</tt><tt id="link-220" class="py-name"><a title="lxml.etree._Attrib.pop" class="py-name" href="#" onclick="return doclink('link-220', 'pop', 'link-197');">pop</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L395"></a><tt class="py-lineno">395</tt> <tt class="py-line"> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-221" 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-220', 'tag', 'link-77');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'div'</tt> </tt>
-<a name="L392"></a><tt class="py-lineno">392</tt> <tt class="py-line"> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-221" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-221', 'tag', 'link-77');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'div'</tt> </tt>
+<a name="L396"></a><tt class="py-lineno">396</tt> <tt class="py-line"> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-222" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-221', 'attrib', 'link-97');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-222" class="py-name"><a title="lxml.etree._Attrib.clear
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-222', 'attrib', 'link-97');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-223" class="py-name"><a title="lxml.etree._Attrib.clear
lxml.etree._Element.clear
-lxml.etree._ErrorLog.clear" class="py-name" href="#" onclick="return doclink('link-222', 'clear', 'link-199');">clear</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L393"></a><tt class="py-lineno">393</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">bad</tt><tt class="py-op">:</tt> </tt>
-<a name="L394"></a><tt class="py-lineno">394</tt> <tt class="py-line"> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-223" class="py-name"><a title="lxml.html.HtmlMixin.drop_tag" class="py-name" href="#" onclick="return doclink('link-223', 'drop_tag', 'link-205');">drop_tag</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L395"></a><tt class="py-lineno">395</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-224" class="py-name"><a title="lxml.html.clean.Cleaner.add_nofollow" class="py-name" href="#" onclick="return doclink('link-224', 'add_nofollow', 'link-59');">add_nofollow</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L396"></a><tt class="py-lineno">396</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-225" class="py-name"><a title="lxml.html.clean._find_external_links" class="py-name" href="#" onclick="return doclink('link-225', '_find_external_links', 'link-35');">_find_external_links</a></tt><tt class="py-op">(</tt><tt class="py-name">doc</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L397"></a><tt class="py-lineno">397</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-226" class="py-name" targets="Method lxml.html.clean.Cleaner.allow_follow()=lxml.html.clean.Cleaner-class.html#allow_follow"><a title="lxml.html.clean.Cleaner.allow_follow" class="py-name" href="#" onclick="return doclink('link-226', 'allow_follow', 'link-226');">allow_follow</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="L398"></a><tt class="py-lineno">398</tt> <tt class="py-line"> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-227" class="py-name"><a title="lxml.etree._Element.set
-lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-227', 'set', 'link-62');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'rel'</tt><tt class="py-op">,</tt> <tt class="py-string">'nofollow'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L399"></a><tt class="py-lineno">399</tt> <tt class="py-line"> </tt>
-<a name="Cleaner.allow_follow"></a><div id="Cleaner.allow_follow-def"><a name="L400"></a><tt class="py-lineno">400</tt> <a class="py-toggle" href="#" id="Cleaner.allow_follow-toggle" onclick="return toggle('Cleaner.allow_follow');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean.Cleaner-class.html#allow_follow">allow_follow</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">anchor</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Cleaner.allow_follow-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Cleaner.allow_follow-expanded"><a name="L401"></a><tt class="py-lineno">401</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L402"></a><tt class="py-lineno">402</tt> <tt class="py-line"><tt class="py-docstring"> Override to suppress rel="nofollow" on some anchors.</tt> </tt>
-<a name="L403"></a><tt class="py-lineno">403</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L404"></a><tt class="py-lineno">404</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
-</div><a name="L405"></a><tt class="py-lineno">405</tt> <tt class="py-line"> </tt>
-<a name="Cleaner.allow_element"></a><div id="Cleaner.allow_element-def"><a name="L406"></a><tt class="py-lineno">406</tt> <a class="py-toggle" href="#" id="Cleaner.allow_element-toggle" onclick="return toggle('Cleaner.allow_element');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean.Cleaner-class.html#allow_element">allow_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">el</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Cleaner.allow_element-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Cleaner.allow_element-expanded"><a name="L407"></a><tt class="py-lineno">407</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-228" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.etree._ErrorLog.clear" class="py-name" href="#" onclick="return doclink('link-223', 'clear', 'link-200');">clear</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L397"></a><tt class="py-lineno">397</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">bad</tt><tt class="py-op">:</tt> </tt>
+<a name="L398"></a><tt class="py-lineno">398</tt> <tt class="py-line"> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-224" class="py-name"><a title="lxml.html.HtmlMixin.drop_tag" class="py-name" href="#" onclick="return doclink('link-224', 'drop_tag', 'link-206');">drop_tag</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L399"></a><tt class="py-lineno">399</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-225" class="py-name"><a title="lxml.html.clean.Cleaner.add_nofollow" class="py-name" href="#" onclick="return doclink('link-225', 'add_nofollow', 'link-59');">add_nofollow</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L400"></a><tt class="py-lineno">400</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-226" class="py-name"><a title="lxml.html.clean._find_external_links" class="py-name" href="#" onclick="return doclink('link-226', '_find_external_links', 'link-35');">_find_external_links</a></tt><tt class="py-op">(</tt><tt class="py-name">doc</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L401"></a><tt class="py-lineno">401</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-227" class="py-name" targets="Method lxml.html.clean.Cleaner.allow_follow()=lxml.html.clean.Cleaner-class.html#allow_follow"><a title="lxml.html.clean.Cleaner.allow_follow" class="py-name" href="#" onclick="return doclink('link-227', 'allow_follow', 'link-227');">allow_follow</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="L402"></a><tt class="py-lineno">402</tt> <tt class="py-line"> <tt class="py-name">rel</tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-228" 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-228', 'get', 'link-119');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'rel'</tt><tt class="py-op">)</tt> </tt>
+<a name="L403"></a><tt class="py-lineno">403</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">rel</tt><tt class="py-op">:</tt> </tt>
+<a name="L404"></a><tt class="py-lineno">404</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-string">'nofollow'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">rel</tt> </tt>
+<a name="L405"></a><tt class="py-lineno">405</tt> <tt class="py-line"> <tt class="py-keyword">and</tt> <tt class="py-string">' nofollow '</tt> <tt class="py-keyword">in</tt> <tt class="py-op">(</tt><tt class="py-string">' %s '</tt> <tt class="py-op">%</tt> <tt class="py-name">rel</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L406"></a><tt class="py-lineno">406</tt> <tt class="py-line"> <tt class="py-keyword">continue</tt> </tt>
+<a name="L407"></a><tt class="py-lineno">407</tt> <tt class="py-line"> <tt class="py-name">rel</tt> <tt class="py-op">=</tt> <tt class="py-string">'%s nofollow'</tt> <tt class="py-op">%</tt> <tt class="py-name">rel</tt> </tt>
+<a name="L408"></a><tt class="py-lineno">408</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L409"></a><tt class="py-lineno">409</tt> <tt class="py-line"> <tt class="py-name">rel</tt> <tt class="py-op">=</tt> <tt class="py-string">'nofollow'</tt> </tt>
+<a name="L410"></a><tt class="py-lineno">410</tt> <tt class="py-line"> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-229" class="py-name"><a title="lxml.etree._Element.set
+lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-229', 'set', 'link-62');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'rel'</tt><tt class="py-op">,</tt> <tt class="py-name">rel</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L411"></a><tt class="py-lineno">411</tt> <tt class="py-line"> </tt>
+<a name="Cleaner.allow_follow"></a><div id="Cleaner.allow_follow-def"><a name="L412"></a><tt class="py-lineno">412</tt> <a class="py-toggle" href="#" id="Cleaner.allow_follow-toggle" onclick="return toggle('Cleaner.allow_follow');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean.Cleaner-class.html#allow_follow">allow_follow</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">anchor</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Cleaner.allow_follow-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Cleaner.allow_follow-expanded"><a name="L413"></a><tt class="py-lineno">413</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L414"></a><tt class="py-lineno">414</tt> <tt class="py-line"><tt class="py-docstring"> Override to suppress rel="nofollow" on some anchors.</tt> </tt>
+<a name="L415"></a><tt class="py-lineno">415</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L416"></a><tt class="py-lineno">416</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
+</div><a name="L417"></a><tt class="py-lineno">417</tt> <tt class="py-line"> </tt>
+<a name="Cleaner.allow_element"></a><div id="Cleaner.allow_element-def"><a name="L418"></a><tt class="py-lineno">418</tt> <a class="py-toggle" href="#" id="Cleaner.allow_element-toggle" onclick="return toggle('Cleaner.allow_element');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean.Cleaner-class.html#allow_element">allow_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">el</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Cleaner.allow_element-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Cleaner.allow_element-expanded"><a name="L419"></a><tt class="py-lineno">419</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-230" 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-228', 'tag', 'link-77');">tag</a></tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-229" class="py-name"><a title="lxml.html.clean.Cleaner._tag_link_attrs" class="py-name" href="#" onclick="return doclink('link-229', '_tag_link_attrs', 'link-73');">_tag_link_attrs</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L408"></a><tt class="py-lineno">408</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
-<a name="L409"></a><tt class="py-lineno">409</tt> <tt class="py-line"> <tt class="py-name">attr</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-230" class="py-name"><a title="lxml.html.clean.Cleaner._tag_link_attrs" class="py-name" href="#" onclick="return doclink('link-230', '_tag_link_attrs', 'link-73');">_tag_link_attrs</a></tt><tt class="py-op">[</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-231" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-230', 'tag', 'link-77');">tag</a></tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-231" class="py-name"><a title="lxml.html.clean.Cleaner._tag_link_attrs" class="py-name" href="#" onclick="return doclink('link-231', '_tag_link_attrs', 'link-73');">_tag_link_attrs</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L420"></a><tt class="py-lineno">420</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
+<a name="L421"></a><tt class="py-lineno">421</tt> <tt class="py-line"> <tt class="py-name">attr</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-232" class="py-name"><a title="lxml.html.clean.Cleaner._tag_link_attrs" class="py-name" href="#" onclick="return doclink('link-232', '_tag_link_attrs', 'link-73');">_tag_link_attrs</a></tt><tt class="py-op">[</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-233" 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-231', 'tag', 'link-77');">tag</a></tt><tt class="py-op">]</tt> </tt>
-<a name="L410"></a><tt class="py-lineno">410</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">attr</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">tuple</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L411"></a><tt class="py-lineno">411</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">one_attr</tt> <tt class="py-keyword">in</tt> <tt class="py-name">attr</tt><tt class="py-op">:</tt> </tt>
-<a name="L412"></a><tt class="py-lineno">412</tt> <tt class="py-line"> <tt class="py-name">url</tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-232" class="py-name"><a title="lxml.etree._Attrib.get
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-233', 'tag', 'link-77');">tag</a></tt><tt class="py-op">]</tt> </tt>
+<a name="L422"></a><tt class="py-lineno">422</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">attr</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">tuple</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L423"></a><tt class="py-lineno">423</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">one_attr</tt> <tt class="py-keyword">in</tt> <tt class="py-name">attr</tt><tt class="py-op">:</tt> </tt>
+<a name="L424"></a><tt class="py-lineno">424</tt> <tt class="py-line"> <tt class="py-name">url</tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-234" 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-232', 'get', 'link-119');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">one_attr</tt><tt class="py-op">)</tt> </tt>
-<a name="L413"></a><tt class="py-lineno">413</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">url</tt><tt class="py-op">:</tt> </tt>
-<a name="L414"></a><tt class="py-lineno">414</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
-<a name="L415"></a><tt class="py-lineno">415</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-233" class="py-name" targets="Method lxml.html.clean.Cleaner.allow_embedded_url()=lxml.html.clean.Cleaner-class.html#allow_embedded_url"><a title="lxml.html.clean.Cleaner.allow_embedded_url" class="py-name" href="#" onclick="return doclink('link-233', 'allow_embedded_url', 'link-233');">allow_embedded_url</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">,</tt> <tt class="py-name">url</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L416"></a><tt class="py-lineno">416</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
-<a name="L417"></a><tt class="py-lineno">417</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
-<a name="L418"></a><tt class="py-lineno">418</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L419"></a><tt class="py-lineno">419</tt> <tt class="py-line"> <tt class="py-name">url</tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-234" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-234', 'get', 'link-119');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">one_attr</tt><tt class="py-op">)</tt> </tt>
+<a name="L425"></a><tt class="py-lineno">425</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">url</tt><tt class="py-op">:</tt> </tt>
+<a name="L426"></a><tt class="py-lineno">426</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
+<a name="L427"></a><tt class="py-lineno">427</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-235" class="py-name" targets="Method lxml.html.clean.Cleaner.allow_embedded_url()=lxml.html.clean.Cleaner-class.html#allow_embedded_url"><a title="lxml.html.clean.Cleaner.allow_embedded_url" class="py-name" href="#" onclick="return doclink('link-235', 'allow_embedded_url', 'link-235');">allow_embedded_url</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">,</tt> <tt class="py-name">url</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L428"></a><tt class="py-lineno">428</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
+<a name="L429"></a><tt class="py-lineno">429</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
+<a name="L430"></a><tt class="py-lineno">430</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L431"></a><tt class="py-lineno">431</tt> <tt class="py-line"> <tt class="py-name">url</tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-236" 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-234', 'get', 'link-119');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">attr</tt><tt class="py-op">)</tt> </tt>
-<a name="L420"></a><tt class="py-lineno">420</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">url</tt><tt class="py-op">:</tt> </tt>
-<a name="L421"></a><tt class="py-lineno">421</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
-<a name="L422"></a><tt class="py-lineno">422</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-235" class="py-name"><a title="lxml.html.clean.Cleaner.allow_embedded_url" class="py-name" href="#" onclick="return doclink('link-235', 'allow_embedded_url', 'link-233');">allow_embedded_url</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">,</tt> <tt class="py-name">url</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L423"></a><tt class="py-lineno">423</tt> <tt class="py-line"> </tt>
-<a name="Cleaner.allow_embedded_url"></a><div id="Cleaner.allow_embedded_url-def"><a name="L424"></a><tt class="py-lineno">424</tt> <a class="py-toggle" href="#" id="Cleaner.allow_embedded_url-toggle" onclick="return toggle('Cleaner.allow_embedded_url');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean.Cleaner-class.html#allow_embedded_url">allow_embedded_url</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">el</tt><tt class="py-op">,</tt> <tt class="py-param">url</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Cleaner.allow_embedded_url-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Cleaner.allow_embedded_url-expanded"><a name="L425"></a><tt class="py-lineno">425</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-236" class="py-name"><a title="lxml.html.clean.Cleaner.whitelist_tags" class="py-name" href="#" onclick="return doclink('link-236', 'whitelist_tags', 'link-61');">whitelist_tags</a></tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt> </tt>
-<a name="L426"></a><tt class="py-lineno">426</tt> <tt class="py-line"> <tt class="py-keyword">and</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-237" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-236', 'get', 'link-119');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">attr</tt><tt class="py-op">)</tt> </tt>
+<a name="L432"></a><tt class="py-lineno">432</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">url</tt><tt class="py-op">:</tt> </tt>
+<a name="L433"></a><tt class="py-lineno">433</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
+<a name="L434"></a><tt class="py-lineno">434</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-237" class="py-name"><a title="lxml.html.clean.Cleaner.allow_embedded_url" class="py-name" href="#" onclick="return doclink('link-237', 'allow_embedded_url', 'link-235');">allow_embedded_url</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">,</tt> <tt class="py-name">url</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L435"></a><tt class="py-lineno">435</tt> <tt class="py-line"> </tt>
+<a name="Cleaner.allow_embedded_url"></a><div id="Cleaner.allow_embedded_url-def"><a name="L436"></a><tt class="py-lineno">436</tt> <a class="py-toggle" href="#" id="Cleaner.allow_embedded_url-toggle" onclick="return toggle('Cleaner.allow_embedded_url');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean.Cleaner-class.html#allow_embedded_url">allow_embedded_url</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">el</tt><tt class="py-op">,</tt> <tt class="py-param">url</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Cleaner.allow_embedded_url-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Cleaner.allow_embedded_url-expanded"><a name="L437"></a><tt class="py-lineno">437</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-238" class="py-name"><a title="lxml.html.clean.Cleaner.whitelist_tags" class="py-name" href="#" onclick="return doclink('link-238', 'whitelist_tags', 'link-61');">whitelist_tags</a></tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt> </tt>
+<a name="L438"></a><tt class="py-lineno">438</tt> <tt class="py-line"> <tt class="py-keyword">and</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-239" 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-237', 'tag', 'link-77');">tag</a></tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-238" class="py-name"><a title="lxml.html.clean.Cleaner.whitelist_tags" class="py-name" href="#" onclick="return doclink('link-238', 'whitelist_tags', 'link-61');">whitelist_tags</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L427"></a><tt class="py-lineno">427</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
-<a name="L428"></a><tt class="py-lineno">428</tt> <tt class="py-line"> <tt class="py-name">scheme</tt><tt class="py-op">,</tt> <tt class="py-name">netloc</tt><tt class="py-op">,</tt> <tt id="link-239" class="py-name" targets="Variable lxml.etree.XPath.path=lxml.etree.XPath-class.html#path"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-239', 'path', 'link-239');">path</a></tt><tt class="py-op">,</tt> <tt class="py-name">query</tt><tt class="py-op">,</tt> <tt class="py-name">fragment</tt> <tt class="py-op">=</tt> <tt class="py-name">urlsplit</tt><tt class="py-op">(</tt><tt class="py-name">url</tt><tt class="py-op">)</tt> </tt>
-<a name="L429"></a><tt class="py-lineno">429</tt> <tt class="py-line"> <tt class="py-name">netloc</tt> <tt class="py-op">=</tt> <tt class="py-name">netloc</tt><tt class="py-op">.</tt><tt class="py-name">lower</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">':'</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>
-<a name="L430"></a><tt class="py-lineno">430</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">scheme</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-op">(</tt><tt class="py-string">'http'</tt><tt class="py-op">,</tt> <tt class="py-string">'https'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L431"></a><tt class="py-lineno">431</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
-<a name="L432"></a><tt class="py-lineno">432</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">netloc</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-240" class="py-name"><a title="lxml.html.clean.Cleaner.host_whitelist" class="py-name" href="#" onclick="return doclink('link-240', 'host_whitelist', 'link-60');">host_whitelist</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L433"></a><tt class="py-lineno">433</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
-<a name="L434"></a><tt class="py-lineno">434</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
-</div><a name="L435"></a><tt class="py-lineno">435</tt> <tt class="py-line"> </tt>
-<a name="Cleaner.kill_conditional_comments"></a><div id="Cleaner.kill_conditional_comments-def"><a name="L436"></a><tt class="py-lineno">436</tt> <a class="py-toggle" href="#" id="Cleaner.kill_conditional_comments-toggle" onclick="return toggle('Cleaner.kill_conditional_comments');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean.Cleaner-class.html#kill_conditional_comments">kill_conditional_comments</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">doc</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Cleaner.kill_conditional_comments-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Cleaner.kill_conditional_comments-expanded"><a name="L437"></a><tt class="py-lineno">437</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L438"></a><tt class="py-lineno">438</tt> <tt class="py-line"><tt class="py-docstring"> IE conditional comments basically embed HTML that the parser</tt> </tt>
-<a name="L439"></a><tt class="py-lineno">439</tt> <tt class="py-line"><tt class="py-docstring"> doesn't normally see. We can't allow anything like that, so</tt> </tt>
-<a name="L440"></a><tt class="py-lineno">440</tt> <tt class="py-line"><tt class="py-docstring"> we'll kill any comments that could be conditional.</tt> </tt>
-<a name="L441"></a><tt class="py-lineno">441</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L442"></a><tt class="py-lineno">442</tt> <tt class="py-line"> <tt class="py-name">bad</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L443"></a><tt class="py-lineno">443</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-241" class="py-name" targets="Method lxml.html.clean.Cleaner._kill_elements()=lxml.html.clean.Cleaner-class.html#_kill_elements"><a title="lxml.html.clean.Cleaner._kill_elements" class="py-name" href="#" onclick="return doclink('link-241', '_kill_elements', 'link-241');">_kill_elements</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L444"></a><tt class="py-lineno">444</tt> <tt class="py-line"> <tt class="py-name">doc</tt><tt class="py-op">,</tt> <tt class="py-keyword">lambda</tt> <tt class="py-name">el</tt><tt class="py-op">:</tt> <tt id="link-242" class="py-name"><a title="lxml.html.clean._conditional_comment_re" class="py-name" href="#" onclick="return doclink('link-242', '_conditional_comment_re', 'link-29');">_conditional_comment_re</a></tt><tt class="py-op">.</tt><tt class="py-name">search</tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-243" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-239', 'tag', 'link-77');">tag</a></tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-240" class="py-name"><a title="lxml.html.clean.Cleaner.whitelist_tags" class="py-name" href="#" onclick="return doclink('link-240', 'whitelist_tags', 'link-61');">whitelist_tags</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L439"></a><tt class="py-lineno">439</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
+<a name="L440"></a><tt class="py-lineno">440</tt> <tt class="py-line"> <tt class="py-name">scheme</tt><tt class="py-op">,</tt> <tt class="py-name">netloc</tt><tt class="py-op">,</tt> <tt id="link-241" class="py-name" targets="Variable lxml.etree.XPath.path=lxml.etree.XPath-class.html#path"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-241', 'path', 'link-241');">path</a></tt><tt class="py-op">,</tt> <tt class="py-name">query</tt><tt class="py-op">,</tt> <tt class="py-name">fragment</tt> <tt class="py-op">=</tt> <tt class="py-name">urlsplit</tt><tt class="py-op">(</tt><tt class="py-name">url</tt><tt class="py-op">)</tt> </tt>
+<a name="L441"></a><tt class="py-lineno">441</tt> <tt class="py-line"> <tt class="py-name">netloc</tt> <tt class="py-op">=</tt> <tt class="py-name">netloc</tt><tt class="py-op">.</tt><tt class="py-name">lower</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">':'</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>
+<a name="L442"></a><tt class="py-lineno">442</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">scheme</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-op">(</tt><tt class="py-string">'http'</tt><tt class="py-op">,</tt> <tt class="py-string">'https'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L443"></a><tt class="py-lineno">443</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
+<a name="L444"></a><tt class="py-lineno">444</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">netloc</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-242" class="py-name"><a title="lxml.html.clean.Cleaner.host_whitelist" class="py-name" href="#" onclick="return doclink('link-242', 'host_whitelist', 'link-60');">host_whitelist</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L445"></a><tt class="py-lineno">445</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
+<a name="L446"></a><tt class="py-lineno">446</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
+</div><a name="L447"></a><tt class="py-lineno">447</tt> <tt class="py-line"> </tt>
+<a name="Cleaner.kill_conditional_comments"></a><div id="Cleaner.kill_conditional_comments-def"><a name="L448"></a><tt class="py-lineno">448</tt> <a class="py-toggle" href="#" id="Cleaner.kill_conditional_comments-toggle" onclick="return toggle('Cleaner.kill_conditional_comments');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean.Cleaner-class.html#kill_conditional_comments">kill_conditional_comments</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">doc</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Cleaner.kill_conditional_comments-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Cleaner.kill_conditional_comments-expanded"><a name="L449"></a><tt class="py-lineno">449</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L450"></a><tt class="py-lineno">450</tt> <tt class="py-line"><tt class="py-docstring"> IE conditional comments basically embed HTML that the parser</tt> </tt>
+<a name="L451"></a><tt class="py-lineno">451</tt> <tt class="py-line"><tt class="py-docstring"> doesn't normally see. We can't allow anything like that, so</tt> </tt>
+<a name="L452"></a><tt class="py-lineno">452</tt> <tt class="py-line"><tt class="py-docstring"> we'll kill any comments that could be conditional.</tt> </tt>
+<a name="L453"></a><tt class="py-lineno">453</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L454"></a><tt class="py-lineno">454</tt> <tt class="py-line"> <tt class="py-name">bad</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L455"></a><tt class="py-lineno">455</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-243" class="py-name" targets="Method lxml.html.clean.Cleaner._kill_elements()=lxml.html.clean.Cleaner-class.html#_kill_elements"><a title="lxml.html.clean.Cleaner._kill_elements" class="py-name" href="#" onclick="return doclink('link-243', '_kill_elements', 'link-243');">_kill_elements</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L456"></a><tt class="py-lineno">456</tt> <tt class="py-line"> <tt class="py-name">doc</tt><tt class="py-op">,</tt> <tt class="py-keyword">lambda</tt> <tt class="py-name">el</tt><tt class="py-op">:</tt> <tt id="link-244" class="py-name"><a title="lxml.html.clean._conditional_comment_re" class="py-name" href="#" onclick="return doclink('link-244', '_conditional_comment_re', 'link-29');">_conditional_comment_re</a></tt><tt class="py-op">.</tt><tt class="py-name">search</tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-245" 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-243', 'text', 'link-129');">text</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L445"></a><tt class="py-lineno">445</tt> <tt class="py-line"> <tt id="link-244" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-245', 'text', 'link-129');">text</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L457"></a><tt class="py-lineno">457</tt> <tt class="py-line"> <tt id="link-246" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-244', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-245" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-245', 'Comment', 'link-140');">Comment</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L446"></a><tt class="py-lineno">446</tt> <tt class="py-line"> </tt>
-<a name="Cleaner._kill_elements"></a><div id="Cleaner._kill_elements-def"><a name="L447"></a><tt class="py-lineno">447</tt> <a class="py-toggle" href="#" id="Cleaner._kill_elements-toggle" onclick="return toggle('Cleaner._kill_elements');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean.Cleaner-class.html#_kill_elements">_kill_elements</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">doc</tt><tt class="py-op">,</tt> <tt class="py-param">condition</tt><tt class="py-op">,</tt> <tt class="py-param">iterate</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="Cleaner._kill_elements-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Cleaner._kill_elements-expanded"><a name="L448"></a><tt class="py-lineno">448</tt> <tt class="py-line"> <tt class="py-name">bad</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L449"></a><tt class="py-lineno">449</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">doc</tt><tt class="py-op">.</tt><tt id="link-246" class="py-name"><a title="lxml.etree._Element.iter
-lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-246', 'iter', 'link-76');">iter</a></tt><tt class="py-op">(</tt><tt class="py-name">iterate</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L450"></a><tt class="py-lineno">450</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">condition</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="L451"></a><tt class="py-lineno">451</tt> <tt class="py-line"> <tt class="py-name">bad</tt><tt class="py-op">.</tt><tt id="link-247" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-247', 'append', 'link-191');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
-<a name="L452"></a><tt class="py-lineno">452</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">bad</tt><tt class="py-op">:</tt> </tt>
-<a name="L453"></a><tt class="py-lineno">453</tt> <tt class="py-line"> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-248" class="py-name"><a title="lxml.html.HtmlMixin.drop_tree" class="py-name" href="#" onclick="return doclink('link-248', 'drop_tree', 'link-128');">drop_tree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L454"></a><tt class="py-lineno">454</tt> <tt class="py-line"> </tt>
-<a name="Cleaner._remove_javascript_link"></a><div id="Cleaner._remove_javascript_link-def"><a name="L455"></a><tt class="py-lineno">455</tt> <a class="py-toggle" href="#" id="Cleaner._remove_javascript_link-toggle" onclick="return toggle('Cleaner._remove_javascript_link');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean.Cleaner-class.html#_remove_javascript_link">_remove_javascript_link</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">link</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Cleaner._remove_javascript_link-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Cleaner._remove_javascript_link-expanded"><a name="L456"></a><tt class="py-lineno">456</tt> <tt class="py-line"> <tt class="py-comment"># links like "j a v a s c r i p t:" might be interpreted in IE</tt> </tt>
-<a name="L457"></a><tt class="py-lineno">457</tt> <tt class="py-line"> <tt class="py-name">new</tt> <tt class="py-op">=</tt> <tt id="link-249" class="py-name"><a title="lxml.html.clean._substitute_whitespace" class="py-name" href="#" onclick="return doclink('link-249', '_substitute_whitespace', 'link-28');">_substitute_whitespace</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-name">link</tt><tt class="py-op">)</tt> </tt>
-<a name="L458"></a><tt class="py-lineno">458</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-250" class="py-name"><a title="lxml.html.clean._javascript_scheme_re" class="py-name" href="#" onclick="return doclink('link-250', '_javascript_scheme_re', 'link-26');">_javascript_scheme_re</a></tt><tt class="py-op">.</tt><tt class="py-name">search</tt><tt class="py-op">(</tt><tt class="py-name">new</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L459"></a><tt class="py-lineno">459</tt> <tt class="py-line"> <tt class="py-comment"># FIXME: should this be None to delete?</tt> </tt>
-<a name="L460"></a><tt class="py-lineno">460</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">''</tt> </tt>
-<a name="L461"></a><tt class="py-lineno">461</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">link</tt> </tt>
-</div><a name="L462"></a><tt class="py-lineno">462</tt> <tt class="py-line"> </tt>
-<a name="L463"></a><tt class="py-lineno">463</tt> <tt class="py-line"> <tt id="link-251" class="py-name" targets="Method lxml.html.clean.Cleaner._substitute_comments()=lxml.html.clean.Cleaner-class.html#_substitute_comments"><a title="lxml.html.clean.Cleaner._substitute_comments" class="py-name" href="#" onclick="return doclink('link-251', '_substitute_comments', 'link-251');">_substitute_comments</a></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-string">r'/\*.*?\*/'</tt><tt class="py-op">,</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt id="link-252" class="py-name"><a title="lxml.html.builder.S" class="py-name" href="#" onclick="return doclink('link-252', 'S', 'link-22');">S</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">sub</tt> </tt>
-<a name="L464"></a><tt class="py-lineno">464</tt> <tt class="py-line"> </tt>
-<a name="Cleaner._has_sneaky_javascript"></a><div id="Cleaner._has_sneaky_javascript-def"><a name="L465"></a><tt class="py-lineno">465</tt> <a class="py-toggle" href="#" id="Cleaner._has_sneaky_javascript-toggle" onclick="return toggle('Cleaner._has_sneaky_javascript');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean.Cleaner-class.html#_has_sneaky_javascript">_has_sneaky_javascript</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">style</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Cleaner._has_sneaky_javascript-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Cleaner._has_sneaky_javascript-expanded"><a name="L466"></a><tt class="py-lineno">466</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L467"></a><tt class="py-lineno">467</tt> <tt class="py-line"><tt class="py-docstring"> Depending on the browser, stuff like ``e x p r e s s i o n(...)``</tt> </tt>
-<a name="L468"></a><tt class="py-lineno">468</tt> <tt class="py-line"><tt class="py-docstring"> can get interpreted, or ``expre/* stuff */ssion(...)``. This</tt> </tt>
-<a name="L469"></a><tt class="py-lineno">469</tt> <tt class="py-line"><tt class="py-docstring"> checks for attempt to do stuff like this.</tt> </tt>
-<a name="L470"></a><tt class="py-lineno">470</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L471"></a><tt class="py-lineno">471</tt> <tt class="py-line"><tt class="py-docstring"> Typically the response will be to kill the entire style; if you</tt> </tt>
-<a name="L472"></a><tt class="py-lineno">472</tt> <tt class="py-line"><tt class="py-docstring"> have just a bit of Javascript in the style another rule will catch</tt> </tt>
-<a name="L473"></a><tt class="py-lineno">473</tt> <tt class="py-line"><tt class="py-docstring"> that and remove only the Javascript from the style; this catches</tt> </tt>
-<a name="L474"></a><tt class="py-lineno">474</tt> <tt class="py-line"><tt class="py-docstring"> more sneaky attempts.</tt> </tt>
-<a name="L475"></a><tt class="py-lineno">475</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L476"></a><tt class="py-lineno">476</tt> <tt class="py-line"> <tt id="link-253" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-253', 'style', 'link-42');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-254" class="py-name"><a title="lxml.html.clean.Cleaner._substitute_comments" class="py-name" href="#" onclick="return doclink('link-254', '_substitute_comments', 'link-251');">_substitute_comments</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt id="link-255" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-255', 'style', 'link-42');">style</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L477"></a><tt class="py-lineno">477</tt> <tt class="py-line"> <tt id="link-256" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-256', 'style', 'link-42');">style</a></tt> <tt class="py-op">=</tt> <tt id="link-257" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-257', 'style', 'link-42');">style</a></tt><tt class="py-op">.</tt><tt id="link-258" 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-258', 'replace', 'link-258');">replace</a></tt><tt class="py-op">(</tt><tt class="py-string">'\\'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
-<a name="L478"></a><tt class="py-lineno">478</tt> <tt class="py-line"> <tt id="link-259" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-259', 'style', 'link-42');">style</a></tt> <tt class="py-op">=</tt> <tt id="link-260" class="py-name"><a title="lxml.html.clean._substitute_whitespace" class="py-name" href="#" onclick="return doclink('link-260', '_substitute_whitespace', 'link-28');">_substitute_whitespace</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt id="link-261" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-261', 'style', 'link-42');">style</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L479"></a><tt class="py-lineno">479</tt> <tt class="py-line"> <tt id="link-262" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-262', 'style', 'link-42');">style</a></tt> <tt class="py-op">=</tt> <tt id="link-263" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-263', 'style', 'link-42');">style</a></tt><tt class="py-op">.</tt><tt class="py-name">lower</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L480"></a><tt class="py-lineno">480</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'javascript:'</tt> <tt class="py-keyword">in</tt> <tt id="link-264" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-264', 'style', 'link-42');">style</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L481"></a><tt class="py-lineno">481</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
-<a name="L482"></a><tt class="py-lineno">482</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'expression('</tt> <tt class="py-keyword">in</tt> <tt id="link-265" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-265', 'style', 'link-42');">style</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L483"></a><tt class="py-lineno">483</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
-<a name="L484"></a><tt class="py-lineno">484</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
-</div><a name="L485"></a><tt class="py-lineno">485</tt> <tt class="py-line"> </tt>
-<a name="Cleaner.clean_html"></a><div id="Cleaner.clean_html-def"><a name="L486"></a><tt class="py-lineno">486</tt> <a class="py-toggle" href="#" id="Cleaner.clean_html-toggle" onclick="return toggle('Cleaner.clean_html');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean.Cleaner-class.html#clean_html">clean_html</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">html</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Cleaner.clean_html-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Cleaner.clean_html-expanded"><a name="L487"></a><tt class="py-lineno">487</tt> <tt class="py-line"> <tt class="py-name">result_type</tt> <tt class="py-op">=</tt> <tt id="link-266" class="py-name" targets="Variable lxml.etree._LogEntry.type=lxml.etree._LogEntry-class.html#type,Variable lxml.html.InputElement.type=lxml.html.InputElement-class.html#type"><a title="lxml.etree._LogEntry.type
-lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-266', 'type', 'link-266');">type</a></tt><tt class="py-op">(</tt><tt id="link-267" class="py-name"><a title="lxml.html
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-246', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-247" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-247', 'Comment', 'link-140');">Comment</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L458"></a><tt class="py-lineno">458</tt> <tt class="py-line"> </tt>
+<a name="Cleaner._kill_elements"></a><div id="Cleaner._kill_elements-def"><a name="L459"></a><tt class="py-lineno">459</tt> <a class="py-toggle" href="#" id="Cleaner._kill_elements-toggle" onclick="return toggle('Cleaner._kill_elements');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean.Cleaner-class.html#_kill_elements">_kill_elements</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">doc</tt><tt class="py-op">,</tt> <tt class="py-param">condition</tt><tt class="py-op">,</tt> <tt class="py-param">iterate</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="Cleaner._kill_elements-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Cleaner._kill_elements-expanded"><a name="L460"></a><tt class="py-lineno">460</tt> <tt class="py-line"> <tt class="py-name">bad</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L461"></a><tt class="py-lineno">461</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">doc</tt><tt class="py-op">.</tt><tt id="link-248" class="py-name"><a title="lxml.etree._Element.iter
+lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-248', 'iter', 'link-76');">iter</a></tt><tt class="py-op">(</tt><tt class="py-name">iterate</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L462"></a><tt class="py-lineno">462</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">condition</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="L463"></a><tt class="py-lineno">463</tt> <tt class="py-line"> <tt class="py-name">bad</tt><tt class="py-op">.</tt><tt id="link-249" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-249', 'append', 'link-192');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
+<a name="L464"></a><tt class="py-lineno">464</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">bad</tt><tt class="py-op">:</tt> </tt>
+<a name="L465"></a><tt class="py-lineno">465</tt> <tt class="py-line"> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-250" class="py-name"><a title="lxml.html.HtmlMixin.drop_tree" class="py-name" href="#" onclick="return doclink('link-250', 'drop_tree', 'link-128');">drop_tree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L466"></a><tt class="py-lineno">466</tt> <tt class="py-line"> </tt>
+<a name="Cleaner._remove_javascript_link"></a><div id="Cleaner._remove_javascript_link-def"><a name="L467"></a><tt class="py-lineno">467</tt> <a class="py-toggle" href="#" id="Cleaner._remove_javascript_link-toggle" onclick="return toggle('Cleaner._remove_javascript_link');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean.Cleaner-class.html#_remove_javascript_link">_remove_javascript_link</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">link</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Cleaner._remove_javascript_link-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Cleaner._remove_javascript_link-expanded"><a name="L468"></a><tt class="py-lineno">468</tt> <tt class="py-line"> <tt class="py-comment"># links like "j a v a s c r i p t:" might be interpreted in IE</tt> </tt>
+<a name="L469"></a><tt class="py-lineno">469</tt> <tt class="py-line"> <tt class="py-name">new</tt> <tt class="py-op">=</tt> <tt id="link-251" class="py-name"><a title="lxml.html.clean._substitute_whitespace" class="py-name" href="#" onclick="return doclink('link-251', '_substitute_whitespace', 'link-28');">_substitute_whitespace</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-name">link</tt><tt class="py-op">)</tt> </tt>
+<a name="L470"></a><tt class="py-lineno">470</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-252" class="py-name"><a title="lxml.html.clean._javascript_scheme_re" class="py-name" href="#" onclick="return doclink('link-252', '_javascript_scheme_re', 'link-26');">_javascript_scheme_re</a></tt><tt class="py-op">.</tt><tt class="py-name">search</tt><tt class="py-op">(</tt><tt class="py-name">new</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L471"></a><tt class="py-lineno">471</tt> <tt class="py-line"> <tt class="py-comment"># FIXME: should this be None to delete?</tt> </tt>
+<a name="L472"></a><tt class="py-lineno">472</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">''</tt> </tt>
+<a name="L473"></a><tt class="py-lineno">473</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">link</tt> </tt>
+</div><a name="L474"></a><tt class="py-lineno">474</tt> <tt class="py-line"> </tt>
+<a name="L475"></a><tt class="py-lineno">475</tt> <tt class="py-line"> <tt id="link-253" class="py-name" targets="Method lxml.html.clean.Cleaner._substitute_comments()=lxml.html.clean.Cleaner-class.html#_substitute_comments"><a title="lxml.html.clean.Cleaner._substitute_comments" class="py-name" href="#" onclick="return doclink('link-253', '_substitute_comments', 'link-253');">_substitute_comments</a></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-string">r'/\*.*?\*/'</tt><tt class="py-op">,</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt id="link-254" class="py-name"><a title="lxml.html.builder.S" class="py-name" href="#" onclick="return doclink('link-254', 'S', 'link-22');">S</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">sub</tt> </tt>
+<a name="L476"></a><tt class="py-lineno">476</tt> <tt class="py-line"> </tt>
+<a name="Cleaner._has_sneaky_javascript"></a><div id="Cleaner._has_sneaky_javascript-def"><a name="L477"></a><tt class="py-lineno">477</tt> <a class="py-toggle" href="#" id="Cleaner._has_sneaky_javascript-toggle" onclick="return toggle('Cleaner._has_sneaky_javascript');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean.Cleaner-class.html#_has_sneaky_javascript">_has_sneaky_javascript</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">style</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Cleaner._has_sneaky_javascript-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Cleaner._has_sneaky_javascript-expanded"><a name="L478"></a><tt class="py-lineno">478</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L479"></a><tt class="py-lineno">479</tt> <tt class="py-line"><tt class="py-docstring"> Depending on the browser, stuff like ``e x p r e s s i o n(...)``</tt> </tt>
+<a name="L480"></a><tt class="py-lineno">480</tt> <tt class="py-line"><tt class="py-docstring"> can get interpreted, or ``expre/* stuff */ssion(...)``. This</tt> </tt>
+<a name="L481"></a><tt class="py-lineno">481</tt> <tt class="py-line"><tt class="py-docstring"> checks for attempt to do stuff like this.</tt> </tt>
+<a name="L482"></a><tt class="py-lineno">482</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L483"></a><tt class="py-lineno">483</tt> <tt class="py-line"><tt class="py-docstring"> Typically the response will be to kill the entire style; if you</tt> </tt>
+<a name="L484"></a><tt class="py-lineno">484</tt> <tt class="py-line"><tt class="py-docstring"> have just a bit of Javascript in the style another rule will catch</tt> </tt>
+<a name="L485"></a><tt class="py-lineno">485</tt> <tt class="py-line"><tt class="py-docstring"> that and remove only the Javascript from the style; this catches</tt> </tt>
+<a name="L486"></a><tt class="py-lineno">486</tt> <tt class="py-line"><tt class="py-docstring"> more sneaky attempts.</tt> </tt>
+<a name="L487"></a><tt class="py-lineno">487</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L488"></a><tt class="py-lineno">488</tt> <tt class="py-line"> <tt id="link-255" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-255', 'style', 'link-42');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-256" class="py-name"><a title="lxml.html.clean.Cleaner._substitute_comments" class="py-name" href="#" onclick="return doclink('link-256', '_substitute_comments', 'link-253');">_substitute_comments</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt id="link-257" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-257', 'style', 'link-42');">style</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L489"></a><tt class="py-lineno">489</tt> <tt class="py-line"> <tt id="link-258" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-258', 'style', 'link-42');">style</a></tt> <tt class="py-op">=</tt> <tt id="link-259" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-259', 'style', 'link-42');">style</a></tt><tt class="py-op">.</tt><tt id="link-260" 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-260', 'replace', 'link-260');">replace</a></tt><tt class="py-op">(</tt><tt class="py-string">'\\'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
+<a name="L490"></a><tt class="py-lineno">490</tt> <tt class="py-line"> <tt id="link-261" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-261', 'style', 'link-42');">style</a></tt> <tt class="py-op">=</tt> <tt id="link-262" class="py-name"><a title="lxml.html.clean._substitute_whitespace" class="py-name" href="#" onclick="return doclink('link-262', '_substitute_whitespace', 'link-28');">_substitute_whitespace</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt id="link-263" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-263', 'style', 'link-42');">style</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L491"></a><tt class="py-lineno">491</tt> <tt class="py-line"> <tt id="link-264" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-264', 'style', 'link-42');">style</a></tt> <tt class="py-op">=</tt> <tt id="link-265" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-265', 'style', 'link-42');">style</a></tt><tt class="py-op">.</tt><tt class="py-name">lower</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L492"></a><tt class="py-lineno">492</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'javascript:'</tt> <tt class="py-keyword">in</tt> <tt id="link-266" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-266', 'style', 'link-42');">style</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L493"></a><tt class="py-lineno">493</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
+<a name="L494"></a><tt class="py-lineno">494</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'expression('</tt> <tt class="py-keyword">in</tt> <tt id="link-267" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-267', 'style', 'link-42');">style</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L495"></a><tt class="py-lineno">495</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
+<a name="L496"></a><tt class="py-lineno">496</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
+</div><a name="L497"></a><tt class="py-lineno">497</tt> <tt class="py-line"> </tt>
+<a name="Cleaner.clean_html"></a><div id="Cleaner.clean_html-def"><a name="L498"></a><tt class="py-lineno">498</tt> <a class="py-toggle" href="#" id="Cleaner.clean_html-toggle" onclick="return toggle('Cleaner.clean_html');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean.Cleaner-class.html#clean_html">clean_html</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">html</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Cleaner.clean_html-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Cleaner.clean_html-expanded"><a name="L499"></a><tt class="py-lineno">499</tt> <tt class="py-line"> <tt class="py-name">result_type</tt> <tt class="py-op">=</tt> <tt id="link-268" class="py-name" targets="Variable lxml.etree._LogEntry.type=lxml.etree._LogEntry-class.html#type,Variable lxml.html.InputElement.type=lxml.html.InputElement-class.html#type"><a title="lxml.etree._LogEntry.type
+lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-268', 'type', 'link-268');">type</a></tt><tt class="py-op">(</tt><tt id="link-269" 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-267', 'html', 'link-5');">html</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L488"></a><tt class="py-lineno">488</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-268" class="py-name"><a title="lxml.html
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-269', 'html', 'link-5');">html</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L500"></a><tt class="py-lineno">500</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-270" 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-268', 'html', 'link-5');">html</a></tt><tt class="py-op">,</tt> <tt id="link-269" class="py-name"><a title="lxml.html.basestring
-lxml.html.clean.basestring" class="py-name" href="#" onclick="return doclink('link-269', 'basestring', 'link-18');">basestring</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L489"></a><tt class="py-lineno">489</tt> <tt class="py-line"> <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-270" class="py-name"><a title="lxml.etree.fromstring
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-270', 'html', 'link-5');">html</a></tt><tt class="py-op">,</tt> <tt id="link-271" class="py-name"><a title="lxml.html.basestring
+lxml.html.clean.basestring" class="py-name" href="#" onclick="return doclink('link-271', 'basestring', 'link-18');">basestring</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L501"></a><tt class="py-lineno">501</tt> <tt class="py-line"> <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-272" 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-270', 'fromstring', 'link-9');">fromstring</a></tt><tt class="py-op">(</tt><tt id="link-271" class="py-name"><a title="lxml.html
+lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-272', 'fromstring', 'link-9');">fromstring</a></tt><tt class="py-op">(</tt><tt id="link-273" 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-271', 'html', 'link-5');">html</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L490"></a><tt class="py-lineno">490</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L491"></a><tt class="py-lineno">491</tt> <tt class="py-line"> <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-272" class="py-name"><a title="lxml.etree.PyErrorLog.copy
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-273', 'html', 'link-5');">html</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L502"></a><tt class="py-lineno">502</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L503"></a><tt class="py-lineno">503</tt> <tt class="py-line"> <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-274" 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.etree.iterparse.copy" class="py-name" href="#" onclick="return doclink('link-272', '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-273" class="py-name"><a title="lxml.html
+lxml.etree.iterparse.copy" class="py-name" href="#" onclick="return doclink('link-274', '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-275" 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-273', 'html', 'link-5');">html</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L492"></a><tt class="py-lineno">492</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">(</tt><tt class="py-name">doc</tt><tt class="py-op">)</tt> </tt>
-<a name="L493"></a><tt class="py-lineno">493</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">_transform_result</tt><tt class="py-op">(</tt><tt class="py-name">result_type</tt><tt class="py-op">,</tt> <tt class="py-name">doc</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L494"></a><tt class="py-lineno">494</tt> <tt class="py-line"> </tt>
-<a name="L495"></a><tt class="py-lineno">495</tt> <tt class="py-line"><tt id="link-274" class="py-name" targets="Module lxml.html.clean=lxml.html.clean-module.html,Variable lxml.html.clean.clean=lxml.html.clean-module.html#clean"><a title="lxml.html.clean
-lxml.html.clean.clean" class="py-name" href="#" onclick="return doclink('link-274', 'clean', 'link-274');">clean</a></tt> <tt class="py-op">=</tt> <tt id="link-275" class="py-name" targets="Class lxml.html.clean.Cleaner=lxml.html.clean.Cleaner-class.html"><a title="lxml.html.clean.Cleaner" class="py-name" href="#" onclick="return doclink('link-275', 'Cleaner', 'link-275');">Cleaner</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L496"></a><tt class="py-lineno">496</tt> <tt class="py-line"><tt id="link-276" class="py-name" targets="Method lxml.html.clean.Cleaner.clean_html()=lxml.html.clean.Cleaner-class.html#clean_html,Function lxml.html.clean.clean_html()=lxml.html.clean-module.html#clean_html"><a title="lxml.html.clean.Cleaner.clean_html
-lxml.html.clean.clean_html" class="py-name" href="#" onclick="return doclink('link-276', 'clean_html', 'link-276');">clean_html</a></tt> <tt class="py-op">=</tt> <tt id="link-277" class="py-name"><a title="lxml.html.clean
-lxml.html.clean.clean" class="py-name" href="#" onclick="return doclink('link-277', 'clean', 'link-274');">clean</a></tt><tt class="py-op">.</tt><tt id="link-278" class="py-name"><a title="lxml.html.clean.Cleaner.clean_html
-lxml.html.clean.clean_html" class="py-name" href="#" onclick="return doclink('link-278', 'clean_html', 'link-276');">clean_html</a></tt> </tt>
-<a name="L497"></a><tt class="py-lineno">497</tt> <tt class="py-line"> </tt>
-<a name="L498"></a><tt class="py-lineno">498</tt> <tt class="py-line"><tt class="py-comment">############################################################</tt> </tt>
-<a name="L499"></a><tt class="py-lineno">499</tt> <tt class="py-line"><tt class="py-comment">## Autolinking</tt> </tt>
-<a name="L500"></a><tt class="py-lineno">500</tt> <tt class="py-line"><tt class="py-comment">############################################################</tt> </tt>
-<a name="L501"></a><tt class="py-lineno">501</tt> <tt class="py-line"> </tt>
-<a name="L502"></a><tt class="py-lineno">502</tt> <tt class="py-line"><tt id="link-279" class="py-name" targets="Variable lxml.html.clean._link_regexes=lxml.html.clean-module.html#_link_regexes"><a title="lxml.html.clean._link_regexes" class="py-name" href="#" onclick="return doclink('link-279', '_link_regexes', 'link-279');">_link_regexes</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt> </tt>
-<a name="L503"></a><tt class="py-lineno">503</tt> <tt class="py-line"> <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-string">r'(?P<body>https?://(?P<host>[a-z0-9._-]+)(?:/[/\-_.,a-z0-9%&?;=~]*)?(?:\([/\-_.,a-z0-9%&?;=~]*\))?)'</tt><tt class="py-op">,</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt id="link-280" class="py-name"><a title="lxml.html.builder.I" class="py-name" href="#" onclick="return doclink('link-280', 'I', 'link-23');">I</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L504"></a><tt class="py-lineno">504</tt> <tt class="py-line"> <tt class="py-comment"># This is conservative, but autolinking can be a bit conservative:</tt> </tt>
-<a name="L505"></a><tt class="py-lineno">505</tt> <tt class="py-line"> <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-string">r'mailto:(?P<body>[a-z0-9._-]+@(?P<host>[a-z0-9_._]+[a-z]))'</tt><tt class="py-op">,</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt id="link-281" class="py-name"><a title="lxml.html.builder.I" class="py-name" href="#" onclick="return doclink('link-281', 'I', 'link-23');">I</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L506"></a><tt class="py-lineno">506</tt> <tt class="py-line"> <tt class="py-op">]</tt> </tt>
-<a name="L507"></a><tt class="py-lineno">507</tt> <tt class="py-line"> </tt>
-<a name="L508"></a><tt class="py-lineno">508</tt> <tt class="py-line"><tt id="link-282" class="py-name" targets="Variable lxml.html.clean._avoid_elements=lxml.html.clean-module.html#_avoid_elements"><a title="lxml.html.clean._avoid_elements" class="py-name" href="#" onclick="return doclink('link-282', '_avoid_elements', 'link-282');">_avoid_elements</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-string">'textarea'</tt><tt class="py-op">,</tt> <tt class="py-string">'pre'</tt><tt class="py-op">,</tt> <tt class="py-string">'code'</tt><tt class="py-op">,</tt> <tt class="py-string">'head'</tt><tt class="py-op">,</tt> <tt class="py-string">'select'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">]</tt> </tt>
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-275', 'html', 'link-5');">html</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L504"></a><tt class="py-lineno">504</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">(</tt><tt class="py-name">doc</tt><tt class="py-op">)</tt> </tt>
+<a name="L505"></a><tt class="py-lineno">505</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">_transform_result</tt><tt class="py-op">(</tt><tt class="py-name">result_type</tt><tt class="py-op">,</tt> <tt class="py-name">doc</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L506"></a><tt class="py-lineno">506</tt> <tt class="py-line"> </tt>
+<a name="L507"></a><tt class="py-lineno">507</tt> <tt class="py-line"><tt id="link-276" class="py-name" targets="Module lxml.html.clean=lxml.html.clean-module.html,Variable lxml.html.clean.clean=lxml.html.clean-module.html#clean"><a title="lxml.html.clean
+lxml.html.clean.clean" class="py-name" href="#" onclick="return doclink('link-276', 'clean', 'link-276');">clean</a></tt> <tt class="py-op">=</tt> <tt id="link-277" class="py-name" targets="Class lxml.html.clean.Cleaner=lxml.html.clean.Cleaner-class.html"><a title="lxml.html.clean.Cleaner" class="py-name" href="#" onclick="return doclink('link-277', 'Cleaner', 'link-277');">Cleaner</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L508"></a><tt class="py-lineno">508</tt> <tt class="py-line"><tt id="link-278" class="py-name" targets="Method lxml.html.clean.Cleaner.clean_html()=lxml.html.clean.Cleaner-class.html#clean_html,Function lxml.html.clean.clean_html()=lxml.html.clean-module.html#clean_html"><a title="lxml.html.clean.Cleaner.clean_html
+lxml.html.clean.clean_html" class="py-name" href="#" onclick="return doclink('link-278', 'clean_html', 'link-278');">clean_html</a></tt> <tt class="py-op">=</tt> <tt id="link-279" class="py-name"><a title="lxml.html.clean
+lxml.html.clean.clean" class="py-name" href="#" onclick="return doclink('link-279', 'clean', 'link-276');">clean</a></tt><tt class="py-op">.</tt><tt id="link-280" class="py-name"><a title="lxml.html.clean.Cleaner.clean_html
+lxml.html.clean.clean_html" class="py-name" href="#" onclick="return doclink('link-280', 'clean_html', 'link-278');">clean_html</a></tt> </tt>
<a name="L509"></a><tt class="py-lineno">509</tt> <tt class="py-line"> </tt>
-<a name="L510"></a><tt class="py-lineno">510</tt> <tt class="py-line"><tt id="link-283" class="py-name" targets="Variable lxml.html.clean._avoid_hosts=lxml.html.clean-module.html#_avoid_hosts"><a title="lxml.html.clean._avoid_hosts" class="py-name" href="#" onclick="return doclink('link-283', '_avoid_hosts', 'link-283');">_avoid_hosts</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt> </tt>
-<a name="L511"></a><tt class="py-lineno">511</tt> <tt class="py-line"> <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-string">r'^localhost'</tt><tt class="py-op">,</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt id="link-284" class="py-name"><a title="lxml.html.builder.I" class="py-name" href="#" onclick="return doclink('link-284', 'I', 'link-23');">I</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L512"></a><tt class="py-lineno">512</tt> <tt class="py-line"> <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-string">r'\bexample\.(?:com|org|net)$'</tt><tt class="py-op">,</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt id="link-285" class="py-name"><a title="lxml.html.builder.I" class="py-name" href="#" onclick="return doclink('link-285', 'I', 'link-23');">I</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L513"></a><tt class="py-lineno">513</tt> <tt class="py-line"> <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-string">r'^127\.0\.0\.1$'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L514"></a><tt class="py-lineno">514</tt> <tt class="py-line"> <tt class="py-op">]</tt> </tt>
-<a name="L515"></a><tt class="py-lineno">515</tt> <tt class="py-line"> </tt>
-<a name="L516"></a><tt class="py-lineno">516</tt> <tt class="py-line"><tt id="link-286" class="py-name" targets="Variable lxml.html.clean._avoid_classes=lxml.html.clean-module.html#_avoid_classes"><a title="lxml.html.clean._avoid_classes" class="py-name" href="#" onclick="return doclink('link-286', '_avoid_classes', 'link-286');">_avoid_classes</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-string">'nolink'</tt><tt class="py-op">]</tt> </tt>
-<a name="L517"></a><tt class="py-lineno">517</tt> <tt class="py-line"> </tt>
-<a name="autolink"></a><div id="autolink-def"><a name="L518"></a><tt class="py-lineno">518</tt> <a class="py-toggle" href="#" id="autolink-toggle" onclick="return toggle('autolink');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean-module.html#autolink">autolink</a><tt class="py-op">(</tt><tt class="py-param">el</tt><tt class="py-op">,</tt> <tt class="py-param">link_regexes</tt><tt class="py-op">=</tt><tt id="link-287" class="py-name"><a title="lxml.html.clean._link_regexes" class="py-name" href="#" onclick="return doclink('link-287', '_link_regexes', 'link-279');">_link_regexes</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L519"></a><tt class="py-lineno">519</tt> <tt class="py-line"> <tt class="py-param">avoid_elements</tt><tt class="py-op">=</tt><tt id="link-288" class="py-name"><a title="lxml.html.clean._avoid_elements" class="py-name" href="#" onclick="return doclink('link-288', '_avoid_elements', 'link-282');">_avoid_elements</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L520"></a><tt class="py-lineno">520</tt> <tt class="py-line"> <tt class="py-param">avoid_hosts</tt><tt class="py-op">=</tt><tt id="link-289" class="py-name"><a title="lxml.html.clean._avoid_hosts" class="py-name" href="#" onclick="return doclink('link-289', '_avoid_hosts', 'link-283');">_avoid_hosts</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L521"></a><tt class="py-lineno">521</tt> <tt class="py-line"> <tt class="py-param">avoid_classes</tt><tt class="py-op">=</tt><tt id="link-290" class="py-name"><a title="lxml.html.clean._avoid_classes" class="py-name" href="#" onclick="return doclink('link-290', '_avoid_classes', 'link-286');">_avoid_classes</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="autolink-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="autolink-expanded"><a name="L522"></a><tt class="py-lineno">522</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L523"></a><tt class="py-lineno">523</tt> <tt class="py-line"><tt class="py-docstring"> Turn any URLs into links.</tt> </tt>
-<a name="L524"></a><tt class="py-lineno">524</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L525"></a><tt class="py-lineno">525</tt> <tt class="py-line"><tt class="py-docstring"> It will search for links identified by the given regular</tt> </tt>
-<a name="L526"></a><tt class="py-lineno">526</tt> <tt class="py-line"><tt class="py-docstring"> expressions (by default mailto and http(s) links).</tt> </tt>
-<a name="L527"></a><tt class="py-lineno">527</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L528"></a><tt class="py-lineno">528</tt> <tt class="py-line"><tt class="py-docstring"> It won't link text in an element in avoid_elements, or an element</tt> </tt>
-<a name="L529"></a><tt class="py-lineno">529</tt> <tt class="py-line"><tt class="py-docstring"> with a class in avoid_classes. It won't link to anything with a</tt> </tt>
-<a name="L530"></a><tt class="py-lineno">530</tt> <tt class="py-line"><tt class="py-docstring"> host that matches one of the regular expressions in avoid_hosts</tt> </tt>
-<a name="L531"></a><tt class="py-lineno">531</tt> <tt class="py-line"><tt class="py-docstring"> (default localhost and 127.0.0.1).</tt> </tt>
-<a name="L532"></a><tt class="py-lineno">532</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L533"></a><tt class="py-lineno">533</tt> <tt class="py-line"><tt class="py-docstring"> If you pass in an element, the element's tail will not be</tt> </tt>
-<a name="L534"></a><tt class="py-lineno">534</tt> <tt class="py-line"><tt class="py-docstring"> substituted, only the contents of the element.</tt> </tt>
-<a name="L535"></a><tt class="py-lineno">535</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L536"></a><tt class="py-lineno">536</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-291" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L510"></a><tt class="py-lineno">510</tt> <tt class="py-line"><tt class="py-comment">############################################################</tt> </tt>
+<a name="L511"></a><tt class="py-lineno">511</tt> <tt class="py-line"><tt class="py-comment">## Autolinking</tt> </tt>
+<a name="L512"></a><tt class="py-lineno">512</tt> <tt class="py-line"><tt class="py-comment">############################################################</tt> </tt>
+<a name="L513"></a><tt class="py-lineno">513</tt> <tt class="py-line"> </tt>
+<a name="L514"></a><tt class="py-lineno">514</tt> <tt class="py-line"><tt id="link-281" class="py-name" targets="Variable lxml.html.clean._link_regexes=lxml.html.clean-module.html#_link_regexes"><a title="lxml.html.clean._link_regexes" class="py-name" href="#" onclick="return doclink('link-281', '_link_regexes', 'link-281');">_link_regexes</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt> </tt>
+<a name="L515"></a><tt class="py-lineno">515</tt> <tt class="py-line"> <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-string">r'(?P<body>https?://(?P<host>[a-z0-9._-]+)(?:/[/\-_.,a-z0-9%&?;=~]*)?(?:\([/\-_.,a-z0-9%&?;=~]*\))?)'</tt><tt class="py-op">,</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt id="link-282" class="py-name"><a title="lxml.html.builder.I" class="py-name" href="#" onclick="return doclink('link-282', 'I', 'link-23');">I</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L516"></a><tt class="py-lineno">516</tt> <tt class="py-line"> <tt class="py-comment"># This is conservative, but autolinking can be a bit conservative:</tt> </tt>
+<a name="L517"></a><tt class="py-lineno">517</tt> <tt class="py-line"> <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-string">r'mailto:(?P<body>[a-z0-9._-]+@(?P<host>[a-z0-9_._]+[a-z]))'</tt><tt class="py-op">,</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt id="link-283" class="py-name"><a title="lxml.html.builder.I" class="py-name" href="#" onclick="return doclink('link-283', 'I', 'link-23');">I</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L518"></a><tt class="py-lineno">518</tt> <tt class="py-line"> <tt class="py-op">]</tt> </tt>
+<a name="L519"></a><tt class="py-lineno">519</tt> <tt class="py-line"> </tt>
+<a name="L520"></a><tt class="py-lineno">520</tt> <tt class="py-line"><tt id="link-284" class="py-name" targets="Variable lxml.html.clean._avoid_elements=lxml.html.clean-module.html#_avoid_elements"><a title="lxml.html.clean._avoid_elements" class="py-name" href="#" onclick="return doclink('link-284', '_avoid_elements', 'link-284');">_avoid_elements</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-string">'textarea'</tt><tt class="py-op">,</tt> <tt class="py-string">'pre'</tt><tt class="py-op">,</tt> <tt class="py-string">'code'</tt><tt class="py-op">,</tt> <tt class="py-string">'head'</tt><tt class="py-op">,</tt> <tt class="py-string">'select'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">]</tt> </tt>
+<a name="L521"></a><tt class="py-lineno">521</tt> <tt class="py-line"> </tt>
+<a name="L522"></a><tt class="py-lineno">522</tt> <tt class="py-line"><tt id="link-285" class="py-name" targets="Variable lxml.html.clean._avoid_hosts=lxml.html.clean-module.html#_avoid_hosts"><a title="lxml.html.clean._avoid_hosts" class="py-name" href="#" onclick="return doclink('link-285', '_avoid_hosts', 'link-285');">_avoid_hosts</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt> </tt>
+<a name="L523"></a><tt class="py-lineno">523</tt> <tt class="py-line"> <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-string">r'^localhost'</tt><tt class="py-op">,</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt id="link-286" class="py-name"><a title="lxml.html.builder.I" class="py-name" href="#" onclick="return doclink('link-286', 'I', 'link-23');">I</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L524"></a><tt class="py-lineno">524</tt> <tt class="py-line"> <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-string">r'\bexample\.(?:com|org|net)$'</tt><tt class="py-op">,</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt id="link-287" class="py-name"><a title="lxml.html.builder.I" class="py-name" href="#" onclick="return doclink('link-287', 'I', 'link-23');">I</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L525"></a><tt class="py-lineno">525</tt> <tt class="py-line"> <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-string">r'^127\.0\.0\.1$'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L526"></a><tt class="py-lineno">526</tt> <tt class="py-line"> <tt class="py-op">]</tt> </tt>
+<a name="L527"></a><tt class="py-lineno">527</tt> <tt class="py-line"> </tt>
+<a name="L528"></a><tt class="py-lineno">528</tt> <tt class="py-line"><tt id="link-288" class="py-name" targets="Variable lxml.html.clean._avoid_classes=lxml.html.clean-module.html#_avoid_classes"><a title="lxml.html.clean._avoid_classes" class="py-name" href="#" onclick="return doclink('link-288', '_avoid_classes', 'link-288');">_avoid_classes</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-string">'nolink'</tt><tt class="py-op">]</tt> </tt>
+<a name="L529"></a><tt class="py-lineno">529</tt> <tt class="py-line"> </tt>
+<a name="autolink"></a><div id="autolink-def"><a name="L530"></a><tt class="py-lineno">530</tt> <a class="py-toggle" href="#" id="autolink-toggle" onclick="return toggle('autolink');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean-module.html#autolink">autolink</a><tt class="py-op">(</tt><tt class="py-param">el</tt><tt class="py-op">,</tt> <tt class="py-param">link_regexes</tt><tt class="py-op">=</tt><tt id="link-289" class="py-name"><a title="lxml.html.clean._link_regexes" class="py-name" href="#" onclick="return doclink('link-289', '_link_regexes', 'link-281');">_link_regexes</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L531"></a><tt class="py-lineno">531</tt> <tt class="py-line"> <tt class="py-param">avoid_elements</tt><tt class="py-op">=</tt><tt id="link-290" class="py-name"><a title="lxml.html.clean._avoid_elements" class="py-name" href="#" onclick="return doclink('link-290', '_avoid_elements', 'link-284');">_avoid_elements</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L532"></a><tt class="py-lineno">532</tt> <tt class="py-line"> <tt class="py-param">avoid_hosts</tt><tt class="py-op">=</tt><tt id="link-291" class="py-name"><a title="lxml.html.clean._avoid_hosts" class="py-name" href="#" onclick="return doclink('link-291', '_avoid_hosts', 'link-285');">_avoid_hosts</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L533"></a><tt class="py-lineno">533</tt> <tt class="py-line"> <tt class="py-param">avoid_classes</tt><tt class="py-op">=</tt><tt id="link-292" class="py-name"><a title="lxml.html.clean._avoid_classes" class="py-name" href="#" onclick="return doclink('link-292', '_avoid_classes', 'link-288');">_avoid_classes</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="autolink-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="autolink-expanded"><a name="L534"></a><tt class="py-lineno">534</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L535"></a><tt class="py-lineno">535</tt> <tt class="py-line"><tt class="py-docstring"> Turn any URLs into links.</tt> </tt>
+<a name="L536"></a><tt class="py-lineno">536</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L537"></a><tt class="py-lineno">537</tt> <tt class="py-line"><tt class="py-docstring"> It will search for links identified by the given regular</tt> </tt>
+<a name="L538"></a><tt class="py-lineno">538</tt> <tt class="py-line"><tt class="py-docstring"> expressions (by default mailto and http(s) links).</tt> </tt>
+<a name="L539"></a><tt class="py-lineno">539</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L540"></a><tt class="py-lineno">540</tt> <tt class="py-line"><tt class="py-docstring"> It won't link text in an element in avoid_elements, or an element</tt> </tt>
+<a name="L541"></a><tt class="py-lineno">541</tt> <tt class="py-line"><tt class="py-docstring"> with a class in avoid_classes. It won't link to anything with a</tt> </tt>
+<a name="L542"></a><tt class="py-lineno">542</tt> <tt class="py-line"><tt class="py-docstring"> host that matches one of the regular expressions in avoid_hosts</tt> </tt>
+<a name="L543"></a><tt class="py-lineno">543</tt> <tt class="py-line"><tt class="py-docstring"> (default localhost and 127.0.0.1).</tt> </tt>
+<a name="L544"></a><tt class="py-lineno">544</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L545"></a><tt class="py-lineno">545</tt> <tt class="py-line"><tt class="py-docstring"> If you pass in an element, the element's tail will not be</tt> </tt>
+<a name="L546"></a><tt class="py-lineno">546</tt> <tt class="py-line"><tt class="py-docstring"> substituted, only the contents of the element.</tt> </tt>
+<a name="L547"></a><tt class="py-lineno">547</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L548"></a><tt class="py-lineno">548</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-293" 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-291', 'tag', 'link-77');">tag</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">avoid_elements</tt><tt class="py-op">:</tt> </tt>
-<a name="L537"></a><tt class="py-lineno">537</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L538"></a><tt class="py-lineno">538</tt> <tt class="py-line"> <tt class="py-name">class_name</tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-292" class="py-name"><a title="lxml.etree._Attrib.get
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-293', 'tag', 'link-77');">tag</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">avoid_elements</tt><tt class="py-op">:</tt> </tt>
+<a name="L549"></a><tt class="py-lineno">549</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L550"></a><tt class="py-lineno">550</tt> <tt class="py-line"> <tt class="py-name">class_name</tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-294" 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-292', 'get', 'link-119');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'class'</tt><tt class="py-op">)</tt> </tt>
-<a name="L539"></a><tt class="py-lineno">539</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">class_name</tt><tt class="py-op">:</tt> </tt>
-<a name="L540"></a><tt class="py-lineno">540</tt> <tt class="py-line"> <tt class="py-name">class_name</tt> <tt class="py-op">=</tt> <tt class="py-name">class_name</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L541"></a><tt class="py-lineno">541</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">match_class</tt> <tt class="py-keyword">in</tt> <tt class="py-name">avoid_classes</tt><tt class="py-op">:</tt> </tt>
-<a name="L542"></a><tt class="py-lineno">542</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">match_class</tt> <tt class="py-keyword">in</tt> <tt class="py-name">class_name</tt><tt class="py-op">:</tt> </tt>
-<a name="L543"></a><tt class="py-lineno">543</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L544"></a><tt class="py-lineno">544</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">list</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="L545"></a><tt class="py-lineno">545</tt> <tt class="py-line"> <tt id="link-293" class="py-name" targets="Function lxml.html.clean.autolink()=lxml.html.clean-module.html#autolink"><a title="lxml.html.clean.autolink" class="py-name" href="#" onclick="return doclink('link-293', 'autolink', 'link-293');">autolink</a></tt><tt class="py-op">(</tt><tt class="py-name">child</tt><tt class="py-op">,</tt> <tt class="py-name">link_regexes</tt><tt class="py-op">=</tt><tt class="py-name">link_regexes</tt><tt class="py-op">,</tt> </tt>
-<a name="L546"></a><tt class="py-lineno">546</tt> <tt class="py-line"> <tt class="py-name">avoid_elements</tt><tt class="py-op">=</tt><tt class="py-name">avoid_elements</tt><tt class="py-op">,</tt> </tt>
-<a name="L547"></a><tt class="py-lineno">547</tt> <tt class="py-line"> <tt class="py-name">avoid_hosts</tt><tt class="py-op">=</tt><tt class="py-name">avoid_hosts</tt><tt class="py-op">,</tt> </tt>
-<a name="L548"></a><tt class="py-lineno">548</tt> <tt class="py-line"> <tt class="py-name">avoid_classes</tt><tt class="py-op">=</tt><tt class="py-name">avoid_classes</tt><tt class="py-op">)</tt> </tt>
-<a name="L549"></a><tt class="py-lineno">549</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-294" class="py-name" targets="Variable lxml.etree._Element.tail=lxml.etree._Element-class.html#tail,Variable xml.etree.ElementTree.Element.tail=xml.etree.ElementTree.Element-class.html#tail"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-294', 'tail', 'link-294');">tail</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L550"></a><tt class="py-lineno">550</tt> <tt class="py-line"> <tt id="link-295" class="py-name"><a title="lxml.etree.QName.text
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-294', 'get', 'link-119');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'class'</tt><tt class="py-op">)</tt> </tt>
+<a name="L551"></a><tt class="py-lineno">551</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">class_name</tt><tt class="py-op">:</tt> </tt>
+<a name="L552"></a><tt class="py-lineno">552</tt> <tt class="py-line"> <tt class="py-name">class_name</tt> <tt class="py-op">=</tt> <tt class="py-name">class_name</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L553"></a><tt class="py-lineno">553</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">match_class</tt> <tt class="py-keyword">in</tt> <tt class="py-name">avoid_classes</tt><tt class="py-op">:</tt> </tt>
+<a name="L554"></a><tt class="py-lineno">554</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">match_class</tt> <tt class="py-keyword">in</tt> <tt class="py-name">class_name</tt><tt class="py-op">:</tt> </tt>
+<a name="L555"></a><tt class="py-lineno">555</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L556"></a><tt class="py-lineno">556</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">list</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="L557"></a><tt class="py-lineno">557</tt> <tt class="py-line"> <tt id="link-295" class="py-name" targets="Function lxml.html.clean.autolink()=lxml.html.clean-module.html#autolink"><a title="lxml.html.clean.autolink" class="py-name" href="#" onclick="return doclink('link-295', 'autolink', 'link-295');">autolink</a></tt><tt class="py-op">(</tt><tt class="py-name">child</tt><tt class="py-op">,</tt> <tt class="py-name">link_regexes</tt><tt class="py-op">=</tt><tt class="py-name">link_regexes</tt><tt class="py-op">,</tt> </tt>
+<a name="L558"></a><tt class="py-lineno">558</tt> <tt class="py-line"> <tt class="py-name">avoid_elements</tt><tt class="py-op">=</tt><tt class="py-name">avoid_elements</tt><tt class="py-op">,</tt> </tt>
+<a name="L559"></a><tt class="py-lineno">559</tt> <tt class="py-line"> <tt class="py-name">avoid_hosts</tt><tt class="py-op">=</tt><tt class="py-name">avoid_hosts</tt><tt class="py-op">,</tt> </tt>
+<a name="L560"></a><tt class="py-lineno">560</tt> <tt class="py-line"> <tt class="py-name">avoid_classes</tt><tt class="py-op">=</tt><tt class="py-name">avoid_classes</tt><tt class="py-op">)</tt> </tt>
+<a name="L561"></a><tt class="py-lineno">561</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-296" class="py-name" targets="Variable lxml.etree._Element.tail=lxml.etree._Element-class.html#tail,Variable xml.etree.ElementTree.Element.tail=xml.etree.ElementTree.Element-class.html#tail"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-296', 'tail', 'link-296');">tail</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L562"></a><tt class="py-lineno">562</tt> <tt class="py-line"> <tt id="link-297" 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-295', 'text', 'link-129');">text</a></tt><tt class="py-op">,</tt> <tt class="py-name">tail_children</tt> <tt class="py-op">=</tt> <tt id="link-296" class="py-name" targets="Function lxml.html.clean._link_text()=lxml.html.clean-module.html#_link_text"><a title="lxml.html.clean._link_text" class="py-name" href="#" onclick="return doclink('link-296', '_link_text', 'link-296');">_link_text</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L551"></a><tt class="py-lineno">551</tt> <tt class="py-line"> <tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-297" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-297', 'tail', 'link-294');">tail</a></tt><tt class="py-op">,</tt> <tt class="py-name">link_regexes</tt><tt class="py-op">,</tt> <tt class="py-name">avoid_hosts</tt><tt class="py-op">,</tt> <tt class="py-name">factory</tt><tt class="py-op">=</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-298" class="py-name" targets="Method lxml.etree._Element.makeelement()=lxml.etree._Element-class.html#makeelement"><a title="lxml.etree._Element.makeelement" class="py-name" href="#" onclick="return doclink('link-298', 'makeelement', 'link-298');">makeelement</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L552"></a><tt class="py-lineno">552</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">tail_children</tt><tt class="py-op">:</tt> </tt>
-<a name="L553"></a><tt class="py-lineno">553</tt> <tt class="py-line"> <tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-299" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-299', 'tail', 'link-294');">tail</a></tt> <tt class="py-op">=</tt> <tt id="link-300" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-297', 'text', 'link-129');">text</a></tt><tt class="py-op">,</tt> <tt class="py-name">tail_children</tt> <tt class="py-op">=</tt> <tt id="link-298" class="py-name" targets="Function lxml.html.clean._link_text()=lxml.html.clean-module.html#_link_text"><a title="lxml.html.clean._link_text" class="py-name" href="#" onclick="return doclink('link-298', '_link_text', 'link-298');">_link_text</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L563"></a><tt class="py-lineno">563</tt> <tt class="py-line"> <tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-299" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-299', 'tail', 'link-296');">tail</a></tt><tt class="py-op">,</tt> <tt class="py-name">link_regexes</tt><tt class="py-op">,</tt> <tt class="py-name">avoid_hosts</tt><tt class="py-op">,</tt> <tt class="py-name">factory</tt><tt class="py-op">=</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-300" class="py-name" targets="Method lxml.etree._Element.makeelement()=lxml.etree._Element-class.html#makeelement"><a title="lxml.etree._Element.makeelement" class="py-name" href="#" onclick="return doclink('link-300', 'makeelement', 'link-300');">makeelement</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L564"></a><tt class="py-lineno">564</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">tail_children</tt><tt class="py-op">:</tt> </tt>
+<a name="L565"></a><tt class="py-lineno">565</tt> <tt class="py-line"> <tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-301" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-301', 'tail', 'link-296');">tail</a></tt> <tt class="py-op">=</tt> <tt id="link-302" 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-300', 'text', 'link-129');">text</a></tt> </tt>
-<a name="L554"></a><tt class="py-lineno">554</tt> <tt class="py-line"> <tt id="link-301" class="py-name" targets="Method lxml.etree._Element.index()=lxml.etree._Element-class.html#index"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-301', 'index', 'link-301');">index</a></tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-302" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-302', 'index', 'link-301');">index</a></tt><tt class="py-op">(</tt><tt class="py-name">child</tt><tt class="py-op">)</tt> </tt>
-<a name="L555"></a><tt class="py-lineno">555</tt> <tt class="py-line"> <tt class="py-name">el</tt><tt class="py-op">[</tt><tt id="link-303" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-303', 'index', 'link-301');">index</a></tt><tt class="py-op">+</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt id="link-304" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-304', 'index', 'link-301');">index</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">tail_children</tt> </tt>
-<a name="L556"></a><tt class="py-lineno">556</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-305" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-302', 'text', 'link-129');">text</a></tt> </tt>
+<a name="L566"></a><tt class="py-lineno">566</tt> <tt class="py-line"> <tt id="link-303" class="py-name" targets="Method lxml.etree._Element.index()=lxml.etree._Element-class.html#index"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-303', 'index', 'link-303');">index</a></tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-304" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-304', 'index', 'link-303');">index</a></tt><tt class="py-op">(</tt><tt class="py-name">child</tt><tt class="py-op">)</tt> </tt>
+<a name="L567"></a><tt class="py-lineno">567</tt> <tt class="py-line"> <tt class="py-name">el</tt><tt class="py-op">[</tt><tt id="link-305" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-305', 'index', 'link-303');">index</a></tt><tt class="py-op">+</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt id="link-306" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-306', 'index', 'link-303');">index</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">tail_children</tt> </tt>
+<a name="L568"></a><tt class="py-lineno">568</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-307" 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-305', 'text', 'link-129');">text</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L557"></a><tt class="py-lineno">557</tt> <tt class="py-line"> <tt id="link-306" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-307', 'text', 'link-129');">text</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L569"></a><tt class="py-lineno">569</tt> <tt class="py-line"> <tt id="link-308" 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-306', 'text', 'link-129');">text</a></tt><tt class="py-op">,</tt> <tt class="py-name">pre_children</tt> <tt class="py-op">=</tt> <tt id="link-307" class="py-name"><a title="lxml.html.clean._link_text" class="py-name" href="#" onclick="return doclink('link-307', '_link_text', 'link-296');">_link_text</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L558"></a><tt class="py-lineno">558</tt> <tt class="py-line"> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-308" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-308', 'text', 'link-129');">text</a></tt><tt class="py-op">,</tt> <tt class="py-name">pre_children</tt> <tt class="py-op">=</tt> <tt id="link-309" class="py-name"><a title="lxml.html.clean._link_text" class="py-name" href="#" onclick="return doclink('link-309', '_link_text', 'link-298');">_link_text</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L570"></a><tt class="py-lineno">570</tt> <tt class="py-line"> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-310" 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-308', 'text', 'link-129');">text</a></tt><tt class="py-op">,</tt> <tt class="py-name">link_regexes</tt><tt class="py-op">,</tt> <tt class="py-name">avoid_hosts</tt><tt class="py-op">,</tt> <tt class="py-name">factory</tt><tt class="py-op">=</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-309" class="py-name"><a title="lxml.etree._Element.makeelement" class="py-name" href="#" onclick="return doclink('link-309', 'makeelement', 'link-298');">makeelement</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L559"></a><tt class="py-lineno">559</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">pre_children</tt><tt class="py-op">:</tt> </tt>
-<a name="L560"></a><tt class="py-lineno">560</tt> <tt class="py-line"> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-310" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-310', 'text', 'link-129');">text</a></tt><tt class="py-op">,</tt> <tt class="py-name">link_regexes</tt><tt class="py-op">,</tt> <tt class="py-name">avoid_hosts</tt><tt class="py-op">,</tt> <tt class="py-name">factory</tt><tt class="py-op">=</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-311" class="py-name"><a title="lxml.etree._Element.makeelement" class="py-name" href="#" onclick="return doclink('link-311', 'makeelement', 'link-300');">makeelement</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L571"></a><tt class="py-lineno">571</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">pre_children</tt><tt class="py-op">:</tt> </tt>
+<a name="L572"></a><tt class="py-lineno">572</tt> <tt class="py-line"> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-312" 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-310', 'text', 'link-129');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-311" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-312', 'text', 'link-129');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-313" 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-311', 'text', 'link-129');">text</a></tt> </tt>
-<a name="L561"></a><tt class="py-lineno">561</tt> <tt class="py-line"> <tt class="py-name">el</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">pre_children</tt> </tt>
-</div><a name="L562"></a><tt class="py-lineno">562</tt> <tt class="py-line"> </tt>
-<a name="_link_text"></a><div id="_link_text-def"><a name="L563"></a><tt class="py-lineno">563</tt> <a class="py-toggle" href="#" id="_link_text-toggle" onclick="return toggle('_link_text');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean-module.html#_link_text">_link_text</a><tt class="py-op">(</tt><tt class="py-param">text</tt><tt class="py-op">,</tt> <tt class="py-param">link_regexes</tt><tt class="py-op">,</tt> <tt class="py-param">avoid_hosts</tt><tt class="py-op">,</tt> <tt class="py-param">factory</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_link_text-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_link_text-expanded"><a name="L564"></a><tt class="py-lineno">564</tt> <tt class="py-line"> <tt class="py-name">leading_text</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
-<a name="L565"></a><tt class="py-lineno">565</tt> <tt class="py-line"> <tt id="link-312" class="py-name"><a title="lxml.html.clean.Cleaner.links" class="py-name" href="#" onclick="return doclink('link-312', 'links', 'link-43');">links</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L566"></a><tt class="py-lineno">566</tt> <tt class="py-line"> <tt class="py-name">last_pos</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
-<a name="L567"></a><tt class="py-lineno">567</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
-<a name="L568"></a><tt class="py-lineno">568</tt> <tt class="py-line"> <tt class="py-name">best_match</tt><tt class="py-op">,</tt> <tt class="py-name">best_pos</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt> </tt>
-<a name="L569"></a><tt class="py-lineno">569</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">regex</tt> <tt class="py-keyword">in</tt> <tt class="py-name">link_regexes</tt><tt class="py-op">:</tt> </tt>
-<a name="L570"></a><tt class="py-lineno">570</tt> <tt class="py-line"> <tt class="py-name">regex_pos</tt> <tt class="py-op">=</tt> <tt class="py-name">last_pos</tt> </tt>
-<a name="L571"></a><tt class="py-lineno">571</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
-<a name="L572"></a><tt class="py-lineno">572</tt> <tt class="py-line"> <tt class="py-name">match</tt> <tt class="py-op">=</tt> <tt class="py-name">regex</tt><tt class="py-op">.</tt><tt class="py-name">search</tt><tt class="py-op">(</tt><tt id="link-313" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-313', 'text', 'link-129');">text</a></tt> </tt>
+<a name="L573"></a><tt class="py-lineno">573</tt> <tt class="py-line"> <tt class="py-name">el</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">pre_children</tt> </tt>
+</div><a name="L574"></a><tt class="py-lineno">574</tt> <tt class="py-line"> </tt>
+<a name="_link_text"></a><div id="_link_text-def"><a name="L575"></a><tt class="py-lineno">575</tt> <a class="py-toggle" href="#" id="_link_text-toggle" onclick="return toggle('_link_text');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean-module.html#_link_text">_link_text</a><tt class="py-op">(</tt><tt class="py-param">text</tt><tt class="py-op">,</tt> <tt class="py-param">link_regexes</tt><tt class="py-op">,</tt> <tt class="py-param">avoid_hosts</tt><tt class="py-op">,</tt> <tt class="py-param">factory</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_link_text-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_link_text-expanded"><a name="L576"></a><tt class="py-lineno">576</tt> <tt class="py-line"> <tt class="py-name">leading_text</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
+<a name="L577"></a><tt class="py-lineno">577</tt> <tt class="py-line"> <tt id="link-314" class="py-name"><a title="lxml.html.clean.Cleaner.links" class="py-name" href="#" onclick="return doclink('link-314', 'links', 'link-43');">links</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L578"></a><tt class="py-lineno">578</tt> <tt class="py-line"> <tt class="py-name">last_pos</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L579"></a><tt class="py-lineno">579</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
+<a name="L580"></a><tt class="py-lineno">580</tt> <tt class="py-line"> <tt class="py-name">best_match</tt><tt class="py-op">,</tt> <tt class="py-name">best_pos</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt> </tt>
+<a name="L581"></a><tt class="py-lineno">581</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">regex</tt> <tt class="py-keyword">in</tt> <tt class="py-name">link_regexes</tt><tt class="py-op">:</tt> </tt>
+<a name="L582"></a><tt class="py-lineno">582</tt> <tt class="py-line"> <tt class="py-name">regex_pos</tt> <tt class="py-op">=</tt> <tt class="py-name">last_pos</tt> </tt>
+<a name="L583"></a><tt class="py-lineno">583</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
+<a name="L584"></a><tt class="py-lineno">584</tt> <tt class="py-line"> <tt class="py-name">match</tt> <tt class="py-op">=</tt> <tt class="py-name">regex</tt><tt class="py-op">.</tt><tt class="py-name">search</tt><tt class="py-op">(</tt><tt id="link-315" 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-313', 'text', 'link-129');">text</a></tt><tt class="py-op">,</tt> <tt class="py-name">pos</tt><tt class="py-op">=</tt><tt class="py-name">regex_pos</tt><tt class="py-op">)</tt> </tt>
-<a name="L573"></a><tt class="py-lineno">573</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">match</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L574"></a><tt class="py-lineno">574</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
-<a name="L575"></a><tt class="py-lineno">575</tt> <tt class="py-line"> <tt class="py-name">host</tt> <tt class="py-op">=</tt> <tt class="py-name">match</tt><tt class="py-op">.</tt><tt class="py-name">group</tt><tt class="py-op">(</tt><tt class="py-string">'host'</tt><tt class="py-op">)</tt> </tt>
-<a name="L576"></a><tt class="py-lineno">576</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">host_regex</tt> <tt class="py-keyword">in</tt> <tt class="py-name">avoid_hosts</tt><tt class="py-op">:</tt> </tt>
-<a name="L577"></a><tt class="py-lineno">577</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">host_regex</tt><tt class="py-op">.</tt><tt class="py-name">search</tt><tt class="py-op">(</tt><tt class="py-name">host</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L578"></a><tt class="py-lineno">578</tt> <tt class="py-line"> <tt class="py-name">regex_pos</tt> <tt class="py-op">=</tt> <tt class="py-name">match</tt><tt class="py-op">.</tt><tt id="link-314" 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-314', 'end', 'link-314');">end</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L579"></a><tt class="py-lineno">579</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
-<a name="L580"></a><tt class="py-lineno">580</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L581"></a><tt class="py-lineno">581</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
-<a name="L582"></a><tt class="py-lineno">582</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">match</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L583"></a><tt class="py-lineno">583</tt> <tt class="py-line"> <tt class="py-keyword">continue</tt> </tt>
-<a name="L584"></a><tt class="py-lineno">584</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">best_pos</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt> <tt class="py-keyword">or</tt> <tt class="py-name">match</tt><tt class="py-op">.</tt><tt id="link-315" 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-315', 'start', 'link-315');">start</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op"><</tt> <tt class="py-name">best_pos</tt><tt class="py-op">:</tt> </tt>
-<a name="L585"></a><tt class="py-lineno">585</tt> <tt class="py-line"> <tt class="py-name">best_match</tt> <tt class="py-op">=</tt> <tt class="py-name">match</tt> </tt>
-<a name="L586"></a><tt class="py-lineno">586</tt> <tt class="py-line"> <tt class="py-name">best_pos</tt> <tt class="py-op">=</tt> <tt class="py-name">match</tt><tt class="py-op">.</tt><tt id="link-316" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-316', 'start', 'link-315');">start</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L587"></a><tt class="py-lineno">587</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">best_match</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L588"></a><tt class="py-lineno">588</tt> <tt class="py-line"> <tt class="py-comment"># No more matches</tt> </tt>
-<a name="L589"></a><tt class="py-lineno">589</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-317" class="py-name"><a title="lxml.html.clean.Cleaner.links" class="py-name" href="#" onclick="return doclink('link-317', 'links', 'link-43');">links</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L590"></a><tt class="py-lineno">590</tt> <tt class="py-line"> <tt class="py-keyword">assert</tt> <tt class="py-keyword">not</tt> <tt id="link-318" class="py-name"><a title="lxml.html.clean.Cleaner.links" class="py-name" href="#" onclick="return doclink('link-318', 'links', 'link-43');">links</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 id="link-319" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-319', 'tail', 'link-294');">tail</a></tt> </tt>
-<a name="L591"></a><tt class="py-lineno">591</tt> <tt class="py-line"> <tt id="link-320" class="py-name"><a title="lxml.html.clean.Cleaner.links" class="py-name" href="#" onclick="return doclink('link-320', 'links', 'link-43');">links</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 id="link-321" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-321', 'tail', 'link-294');">tail</a></tt> <tt class="py-op">=</tt> <tt id="link-322" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-315', 'text', 'link-129');">text</a></tt><tt class="py-op">,</tt> <tt class="py-name">pos</tt><tt class="py-op">=</tt><tt class="py-name">regex_pos</tt><tt class="py-op">)</tt> </tt>
+<a name="L585"></a><tt class="py-lineno">585</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">match</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L586"></a><tt class="py-lineno">586</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
+<a name="L587"></a><tt class="py-lineno">587</tt> <tt class="py-line"> <tt class="py-name">host</tt> <tt class="py-op">=</tt> <tt class="py-name">match</tt><tt class="py-op">.</tt><tt class="py-name">group</tt><tt class="py-op">(</tt><tt class="py-string">'host'</tt><tt class="py-op">)</tt> </tt>
+<a name="L588"></a><tt class="py-lineno">588</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">host_regex</tt> <tt class="py-keyword">in</tt> <tt class="py-name">avoid_hosts</tt><tt class="py-op">:</tt> </tt>
+<a name="L589"></a><tt class="py-lineno">589</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">host_regex</tt><tt class="py-op">.</tt><tt class="py-name">search</tt><tt class="py-op">(</tt><tt class="py-name">host</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L590"></a><tt class="py-lineno">590</tt> <tt class="py-line"> <tt class="py-name">regex_pos</tt> <tt class="py-op">=</tt> <tt class="py-name">match</tt><tt class="py-op">.</tt><tt id="link-316" 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-316', 'end', 'link-316');">end</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L591"></a><tt class="py-lineno">591</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
+<a name="L592"></a><tt class="py-lineno">592</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L593"></a><tt class="py-lineno">593</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
+<a name="L594"></a><tt class="py-lineno">594</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">match</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L595"></a><tt class="py-lineno">595</tt> <tt class="py-line"> <tt class="py-keyword">continue</tt> </tt>
+<a name="L596"></a><tt class="py-lineno">596</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">best_pos</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt> <tt class="py-keyword">or</tt> <tt class="py-name">match</tt><tt class="py-op">.</tt><tt id="link-317" 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-317', 'start', 'link-317');">start</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op"><</tt> <tt class="py-name">best_pos</tt><tt class="py-op">:</tt> </tt>
+<a name="L597"></a><tt class="py-lineno">597</tt> <tt class="py-line"> <tt class="py-name">best_match</tt> <tt class="py-op">=</tt> <tt class="py-name">match</tt> </tt>
+<a name="L598"></a><tt class="py-lineno">598</tt> <tt class="py-line"> <tt class="py-name">best_pos</tt> <tt class="py-op">=</tt> <tt class="py-name">match</tt><tt class="py-op">.</tt><tt id="link-318" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-318', 'start', 'link-317');">start</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L599"></a><tt class="py-lineno">599</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">best_match</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L600"></a><tt class="py-lineno">600</tt> <tt class="py-line"> <tt class="py-comment"># No more matches</tt> </tt>
+<a name="L601"></a><tt class="py-lineno">601</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-319" class="py-name"><a title="lxml.html.clean.Cleaner.links" class="py-name" href="#" onclick="return doclink('link-319', 'links', 'link-43');">links</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L602"></a><tt class="py-lineno">602</tt> <tt class="py-line"> <tt class="py-keyword">assert</tt> <tt class="py-keyword">not</tt> <tt id="link-320" class="py-name"><a title="lxml.html.clean.Cleaner.links" class="py-name" href="#" onclick="return doclink('link-320', 'links', 'link-43');">links</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 id="link-321" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-321', 'tail', 'link-296');">tail</a></tt> </tt>
+<a name="L603"></a><tt class="py-lineno">603</tt> <tt class="py-line"> <tt id="link-322" class="py-name"><a title="lxml.html.clean.Cleaner.links" class="py-name" href="#" onclick="return doclink('link-322', 'links', 'link-43');">links</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 id="link-323" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-323', 'tail', 'link-296');">tail</a></tt> <tt class="py-op">=</tt> <tt id="link-324" 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-322', 'text', 'link-129');">text</a></tt> </tt>
-<a name="L592"></a><tt class="py-lineno">592</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L593"></a><tt class="py-lineno">593</tt> <tt class="py-line"> <tt class="py-keyword">assert</tt> <tt class="py-keyword">not</tt> <tt class="py-name">leading_text</tt> </tt>
-<a name="L594"></a><tt class="py-lineno">594</tt> <tt class="py-line"> <tt class="py-name">leading_text</tt> <tt class="py-op">=</tt> <tt id="link-323" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-324', 'text', 'link-129');">text</a></tt> </tt>
+<a name="L604"></a><tt class="py-lineno">604</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L605"></a><tt class="py-lineno">605</tt> <tt class="py-line"> <tt class="py-keyword">assert</tt> <tt class="py-keyword">not</tt> <tt class="py-name">leading_text</tt> </tt>
+<a name="L606"></a><tt class="py-lineno">606</tt> <tt class="py-line"> <tt class="py-name">leading_text</tt> <tt class="py-op">=</tt> <tt id="link-325" 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-323', 'text', 'link-129');">text</a></tt> </tt>
-<a name="L595"></a><tt class="py-lineno">595</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
-<a name="L596"></a><tt class="py-lineno">596</tt> <tt class="py-line"> <tt class="py-name">link</tt> <tt class="py-op">=</tt> <tt class="py-name">best_match</tt><tt class="py-op">.</tt><tt class="py-name">group</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
-<a name="L597"></a><tt class="py-lineno">597</tt> <tt class="py-line"> <tt id="link-324" class="py-name"><a title="lxml.etree.TreeBuilder.end" class="py-name" href="#" onclick="return doclink('link-324', 'end', 'link-314');">end</a></tt> <tt class="py-op">=</tt> <tt class="py-name">best_match</tt><tt class="py-op">.</tt><tt id="link-325" class="py-name"><a title="lxml.etree.TreeBuilder.end" class="py-name" href="#" onclick="return doclink('link-325', 'end', 'link-314');">end</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L598"></a><tt class="py-lineno">598</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">link</tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">'.'</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-name">link</tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">','</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L599"></a><tt class="py-lineno">599</tt> <tt class="py-line"> <tt class="py-comment"># These punctuation marks shouldn't end a link</tt> </tt>
-<a name="L600"></a><tt class="py-lineno">600</tt> <tt class="py-line"> <tt id="link-326" class="py-name"><a title="lxml.etree.TreeBuilder.end" class="py-name" href="#" onclick="return doclink('link-326', 'end', 'link-314');">end</a></tt> <tt class="py-op">-=</tt> <tt class="py-number">1</tt> </tt>
-<a name="L601"></a><tt class="py-lineno">601</tt> <tt class="py-line"> <tt class="py-name">link</tt> <tt class="py-op">=</tt> <tt class="py-name">link</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="L602"></a><tt class="py-lineno">602</tt> <tt class="py-line"> <tt class="py-name">prev_text</tt> <tt class="py-op">=</tt> <tt id="link-327" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-325', 'text', 'link-129');">text</a></tt> </tt>
+<a name="L607"></a><tt class="py-lineno">607</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
+<a name="L608"></a><tt class="py-lineno">608</tt> <tt class="py-line"> <tt class="py-name">link</tt> <tt class="py-op">=</tt> <tt class="py-name">best_match</tt><tt class="py-op">.</tt><tt class="py-name">group</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L609"></a><tt class="py-lineno">609</tt> <tt class="py-line"> <tt id="link-326" class="py-name"><a title="lxml.etree.TreeBuilder.end" class="py-name" href="#" onclick="return doclink('link-326', 'end', 'link-316');">end</a></tt> <tt class="py-op">=</tt> <tt class="py-name">best_match</tt><tt class="py-op">.</tt><tt id="link-327" class="py-name"><a title="lxml.etree.TreeBuilder.end" class="py-name" href="#" onclick="return doclink('link-327', 'end', 'link-316');">end</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L610"></a><tt class="py-lineno">610</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">link</tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">'.'</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-name">link</tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">','</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L611"></a><tt class="py-lineno">611</tt> <tt class="py-line"> <tt class="py-comment"># These punctuation marks shouldn't end a link</tt> </tt>
+<a name="L612"></a><tt class="py-lineno">612</tt> <tt class="py-line"> <tt id="link-328" class="py-name"><a title="lxml.etree.TreeBuilder.end" class="py-name" href="#" onclick="return doclink('link-328', 'end', 'link-316');">end</a></tt> <tt class="py-op">-=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L613"></a><tt class="py-lineno">613</tt> <tt class="py-line"> <tt class="py-name">link</tt> <tt class="py-op">=</tt> <tt class="py-name">link</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="L614"></a><tt class="py-lineno">614</tt> <tt class="py-line"> <tt class="py-name">prev_text</tt> <tt class="py-op">=</tt> <tt id="link-329" 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-327', 'text', 'link-129');">text</a></tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-name">best_match</tt><tt class="py-op">.</tt><tt id="link-328" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-328', 'start', 'link-315');">start</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> </tt>
-<a name="L603"></a><tt class="py-lineno">603</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-329" class="py-name"><a title="lxml.html.clean.Cleaner.links" class="py-name" href="#" onclick="return doclink('link-329', 'links', 'link-43');">links</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L604"></a><tt class="py-lineno">604</tt> <tt class="py-line"> <tt class="py-keyword">assert</tt> <tt class="py-keyword">not</tt> <tt id="link-330" class="py-name"><a title="lxml.html.clean.Cleaner.links" class="py-name" href="#" onclick="return doclink('link-330', 'links', 'link-43');">links</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 id="link-331" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-331', 'tail', 'link-294');">tail</a></tt> </tt>
-<a name="L605"></a><tt class="py-lineno">605</tt> <tt class="py-line"> <tt id="link-332" class="py-name"><a title="lxml.html.clean.Cleaner.links" class="py-name" href="#" onclick="return doclink('link-332', 'links', 'link-43');">links</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 id="link-333" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-333', 'tail', 'link-294');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-name">prev_text</tt> </tt>
-<a name="L606"></a><tt class="py-lineno">606</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L607"></a><tt class="py-lineno">607</tt> <tt class="py-line"> <tt class="py-keyword">assert</tt> <tt class="py-keyword">not</tt> <tt class="py-name">leading_text</tt> </tt>
-<a name="L608"></a><tt class="py-lineno">608</tt> <tt class="py-line"> <tt class="py-name">leading_text</tt> <tt class="py-op">=</tt> <tt class="py-name">prev_text</tt> </tt>
-<a name="L609"></a><tt class="py-lineno">609</tt> <tt class="py-line"> <tt class="py-name">anchor</tt> <tt class="py-op">=</tt> <tt class="py-name">factory</tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L610"></a><tt class="py-lineno">610</tt> <tt class="py-line"> <tt class="py-name">anchor</tt><tt class="py-op">.</tt><tt id="link-334" class="py-name"><a title="lxml.etree._Element.set
-lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-334', 'set', 'link-62');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'href'</tt><tt class="py-op">,</tt> <tt class="py-name">link</tt><tt class="py-op">)</tt> </tt>
-<a name="L611"></a><tt class="py-lineno">611</tt> <tt class="py-line"> <tt id="link-335" 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-335', 'body', 'link-335');">body</a></tt> <tt class="py-op">=</tt> <tt class="py-name">best_match</tt><tt class="py-op">.</tt><tt class="py-name">group</tt><tt class="py-op">(</tt><tt class="py-string">'body'</tt><tt class="py-op">)</tt> </tt>
-<a name="L612"></a><tt class="py-lineno">612</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-336" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-336', 'body', 'link-335');">body</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L613"></a><tt class="py-lineno">613</tt> <tt class="py-line"> <tt id="link-337" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-337', 'body', 'link-335');">body</a></tt> <tt class="py-op">=</tt> <tt class="py-name">link</tt> </tt>
-<a name="L614"></a><tt class="py-lineno">614</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-338" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-338', 'body', 'link-335');">body</a></tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">'.'</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt id="link-339" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-339', 'body', 'link-335');">body</a></tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">','</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L615"></a><tt class="py-lineno">615</tt> <tt class="py-line"> <tt id="link-340" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-340', 'body', 'link-335');">body</a></tt> <tt class="py-op">=</tt> <tt id="link-341" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-341', 'body', 'link-335');">body</a></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="L616"></a><tt class="py-lineno">616</tt> <tt class="py-line"> <tt class="py-name">anchor</tt><tt class="py-op">.</tt><tt id="link-342" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-329', 'text', 'link-129');">text</a></tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-name">best_match</tt><tt class="py-op">.</tt><tt id="link-330" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-330', 'start', 'link-317');">start</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> </tt>
+<a name="L615"></a><tt class="py-lineno">615</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-331" class="py-name"><a title="lxml.html.clean.Cleaner.links" class="py-name" href="#" onclick="return doclink('link-331', 'links', 'link-43');">links</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L616"></a><tt class="py-lineno">616</tt> <tt class="py-line"> <tt class="py-keyword">assert</tt> <tt class="py-keyword">not</tt> <tt id="link-332" class="py-name"><a title="lxml.html.clean.Cleaner.links" class="py-name" href="#" onclick="return doclink('link-332', 'links', 'link-43');">links</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 id="link-333" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-333', 'tail', 'link-296');">tail</a></tt> </tt>
+<a name="L617"></a><tt class="py-lineno">617</tt> <tt class="py-line"> <tt id="link-334" class="py-name"><a title="lxml.html.clean.Cleaner.links" class="py-name" href="#" onclick="return doclink('link-334', 'links', 'link-43');">links</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 id="link-335" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-335', 'tail', 'link-296');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-name">prev_text</tt> </tt>
+<a name="L618"></a><tt class="py-lineno">618</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L619"></a><tt class="py-lineno">619</tt> <tt class="py-line"> <tt class="py-keyword">assert</tt> <tt class="py-keyword">not</tt> <tt class="py-name">leading_text</tt> </tt>
+<a name="L620"></a><tt class="py-lineno">620</tt> <tt class="py-line"> <tt class="py-name">leading_text</tt> <tt class="py-op">=</tt> <tt class="py-name">prev_text</tt> </tt>
+<a name="L621"></a><tt class="py-lineno">621</tt> <tt class="py-line"> <tt class="py-name">anchor</tt> <tt class="py-op">=</tt> <tt class="py-name">factory</tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L622"></a><tt class="py-lineno">622</tt> <tt class="py-line"> <tt class="py-name">anchor</tt><tt class="py-op">.</tt><tt id="link-336" class="py-name"><a title="lxml.etree._Element.set
+lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-336', 'set', 'link-62');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'href'</tt><tt class="py-op">,</tt> <tt class="py-name">link</tt><tt class="py-op">)</tt> </tt>
+<a name="L623"></a><tt class="py-lineno">623</tt> <tt class="py-line"> <tt id="link-337" 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-337', 'body', 'link-337');">body</a></tt> <tt class="py-op">=</tt> <tt class="py-name">best_match</tt><tt class="py-op">.</tt><tt class="py-name">group</tt><tt class="py-op">(</tt><tt class="py-string">'body'</tt><tt class="py-op">)</tt> </tt>
+<a name="L624"></a><tt class="py-lineno">624</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-338" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-338', 'body', 'link-337');">body</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L625"></a><tt class="py-lineno">625</tt> <tt class="py-line"> <tt id="link-339" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-339', 'body', 'link-337');">body</a></tt> <tt class="py-op">=</tt> <tt class="py-name">link</tt> </tt>
+<a name="L626"></a><tt class="py-lineno">626</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-340" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-340', 'body', 'link-337');">body</a></tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">'.'</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt id="link-341" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-341', 'body', 'link-337');">body</a></tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">','</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L627"></a><tt class="py-lineno">627</tt> <tt class="py-line"> <tt id="link-342" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-342', 'body', 'link-337');">body</a></tt> <tt class="py-op">=</tt> <tt id="link-343" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-343', 'body', 'link-337');">body</a></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="L628"></a><tt class="py-lineno">628</tt> <tt class="py-line"> <tt class="py-name">anchor</tt><tt class="py-op">.</tt><tt id="link-344" 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-342', 'text', 'link-129');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-343" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-343', 'body', 'link-335');">body</a></tt> </tt>
-<a name="L617"></a><tt class="py-lineno">617</tt> <tt class="py-line"> <tt id="link-344" class="py-name"><a title="lxml.html.clean.Cleaner.links" class="py-name" href="#" onclick="return doclink('link-344', 'links', 'link-43');">links</a></tt><tt class="py-op">.</tt><tt id="link-345" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-345', 'append', 'link-191');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">anchor</tt><tt class="py-op">)</tt> </tt>
-<a name="L618"></a><tt class="py-lineno">618</tt> <tt class="py-line"> <tt id="link-346" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-344', 'text', 'link-129');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-345" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-345', 'body', 'link-337');">body</a></tt> </tt>
+<a name="L629"></a><tt class="py-lineno">629</tt> <tt class="py-line"> <tt id="link-346" class="py-name"><a title="lxml.html.clean.Cleaner.links" class="py-name" href="#" onclick="return doclink('link-346', 'links', 'link-43');">links</a></tt><tt class="py-op">.</tt><tt id="link-347" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-347', 'append', 'link-192');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">anchor</tt><tt class="py-op">)</tt> </tt>
+<a name="L630"></a><tt class="py-lineno">630</tt> <tt class="py-line"> <tt id="link-348" 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-346', 'text', 'link-129');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-347" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-348', 'text', 'link-129');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-349" 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-347', 'text', 'link-129');">text</a></tt><tt class="py-op">[</tt><tt id="link-348" class="py-name"><a title="lxml.etree.TreeBuilder.end" class="py-name" href="#" onclick="return doclink('link-348', 'end', 'link-314');">end</a></tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
-<a name="L619"></a><tt class="py-lineno">619</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">leading_text</tt><tt class="py-op">,</tt> <tt id="link-349" class="py-name"><a title="lxml.html.clean.Cleaner.links" class="py-name" href="#" onclick="return doclink('link-349', 'links', 'link-43');">links</a></tt> </tt>
-</div><a name="L620"></a><tt class="py-lineno">620</tt> <tt class="py-line"> </tt>
-<a name="autolink_html"></a><div id="autolink_html-def"><a name="L621"></a><tt class="py-lineno">621</tt> <a class="py-toggle" href="#" id="autolink_html-toggle" onclick="return toggle('autolink_html');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean-module.html#autolink_html">autolink_html</a><tt class="py-op">(</tt><tt class="py-param">html</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-param">args</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-param">kw</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="autolink_html-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="autolink_html-expanded"><a name="L622"></a><tt class="py-lineno">622</tt> <tt class="py-line"> <tt class="py-name">result_type</tt> <tt class="py-op">=</tt> <tt id="link-350" class="py-name"><a title="lxml.etree._LogEntry.type
-lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-350', 'type', 'link-266');">type</a></tt><tt class="py-op">(</tt><tt id="link-351" class="py-name"><a title="lxml.html
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-349', 'text', 'link-129');">text</a></tt><tt class="py-op">[</tt><tt id="link-350" class="py-name"><a title="lxml.etree.TreeBuilder.end" class="py-name" href="#" onclick="return doclink('link-350', 'end', 'link-316');">end</a></tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
+<a name="L631"></a><tt class="py-lineno">631</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">leading_text</tt><tt class="py-op">,</tt> <tt id="link-351" class="py-name"><a title="lxml.html.clean.Cleaner.links" class="py-name" href="#" onclick="return doclink('link-351', 'links', 'link-43');">links</a></tt> </tt>
+</div><a name="L632"></a><tt class="py-lineno">632</tt> <tt class="py-line"> </tt>
+<a name="autolink_html"></a><div id="autolink_html-def"><a name="L633"></a><tt class="py-lineno">633</tt> <a class="py-toggle" href="#" id="autolink_html-toggle" onclick="return toggle('autolink_html');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean-module.html#autolink_html">autolink_html</a><tt class="py-op">(</tt><tt class="py-param">html</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-param">args</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-param">kw</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="autolink_html-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="autolink_html-expanded"><a name="L634"></a><tt class="py-lineno">634</tt> <tt class="py-line"> <tt class="py-name">result_type</tt> <tt class="py-op">=</tt> <tt id="link-352" class="py-name"><a title="lxml.etree._LogEntry.type
+lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-352', 'type', 'link-268');">type</a></tt><tt class="py-op">(</tt><tt id="link-353" 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-351', 'html', 'link-5');">html</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L623"></a><tt class="py-lineno">623</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-352" class="py-name"><a title="lxml.html
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-353', 'html', 'link-5');">html</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L635"></a><tt class="py-lineno">635</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-354" 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-352', 'html', 'link-5');">html</a></tt><tt class="py-op">,</tt> <tt id="link-353" class="py-name"><a title="lxml.html.basestring
-lxml.html.clean.basestring" class="py-name" href="#" onclick="return doclink('link-353', 'basestring', 'link-18');">basestring</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L624"></a><tt class="py-lineno">624</tt> <tt class="py-line"> <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-354" class="py-name"><a title="lxml.etree.fromstring
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-354', 'html', 'link-5');">html</a></tt><tt class="py-op">,</tt> <tt id="link-355" class="py-name"><a title="lxml.html.basestring
+lxml.html.clean.basestring" class="py-name" href="#" onclick="return doclink('link-355', 'basestring', 'link-18');">basestring</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L636"></a><tt class="py-lineno">636</tt> <tt class="py-line"> <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-356" 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-354', 'fromstring', 'link-9');">fromstring</a></tt><tt class="py-op">(</tt><tt id="link-355" class="py-name"><a title="lxml.html
+lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-356', 'fromstring', 'link-9');">fromstring</a></tt><tt class="py-op">(</tt><tt id="link-357" 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-355', 'html', 'link-5');">html</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L625"></a><tt class="py-lineno">625</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L626"></a><tt class="py-lineno">626</tt> <tt class="py-line"> <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-356" class="py-name"><a title="lxml.etree.PyErrorLog.copy
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-357', 'html', 'link-5');">html</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L637"></a><tt class="py-lineno">637</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L638"></a><tt class="py-lineno">638</tt> <tt class="py-line"> <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-358" 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.etree.iterparse.copy" class="py-name" href="#" onclick="return doclink('link-356', '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-357" class="py-name"><a title="lxml.html
+lxml.etree.iterparse.copy" class="py-name" href="#" onclick="return doclink('link-358', '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-359" 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-357', 'html', 'link-5');">html</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L627"></a><tt class="py-lineno">627</tt> <tt class="py-line"> <tt id="link-358" class="py-name"><a title="lxml.html.clean.autolink" class="py-name" href="#" onclick="return doclink('link-358', 'autolink', 'link-293');">autolink</a></tt><tt class="py-op">(</tt><tt class="py-name">doc</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-name">args</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-name">kw</tt><tt class="py-op">)</tt> </tt>
-<a name="L628"></a><tt class="py-lineno">628</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">_transform_result</tt><tt class="py-op">(</tt><tt class="py-name">result_type</tt><tt class="py-op">,</tt> <tt class="py-name">doc</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L629"></a><tt class="py-lineno">629</tt> <tt class="py-line"> </tt>
-<a name="L630"></a><tt class="py-lineno">630</tt> <tt class="py-line"><tt id="link-359" class="py-name" targets="Function lxml.html.clean.autolink_html()=lxml.html.clean-module.html#autolink_html"><a title="lxml.html.clean.autolink_html" class="py-name" href="#" onclick="return doclink('link-359', 'autolink_html', 'link-359');">autolink_html</a></tt><tt class="py-op">.</tt><tt id="link-360" class="py-name" targets="Variable lxml.html.ElementSoup.__doc__=lxml.html.ElementSoup-module.html#__doc__,Variable lxml.html.soupparser.__doc__=lxml.html.soupparser-module.html#__doc__"><a title="lxml.html.ElementSoup.__doc__
-lxml.html.soupparser.__doc__" class="py-name" href="#" onclick="return doclink('link-360', '__doc__', 'link-360');">__doc__</a></tt> <tt class="py-op">=</tt> <tt id="link-361" class="py-name"><a title="lxml.html.clean.autolink" class="py-name" href="#" onclick="return doclink('link-361', 'autolink', 'link-293');">autolink</a></tt><tt class="py-op">.</tt><tt id="link-362" class="py-name"><a title="lxml.html.ElementSoup.__doc__
-lxml.html.soupparser.__doc__" class="py-name" href="#" onclick="return doclink('link-362', '__doc__', 'link-360');">__doc__</a></tt> </tt>
-<a name="L631"></a><tt class="py-lineno">631</tt> <tt class="py-line"> </tt>
-<a name="L632"></a><tt class="py-lineno">632</tt> <tt class="py-line"><tt class="py-comment">############################################################</tt> </tt>
-<a name="L633"></a><tt class="py-lineno">633</tt> <tt class="py-line"><tt class="py-comment">## Word wrapping</tt> </tt>
-<a name="L634"></a><tt class="py-lineno">634</tt> <tt class="py-line"><tt class="py-comment">############################################################</tt> </tt>
-<a name="L635"></a><tt class="py-lineno">635</tt> <tt class="py-line"> </tt>
-<a name="L636"></a><tt class="py-lineno">636</tt> <tt class="py-line"><tt id="link-363" class="py-name" targets="Variable lxml.html.clean._avoid_word_break_elements=lxml.html.clean-module.html#_avoid_word_break_elements"><a title="lxml.html.clean._avoid_word_break_elements" class="py-name" href="#" onclick="return doclink('link-363', '_avoid_word_break_elements', 'link-363');">_avoid_word_break_elements</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-string">'pre'</tt><tt class="py-op">,</tt> <tt class="py-string">'textarea'</tt><tt class="py-op">,</tt> <tt class="py-string">'code'</tt><tt class="py-op">]</tt> </tt>
-<a name="L637"></a><tt class="py-lineno">637</tt> <tt class="py-line"><tt id="link-364" class="py-name" targets="Variable lxml.html.clean._avoid_word_break_classes=lxml.html.clean-module.html#_avoid_word_break_classes"><a title="lxml.html.clean._avoid_word_break_classes" class="py-name" href="#" onclick="return doclink('link-364', '_avoid_word_break_classes', 'link-364');">_avoid_word_break_classes</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-string">'nobreak'</tt><tt class="py-op">]</tt> </tt>
-<a name="L638"></a><tt class="py-lineno">638</tt> <tt class="py-line"> </tt>
-<a name="word_break"></a><div id="word_break-def"><a name="L639"></a><tt class="py-lineno">639</tt> <a class="py-toggle" href="#" id="word_break-toggle" onclick="return toggle('word_break');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean-module.html#word_break">word_break</a><tt class="py-op">(</tt><tt class="py-param">el</tt><tt class="py-op">,</tt> <tt class="py-param">max_width</tt><tt class="py-op">=</tt><tt class="py-number">40</tt><tt class="py-op">,</tt> </tt>
-<a name="L640"></a><tt class="py-lineno">640</tt> <tt class="py-line"> <tt class="py-param">avoid_elements</tt><tt class="py-op">=</tt><tt id="link-365" class="py-name"><a title="lxml.html.clean._avoid_word_break_elements" class="py-name" href="#" onclick="return doclink('link-365', '_avoid_word_break_elements', 'link-363');">_avoid_word_break_elements</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L641"></a><tt class="py-lineno">641</tt> <tt class="py-line"> <tt class="py-param">avoid_classes</tt><tt class="py-op">=</tt><tt id="link-366" class="py-name"><a title="lxml.html.clean._avoid_word_break_classes" class="py-name" href="#" onclick="return doclink('link-366', '_avoid_word_break_classes', 'link-364');">_avoid_word_break_classes</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L642"></a><tt class="py-lineno">642</tt> <tt class="py-line"> <tt class="py-param">break_character</tt><tt class="py-op">=</tt><tt id="link-367" class="py-name"><a title="lxml.html.clean.unichr" class="py-name" href="#" onclick="return doclink('link-367', 'unichr', 'link-14');">unichr</a></tt><tt class="py-op">(</tt><tt class="py-number">0x200b</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="word_break-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="word_break-expanded"><a name="L643"></a><tt class="py-lineno">643</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L644"></a><tt class="py-lineno">644</tt> <tt class="py-line"><tt class="py-docstring"> Breaks any long words found in the body of the text (not attributes).</tt> </tt>
-<a name="L645"></a><tt class="py-lineno">645</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L646"></a><tt class="py-lineno">646</tt> <tt class="py-line"><tt class="py-docstring"> Doesn't effect any of the tags in avoid_elements, by default</tt> </tt>
-<a name="L647"></a><tt class="py-lineno">647</tt> <tt class="py-line"><tt class="py-docstring"> ``<textarea>`` and ``<pre>``</tt> </tt>
-<a name="L648"></a><tt class="py-lineno">648</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L649"></a><tt class="py-lineno">649</tt> <tt class="py-line"><tt class="py-docstring"> Breaks words by inserting &#8203;, which is a unicode character</tt> </tt>
-<a name="L650"></a><tt class="py-lineno">650</tt> <tt class="py-line"><tt class="py-docstring"> for Zero Width Space character. This generally takes up no space</tt> </tt>
-<a name="L651"></a><tt class="py-lineno">651</tt> <tt class="py-line"><tt class="py-docstring"> in rendering, but does copy as a space, and in monospace contexts</tt> </tt>
-<a name="L652"></a><tt class="py-lineno">652</tt> <tt class="py-line"><tt class="py-docstring"> usually takes up space.</tt> </tt>
-<a name="L653"></a><tt class="py-lineno">653</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L654"></a><tt class="py-lineno">654</tt> <tt class="py-line"><tt class="py-docstring"> See http://www.cs.tut.fi/~jkorpela/html/nobr.html for a discussion</tt> </tt>
-<a name="L655"></a><tt class="py-lineno">655</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L656"></a><tt class="py-lineno">656</tt> <tt class="py-line"> <tt class="py-comment"># Character suggestion of &#8203 comes from:</tt> </tt>
-<a name="L657"></a><tt class="py-lineno">657</tt> <tt class="py-line"> <tt class="py-comment"># http://www.cs.tut.fi/~jkorpela/html/nobr.html</tt> </tt>
-<a name="L658"></a><tt class="py-lineno">658</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-368" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-359', 'html', 'link-5');">html</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L639"></a><tt class="py-lineno">639</tt> <tt class="py-line"> <tt id="link-360" class="py-name"><a title="lxml.html.clean.autolink" class="py-name" href="#" onclick="return doclink('link-360', 'autolink', 'link-295');">autolink</a></tt><tt class="py-op">(</tt><tt class="py-name">doc</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-name">args</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-name">kw</tt><tt class="py-op">)</tt> </tt>
+<a name="L640"></a><tt class="py-lineno">640</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">_transform_result</tt><tt class="py-op">(</tt><tt class="py-name">result_type</tt><tt class="py-op">,</tt> <tt class="py-name">doc</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L641"></a><tt class="py-lineno">641</tt> <tt class="py-line"> </tt>
+<a name="L642"></a><tt class="py-lineno">642</tt> <tt class="py-line"><tt id="link-361" class="py-name" targets="Function lxml.html.clean.autolink_html()=lxml.html.clean-module.html#autolink_html"><a title="lxml.html.clean.autolink_html" class="py-name" href="#" onclick="return doclink('link-361', 'autolink_html', 'link-361');">autolink_html</a></tt><tt class="py-op">.</tt><tt id="link-362" class="py-name" targets="Variable lxml.html.ElementSoup.__doc__=lxml.html.ElementSoup-module.html#__doc__,Variable lxml.html.soupparser.__doc__=lxml.html.soupparser-module.html#__doc__"><a title="lxml.html.ElementSoup.__doc__
+lxml.html.soupparser.__doc__" class="py-name" href="#" onclick="return doclink('link-362', '__doc__', 'link-362');">__doc__</a></tt> <tt class="py-op">=</tt> <tt id="link-363" class="py-name"><a title="lxml.html.clean.autolink" class="py-name" href="#" onclick="return doclink('link-363', 'autolink', 'link-295');">autolink</a></tt><tt class="py-op">.</tt><tt id="link-364" class="py-name"><a title="lxml.html.ElementSoup.__doc__
+lxml.html.soupparser.__doc__" class="py-name" href="#" onclick="return doclink('link-364', '__doc__', 'link-362');">__doc__</a></tt> </tt>
+<a name="L643"></a><tt class="py-lineno">643</tt> <tt class="py-line"> </tt>
+<a name="L644"></a><tt class="py-lineno">644</tt> <tt class="py-line"><tt class="py-comment">############################################################</tt> </tt>
+<a name="L645"></a><tt class="py-lineno">645</tt> <tt class="py-line"><tt class="py-comment">## Word wrapping</tt> </tt>
+<a name="L646"></a><tt class="py-lineno">646</tt> <tt class="py-line"><tt class="py-comment">############################################################</tt> </tt>
+<a name="L647"></a><tt class="py-lineno">647</tt> <tt class="py-line"> </tt>
+<a name="L648"></a><tt class="py-lineno">648</tt> <tt class="py-line"><tt id="link-365" class="py-name" targets="Variable lxml.html.clean._avoid_word_break_elements=lxml.html.clean-module.html#_avoid_word_break_elements"><a title="lxml.html.clean._avoid_word_break_elements" class="py-name" href="#" onclick="return doclink('link-365', '_avoid_word_break_elements', 'link-365');">_avoid_word_break_elements</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-string">'pre'</tt><tt class="py-op">,</tt> <tt class="py-string">'textarea'</tt><tt class="py-op">,</tt> <tt class="py-string">'code'</tt><tt class="py-op">]</tt> </tt>
+<a name="L649"></a><tt class="py-lineno">649</tt> <tt class="py-line"><tt id="link-366" class="py-name" targets="Variable lxml.html.clean._avoid_word_break_classes=lxml.html.clean-module.html#_avoid_word_break_classes"><a title="lxml.html.clean._avoid_word_break_classes" class="py-name" href="#" onclick="return doclink('link-366', '_avoid_word_break_classes', 'link-366');">_avoid_word_break_classes</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-string">'nobreak'</tt><tt class="py-op">]</tt> </tt>
+<a name="L650"></a><tt class="py-lineno">650</tt> <tt class="py-line"> </tt>
+<a name="word_break"></a><div id="word_break-def"><a name="L651"></a><tt class="py-lineno">651</tt> <a class="py-toggle" href="#" id="word_break-toggle" onclick="return toggle('word_break');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean-module.html#word_break">word_break</a><tt class="py-op">(</tt><tt class="py-param">el</tt><tt class="py-op">,</tt> <tt class="py-param">max_width</tt><tt class="py-op">=</tt><tt class="py-number">40</tt><tt class="py-op">,</tt> </tt>
+<a name="L652"></a><tt class="py-lineno">652</tt> <tt class="py-line"> <tt class="py-param">avoid_elements</tt><tt class="py-op">=</tt><tt id="link-367" class="py-name"><a title="lxml.html.clean._avoid_word_break_elements" class="py-name" href="#" onclick="return doclink('link-367', '_avoid_word_break_elements', 'link-365');">_avoid_word_break_elements</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L653"></a><tt class="py-lineno">653</tt> <tt class="py-line"> <tt class="py-param">avoid_classes</tt><tt class="py-op">=</tt><tt id="link-368" class="py-name"><a title="lxml.html.clean._avoid_word_break_classes" class="py-name" href="#" onclick="return doclink('link-368', '_avoid_word_break_classes', 'link-366');">_avoid_word_break_classes</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L654"></a><tt class="py-lineno">654</tt> <tt class="py-line"> <tt class="py-param">break_character</tt><tt class="py-op">=</tt><tt id="link-369" class="py-name"><a title="lxml.html.clean.unichr" class="py-name" href="#" onclick="return doclink('link-369', 'unichr', 'link-14');">unichr</a></tt><tt class="py-op">(</tt><tt class="py-number">0x200b</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="word_break-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="word_break-expanded"><a name="L655"></a><tt class="py-lineno">655</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L656"></a><tt class="py-lineno">656</tt> <tt class="py-line"><tt class="py-docstring"> Breaks any long words found in the body of the text (not attributes).</tt> </tt>
+<a name="L657"></a><tt class="py-lineno">657</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L658"></a><tt class="py-lineno">658</tt> <tt class="py-line"><tt class="py-docstring"> Doesn't effect any of the tags in avoid_elements, by default</tt> </tt>
+<a name="L659"></a><tt class="py-lineno">659</tt> <tt class="py-line"><tt class="py-docstring"> ``<textarea>`` and ``<pre>``</tt> </tt>
+<a name="L660"></a><tt class="py-lineno">660</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L661"></a><tt class="py-lineno">661</tt> <tt class="py-line"><tt class="py-docstring"> Breaks words by inserting &#8203;, which is a unicode character</tt> </tt>
+<a name="L662"></a><tt class="py-lineno">662</tt> <tt class="py-line"><tt class="py-docstring"> for Zero Width Space character. This generally takes up no space</tt> </tt>
+<a name="L663"></a><tt class="py-lineno">663</tt> <tt class="py-line"><tt class="py-docstring"> in rendering, but does copy as a space, and in monospace contexts</tt> </tt>
+<a name="L664"></a><tt class="py-lineno">664</tt> <tt class="py-line"><tt class="py-docstring"> usually takes up space.</tt> </tt>
+<a name="L665"></a><tt class="py-lineno">665</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L666"></a><tt class="py-lineno">666</tt> <tt class="py-line"><tt class="py-docstring"> See http://www.cs.tut.fi/~jkorpela/html/nobr.html for a discussion</tt> </tt>
+<a name="L667"></a><tt class="py-lineno">667</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L668"></a><tt class="py-lineno">668</tt> <tt class="py-line"> <tt class="py-comment"># Character suggestion of &#8203 comes from:</tt> </tt>
+<a name="L669"></a><tt class="py-lineno">669</tt> <tt class="py-line"> <tt class="py-comment"># http://www.cs.tut.fi/~jkorpela/html/nobr.html</tt> </tt>
+<a name="L670"></a><tt class="py-lineno">670</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-370" 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-368', 'tag', 'link-77');">tag</a></tt> <tt class="py-keyword">in</tt> <tt id="link-369" class="py-name"><a title="lxml.html.clean._avoid_word_break_elements" class="py-name" href="#" onclick="return doclink('link-369', '_avoid_word_break_elements', 'link-363');">_avoid_word_break_elements</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L659"></a><tt class="py-lineno">659</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L660"></a><tt class="py-lineno">660</tt> <tt class="py-line"> <tt class="py-name">class_name</tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-370" class="py-name"><a title="lxml.etree._Attrib.get
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-370', 'tag', 'link-77');">tag</a></tt> <tt class="py-keyword">in</tt> <tt id="link-371" class="py-name"><a title="lxml.html.clean._avoid_word_break_elements" class="py-name" href="#" onclick="return doclink('link-371', '_avoid_word_break_elements', 'link-365');">_avoid_word_break_elements</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L671"></a><tt class="py-lineno">671</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L672"></a><tt class="py-lineno">672</tt> <tt class="py-line"> <tt class="py-name">class_name</tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-372" 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-370', 'get', 'link-119');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'class'</tt><tt class="py-op">)</tt> </tt>
-<a name="L661"></a><tt class="py-lineno">661</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">class_name</tt><tt class="py-op">:</tt> </tt>
-<a name="L662"></a><tt class="py-lineno">662</tt> <tt class="py-line"> <tt class="py-name">dont_break</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
-<a name="L663"></a><tt class="py-lineno">663</tt> <tt class="py-line"> <tt class="py-name">class_name</tt> <tt class="py-op">=</tt> <tt class="py-name">class_name</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L664"></a><tt class="py-lineno">664</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">avoid</tt> <tt class="py-keyword">in</tt> <tt class="py-name">avoid_classes</tt><tt class="py-op">:</tt> </tt>
-<a name="L665"></a><tt class="py-lineno">665</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">avoid</tt> <tt class="py-keyword">in</tt> <tt class="py-name">class_name</tt><tt class="py-op">:</tt> </tt>
-<a name="L666"></a><tt class="py-lineno">666</tt> <tt class="py-line"> <tt class="py-name">dont_break</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L667"></a><tt class="py-lineno">667</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
-<a name="L668"></a><tt class="py-lineno">668</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">dont_break</tt><tt class="py-op">:</tt> </tt>
-<a name="L669"></a><tt class="py-lineno">669</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L670"></a><tt class="py-lineno">670</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-371" class="py-name"><a title="lxml.etree.QName.text
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-372', 'get', 'link-119');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'class'</tt><tt class="py-op">)</tt> </tt>
+<a name="L673"></a><tt class="py-lineno">673</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">class_name</tt><tt class="py-op">:</tt> </tt>
+<a name="L674"></a><tt class="py-lineno">674</tt> <tt class="py-line"> <tt class="py-name">dont_break</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L675"></a><tt class="py-lineno">675</tt> <tt class="py-line"> <tt class="py-name">class_name</tt> <tt class="py-op">=</tt> <tt class="py-name">class_name</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L676"></a><tt class="py-lineno">676</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">avoid</tt> <tt class="py-keyword">in</tt> <tt class="py-name">avoid_classes</tt><tt class="py-op">:</tt> </tt>
+<a name="L677"></a><tt class="py-lineno">677</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">avoid</tt> <tt class="py-keyword">in</tt> <tt class="py-name">class_name</tt><tt class="py-op">:</tt> </tt>
+<a name="L678"></a><tt class="py-lineno">678</tt> <tt class="py-line"> <tt class="py-name">dont_break</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L679"></a><tt class="py-lineno">679</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
+<a name="L680"></a><tt class="py-lineno">680</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">dont_break</tt><tt class="py-op">:</tt> </tt>
+<a name="L681"></a><tt class="py-lineno">681</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L682"></a><tt class="py-lineno">682</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-373" 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-371', 'text', 'link-129');">text</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L671"></a><tt class="py-lineno">671</tt> <tt class="py-line"> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-372" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-373', 'text', 'link-129');">text</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L683"></a><tt class="py-lineno">683</tt> <tt class="py-line"> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-374" 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-372', 'text', 'link-129');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-373" class="py-name" targets="Function lxml.html.clean._break_text()=lxml.html.clean-module.html#_break_text"><a title="lxml.html.clean._break_text" class="py-name" href="#" onclick="return doclink('link-373', '_break_text', 'link-373');">_break_text</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-374" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-374', 'text', 'link-129');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-375" class="py-name" targets="Function lxml.html.clean._break_text()=lxml.html.clean-module.html#_break_text"><a title="lxml.html.clean._break_text" class="py-name" href="#" onclick="return doclink('link-375', '_break_text', 'link-375');">_break_text</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-376" 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-374', 'text', 'link-129');">text</a></tt><tt class="py-op">,</tt> <tt class="py-name">max_width</tt><tt class="py-op">,</tt> <tt class="py-name">break_character</tt><tt class="py-op">)</tt> </tt>
-<a name="L672"></a><tt class="py-lineno">672</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">el</tt><tt class="py-op">:</tt> </tt>
-<a name="L673"></a><tt class="py-lineno">673</tt> <tt class="py-line"> <tt id="link-375" class="py-name" targets="Function lxml.html.clean.word_break()=lxml.html.clean-module.html#word_break"><a title="lxml.html.clean.word_break" class="py-name" href="#" onclick="return doclink('link-375', 'word_break', 'link-375');">word_break</a></tt><tt class="py-op">(</tt><tt class="py-name">child</tt><tt class="py-op">,</tt> <tt class="py-name">max_width</tt><tt class="py-op">=</tt><tt class="py-name">max_width</tt><tt class="py-op">,</tt> </tt>
-<a name="L674"></a><tt class="py-lineno">674</tt> <tt class="py-line"> <tt class="py-name">avoid_elements</tt><tt class="py-op">=</tt><tt class="py-name">avoid_elements</tt><tt class="py-op">,</tt> </tt>
-<a name="L675"></a><tt class="py-lineno">675</tt> <tt class="py-line"> <tt class="py-name">avoid_classes</tt><tt class="py-op">=</tt><tt class="py-name">avoid_classes</tt><tt class="py-op">,</tt> </tt>
-<a name="L676"></a><tt class="py-lineno">676</tt> <tt class="py-line"> <tt class="py-name">break_character</tt><tt class="py-op">=</tt><tt class="py-name">break_character</tt><tt class="py-op">)</tt> </tt>
-<a name="L677"></a><tt class="py-lineno">677</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-376" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-376', 'tail', 'link-294');">tail</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L678"></a><tt class="py-lineno">678</tt> <tt class="py-line"> <tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-377" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-377', 'tail', 'link-294');">tail</a></tt> <tt class="py-op">=</tt> <tt id="link-378" class="py-name"><a title="lxml.html.clean._break_text" class="py-name" href="#" onclick="return doclink('link-378', '_break_text', 'link-373');">_break_text</a></tt><tt class="py-op">(</tt><tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-379" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-379', 'tail', 'link-294');">tail</a></tt><tt class="py-op">,</tt> <tt class="py-name">max_width</tt><tt class="py-op">,</tt> <tt class="py-name">break_character</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L679"></a><tt class="py-lineno">679</tt> <tt class="py-line"> </tt>
-<a name="word_break_html"></a><div id="word_break_html-def"><a name="L680"></a><tt class="py-lineno">680</tt> <a class="py-toggle" href="#" id="word_break_html-toggle" onclick="return toggle('word_break_html');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean-module.html#word_break_html">word_break_html</a><tt class="py-op">(</tt><tt class="py-param">html</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-param">args</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-param">kw</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="word_break_html-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="word_break_html-expanded"><a name="L681"></a><tt class="py-lineno">681</tt> <tt class="py-line"> <tt class="py-name">result_type</tt> <tt class="py-op">=</tt> <tt id="link-380" class="py-name"><a title="lxml.etree._LogEntry.type
-lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-380', 'type', 'link-266');">type</a></tt><tt class="py-op">(</tt><tt id="link-381" class="py-name"><a title="lxml.html
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-376', 'text', 'link-129');">text</a></tt><tt class="py-op">,</tt> <tt class="py-name">max_width</tt><tt class="py-op">,</tt> <tt class="py-name">break_character</tt><tt class="py-op">)</tt> </tt>
+<a name="L684"></a><tt class="py-lineno">684</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">el</tt><tt class="py-op">:</tt> </tt>
+<a name="L685"></a><tt class="py-lineno">685</tt> <tt class="py-line"> <tt id="link-377" class="py-name" targets="Function lxml.html.clean.word_break()=lxml.html.clean-module.html#word_break"><a title="lxml.html.clean.word_break" class="py-name" href="#" onclick="return doclink('link-377', 'word_break', 'link-377');">word_break</a></tt><tt class="py-op">(</tt><tt class="py-name">child</tt><tt class="py-op">,</tt> <tt class="py-name">max_width</tt><tt class="py-op">=</tt><tt class="py-name">max_width</tt><tt class="py-op">,</tt> </tt>
+<a name="L686"></a><tt class="py-lineno">686</tt> <tt class="py-line"> <tt class="py-name">avoid_elements</tt><tt class="py-op">=</tt><tt class="py-name">avoid_elements</tt><tt class="py-op">,</tt> </tt>
+<a name="L687"></a><tt class="py-lineno">687</tt> <tt class="py-line"> <tt class="py-name">avoid_classes</tt><tt class="py-op">=</tt><tt class="py-name">avoid_classes</tt><tt class="py-op">,</tt> </tt>
+<a name="L688"></a><tt class="py-lineno">688</tt> <tt class="py-line"> <tt class="py-name">break_character</tt><tt class="py-op">=</tt><tt class="py-name">break_character</tt><tt class="py-op">)</tt> </tt>
+<a name="L689"></a><tt class="py-lineno">689</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-378" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-378', 'tail', 'link-296');">tail</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L690"></a><tt class="py-lineno">690</tt> <tt class="py-line"> <tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-379" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-379', 'tail', 'link-296');">tail</a></tt> <tt class="py-op">=</tt> <tt id="link-380" class="py-name"><a title="lxml.html.clean._break_text" class="py-name" href="#" onclick="return doclink('link-380', '_break_text', 'link-375');">_break_text</a></tt><tt class="py-op">(</tt><tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-381" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-381', 'tail', 'link-296');">tail</a></tt><tt class="py-op">,</tt> <tt class="py-name">max_width</tt><tt class="py-op">,</tt> <tt class="py-name">break_character</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L691"></a><tt class="py-lineno">691</tt> <tt class="py-line"> </tt>
+<a name="word_break_html"></a><div id="word_break_html-def"><a name="L692"></a><tt class="py-lineno">692</tt> <a class="py-toggle" href="#" id="word_break_html-toggle" onclick="return toggle('word_break_html');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean-module.html#word_break_html">word_break_html</a><tt class="py-op">(</tt><tt class="py-param">html</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-param">args</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-param">kw</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="word_break_html-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="word_break_html-expanded"><a name="L693"></a><tt class="py-lineno">693</tt> <tt class="py-line"> <tt class="py-name">result_type</tt> <tt class="py-op">=</tt> <tt id="link-382" class="py-name"><a title="lxml.etree._LogEntry.type
+lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-382', 'type', 'link-268');">type</a></tt><tt class="py-op">(</tt><tt id="link-383" 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-381', 'html', 'link-5');">html</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L682"></a><tt class="py-lineno">682</tt> <tt class="py-line"> <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-382" class="py-name"><a title="lxml.etree.fromstring
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-383', 'html', 'link-5');">html</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L694"></a><tt class="py-lineno">694</tt> <tt class="py-line"> <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-384" 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-382', 'fromstring', 'link-9');">fromstring</a></tt><tt class="py-op">(</tt><tt id="link-383" class="py-name"><a title="lxml.html
+lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-384', 'fromstring', 'link-9');">fromstring</a></tt><tt class="py-op">(</tt><tt id="link-385" 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-383', 'html', 'link-5');">html</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L683"></a><tt class="py-lineno">683</tt> <tt class="py-line"> <tt id="link-384" class="py-name"><a title="lxml.html.clean.word_break" class="py-name" href="#" onclick="return doclink('link-384', 'word_break', 'link-375');">word_break</a></tt><tt class="py-op">(</tt><tt class="py-name">doc</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-name">args</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-name">kw</tt><tt class="py-op">)</tt> </tt>
-<a name="L684"></a><tt class="py-lineno">684</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">_transform_result</tt><tt class="py-op">(</tt><tt class="py-name">result_type</tt><tt class="py-op">,</tt> <tt class="py-name">doc</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L685"></a><tt class="py-lineno">685</tt> <tt class="py-line"> </tt>
-<a name="_break_text"></a><div id="_break_text-def"><a name="L686"></a><tt class="py-lineno">686</tt> <a class="py-toggle" href="#" id="_break_text-toggle" onclick="return toggle('_break_text');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean-module.html#_break_text">_break_text</a><tt class="py-op">(</tt><tt class="py-param">text</tt><tt class="py-op">,</tt> <tt class="py-param">max_width</tt><tt class="py-op">,</tt> <tt class="py-param">break_character</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_break_text-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_break_text-expanded"><a name="L687"></a><tt class="py-lineno">687</tt> <tt class="py-line"> <tt class="py-name">words</tt> <tt class="py-op">=</tt> <tt id="link-385" class="py-name"><a title="lxml.etree.QName.text
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-385', 'html', 'link-5');">html</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L695"></a><tt class="py-lineno">695</tt> <tt class="py-line"> <tt id="link-386" class="py-name"><a title="lxml.html.clean.word_break" class="py-name" href="#" onclick="return doclink('link-386', 'word_break', 'link-377');">word_break</a></tt><tt class="py-op">(</tt><tt class="py-name">doc</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-name">args</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-name">kw</tt><tt class="py-op">)</tt> </tt>
+<a name="L696"></a><tt class="py-lineno">696</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">_transform_result</tt><tt class="py-op">(</tt><tt class="py-name">result_type</tt><tt class="py-op">,</tt> <tt class="py-name">doc</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L697"></a><tt class="py-lineno">697</tt> <tt class="py-line"> </tt>
+<a name="_break_text"></a><div id="_break_text-def"><a name="L698"></a><tt class="py-lineno">698</tt> <a class="py-toggle" href="#" id="_break_text-toggle" onclick="return toggle('_break_text');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean-module.html#_break_text">_break_text</a><tt class="py-op">(</tt><tt class="py-param">text</tt><tt class="py-op">,</tt> <tt class="py-param">max_width</tt><tt class="py-op">,</tt> <tt class="py-param">break_character</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_break_text-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_break_text-expanded"><a name="L699"></a><tt class="py-lineno">699</tt> <tt class="py-line"> <tt class="py-name">words</tt> <tt class="py-op">=</tt> <tt id="link-387" 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-385', 'text', 'link-129');">text</a></tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L688"></a><tt class="py-lineno">688</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">word</tt> <tt class="py-keyword">in</tt> <tt class="py-name">words</tt><tt class="py-op">:</tt> </tt>
-<a name="L689"></a><tt class="py-lineno">689</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">word</tt><tt class="py-op">)</tt> <tt class="py-op">></tt> <tt class="py-name">max_width</tt><tt class="py-op">:</tt> </tt>
-<a name="L690"></a><tt class="py-lineno">690</tt> <tt class="py-line"> <tt class="py-name">replacement</tt> <tt class="py-op">=</tt> <tt id="link-386" class="py-name" targets="Function lxml.html.clean._insert_break()=lxml.html.clean-module.html#_insert_break"><a title="lxml.html.clean._insert_break" class="py-name" href="#" onclick="return doclink('link-386', '_insert_break', 'link-386');">_insert_break</a></tt><tt class="py-op">(</tt><tt class="py-name">word</tt><tt class="py-op">,</tt> <tt class="py-name">max_width</tt><tt class="py-op">,</tt> <tt class="py-name">break_character</tt><tt class="py-op">)</tt> </tt>
-<a name="L691"></a><tt class="py-lineno">691</tt> <tt class="py-line"> <tt id="link-387" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-387', 'text', 'link-129');">text</a></tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L700"></a><tt class="py-lineno">700</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">word</tt> <tt class="py-keyword">in</tt> <tt class="py-name">words</tt><tt class="py-op">:</tt> </tt>
+<a name="L701"></a><tt class="py-lineno">701</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">word</tt><tt class="py-op">)</tt> <tt class="py-op">></tt> <tt class="py-name">max_width</tt><tt class="py-op">:</tt> </tt>
+<a name="L702"></a><tt class="py-lineno">702</tt> <tt class="py-line"> <tt class="py-name">replacement</tt> <tt class="py-op">=</tt> <tt id="link-388" class="py-name" targets="Function lxml.html.clean._insert_break()=lxml.html.clean-module.html#_insert_break"><a title="lxml.html.clean._insert_break" class="py-name" href="#" onclick="return doclink('link-388', '_insert_break', 'link-388');">_insert_break</a></tt><tt class="py-op">(</tt><tt class="py-name">word</tt><tt class="py-op">,</tt> <tt class="py-name">max_width</tt><tt class="py-op">,</tt> <tt class="py-name">break_character</tt><tt class="py-op">)</tt> </tt>
+<a name="L703"></a><tt class="py-lineno">703</tt> <tt class="py-line"> <tt id="link-389" 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-387', 'text', 'link-129');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-388" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-389', 'text', 'link-129');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-390" 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-388', 'text', 'link-129');">text</a></tt><tt class="py-op">.</tt><tt id="link-389" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-389', 'replace', 'link-258');">replace</a></tt><tt class="py-op">(</tt><tt class="py-name">word</tt><tt class="py-op">,</tt> <tt class="py-name">replacement</tt><tt class="py-op">)</tt> </tt>
-<a name="L692"></a><tt class="py-lineno">692</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-390" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-390', 'text', 'link-129');">text</a></tt><tt class="py-op">.</tt><tt id="link-391" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-391', 'replace', 'link-260');">replace</a></tt><tt class="py-op">(</tt><tt class="py-name">word</tt><tt class="py-op">,</tt> <tt class="py-name">replacement</tt><tt class="py-op">)</tt> </tt>
+<a name="L704"></a><tt class="py-lineno">704</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-392" 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-390', 'text', 'link-129');">text</a></tt> </tt>
-</div><a name="L693"></a><tt class="py-lineno">693</tt> <tt class="py-line"> </tt>
-<a name="L694"></a><tt class="py-lineno">694</tt> <tt class="py-line"><tt id="link-391" class="py-name" targets="Variable lxml.html.clean._break_prefer_re=lxml.html.clean-module.html#_break_prefer_re"><a title="lxml.html.clean._break_prefer_re" class="py-name" href="#" onclick="return doclink('link-391', '_break_prefer_re', 'link-391');">_break_prefer_re</a></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-string">r'[^a-z]'</tt><tt class="py-op">,</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt id="link-392" class="py-name"><a title="lxml.html.builder.I" class="py-name" href="#" onclick="return doclink('link-392', 'I', 'link-23');">I</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L695"></a><tt class="py-lineno">695</tt> <tt class="py-line"> </tt>
-<a name="_insert_break"></a><div id="_insert_break-def"><a name="L696"></a><tt class="py-lineno">696</tt> <a class="py-toggle" href="#" id="_insert_break-toggle" onclick="return toggle('_insert_break');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean-module.html#_insert_break">_insert_break</a><tt class="py-op">(</tt><tt class="py-param">word</tt><tt class="py-op">,</tt> <tt class="py-param">width</tt><tt class="py-op">,</tt> <tt class="py-param">break_character</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_insert_break-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_insert_break-expanded"><a name="L697"></a><tt class="py-lineno">697</tt> <tt class="py-line"> <tt class="py-name">orig_word</tt> <tt class="py-op">=</tt> <tt class="py-name">word</tt> </tt>
-<a name="L698"></a><tt class="py-lineno">698</tt> <tt class="py-line"> <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
-<a name="L699"></a><tt class="py-lineno">699</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">word</tt><tt class="py-op">)</tt> <tt class="py-op">></tt> <tt class="py-name">width</tt><tt class="py-op">:</tt> </tt>
-<a name="L700"></a><tt class="py-lineno">700</tt> <tt class="py-line"> <tt id="link-393" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-393', 'start', 'link-315');">start</a></tt> <tt class="py-op">=</tt> <tt class="py-name">word</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-name">width</tt><tt class="py-op">]</tt> </tt>
-<a name="L701"></a><tt class="py-lineno">701</tt> <tt class="py-line"> <tt class="py-name">breaks</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-394" class="py-name"><a title="lxml.html.clean._break_prefer_re" class="py-name" href="#" onclick="return doclink('link-394', '_break_prefer_re', 'link-391');">_break_prefer_re</a></tt><tt class="py-op">.</tt><tt class="py-name">finditer</tt><tt class="py-op">(</tt><tt id="link-395" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-395', 'start', 'link-315');">start</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L702"></a><tt class="py-lineno">702</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">breaks</tt><tt class="py-op">:</tt> </tt>
-<a name="L703"></a><tt class="py-lineno">703</tt> <tt class="py-line"> <tt class="py-name">last_break</tt> <tt class="py-op">=</tt> <tt class="py-name">breaks</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="L704"></a><tt class="py-lineno">704</tt> <tt class="py-line"> <tt class="py-comment"># Only walk back up to 10 characters to find a nice break:</tt> </tt>
-<a name="L705"></a><tt class="py-lineno">705</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">last_break</tt><tt class="py-op">.</tt><tt id="link-396" class="py-name"><a title="lxml.etree.TreeBuilder.end" class="py-name" href="#" onclick="return doclink('link-396', 'end', 'link-314');">end</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">></tt> <tt class="py-name">width</tt><tt class="py-op">-</tt><tt class="py-number">10</tt><tt class="py-op">:</tt> </tt>
-<a name="L706"></a><tt class="py-lineno">706</tt> <tt class="py-line"> <tt class="py-comment"># FIXME: should the break character be at the end of the</tt> </tt>
-<a name="L707"></a><tt class="py-lineno">707</tt> <tt class="py-line"> <tt class="py-comment"># chunk, or the beginning of the next chunk?</tt> </tt>
-<a name="L708"></a><tt class="py-lineno">708</tt> <tt class="py-line"> <tt id="link-397" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-397', 'start', 'link-315');">start</a></tt> <tt class="py-op">=</tt> <tt class="py-name">word</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-name">last_break</tt><tt class="py-op">.</tt><tt id="link-398" class="py-name"><a title="lxml.etree.TreeBuilder.end" class="py-name" href="#" onclick="return doclink('link-398', 'end', 'link-314');">end</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> </tt>
-<a name="L709"></a><tt class="py-lineno">709</tt> <tt class="py-line"> <tt class="py-name">result</tt> <tt class="py-op">+=</tt> <tt id="link-399" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-399', 'start', 'link-315');">start</a></tt> <tt class="py-op">+</tt> <tt class="py-name">break_character</tt> </tt>
-<a name="L710"></a><tt class="py-lineno">710</tt> <tt class="py-line"> <tt class="py-name">word</tt> <tt class="py-op">=</tt> <tt class="py-name">word</tt><tt class="py-op">[</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-400" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-400', 'start', 'link-315');">start</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
-<a name="L711"></a><tt class="py-lineno">711</tt> <tt class="py-line"> <tt class="py-name">result</tt> <tt class="py-op">+=</tt> <tt class="py-name">word</tt> </tt>
-<a name="L712"></a><tt class="py-lineno">712</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">result</tt> </tt>
-</div><a name="L713"></a><tt class="py-lineno">713</tt> <tt class="py-line"> </tt><script type="text/javascript">
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-392', 'text', 'link-129');">text</a></tt> </tt>
+</div><a name="L705"></a><tt class="py-lineno">705</tt> <tt class="py-line"> </tt>
+<a name="L706"></a><tt class="py-lineno">706</tt> <tt class="py-line"><tt id="link-393" class="py-name" targets="Variable lxml.html.clean._break_prefer_re=lxml.html.clean-module.html#_break_prefer_re"><a title="lxml.html.clean._break_prefer_re" class="py-name" href="#" onclick="return doclink('link-393', '_break_prefer_re', 'link-393');">_break_prefer_re</a></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-string">r'[^a-z]'</tt><tt class="py-op">,</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt id="link-394" class="py-name"><a title="lxml.html.builder.I" class="py-name" href="#" onclick="return doclink('link-394', 'I', 'link-23');">I</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L707"></a><tt class="py-lineno">707</tt> <tt class="py-line"> </tt>
+<a name="_insert_break"></a><div id="_insert_break-def"><a name="L708"></a><tt class="py-lineno">708</tt> <a class="py-toggle" href="#" id="_insert_break-toggle" onclick="return toggle('_insert_break');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean-module.html#_insert_break">_insert_break</a><tt class="py-op">(</tt><tt class="py-param">word</tt><tt class="py-op">,</tt> <tt class="py-param">width</tt><tt class="py-op">,</tt> <tt class="py-param">break_character</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_insert_break-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_insert_break-expanded"><a name="L709"></a><tt class="py-lineno">709</tt> <tt class="py-line"> <tt class="py-name">orig_word</tt> <tt class="py-op">=</tt> <tt class="py-name">word</tt> </tt>
+<a name="L710"></a><tt class="py-lineno">710</tt> <tt class="py-line"> <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
+<a name="L711"></a><tt class="py-lineno">711</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">word</tt><tt class="py-op">)</tt> <tt class="py-op">></tt> <tt class="py-name">width</tt><tt class="py-op">:</tt> </tt>
+<a name="L712"></a><tt class="py-lineno">712</tt> <tt class="py-line"> <tt id="link-395" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-395', 'start', 'link-317');">start</a></tt> <tt class="py-op">=</tt> <tt class="py-name">word</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-name">width</tt><tt class="py-op">]</tt> </tt>
+<a name="L713"></a><tt class="py-lineno">713</tt> <tt class="py-line"> <tt class="py-name">breaks</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-396" class="py-name"><a title="lxml.html.clean._break_prefer_re" class="py-name" href="#" onclick="return doclink('link-396', '_break_prefer_re', 'link-393');">_break_prefer_re</a></tt><tt class="py-op">.</tt><tt class="py-name">finditer</tt><tt class="py-op">(</tt><tt id="link-397" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-397', 'start', 'link-317');">start</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L714"></a><tt class="py-lineno">714</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">breaks</tt><tt class="py-op">:</tt> </tt>
+<a name="L715"></a><tt class="py-lineno">715</tt> <tt class="py-line"> <tt class="py-name">last_break</tt> <tt class="py-op">=</tt> <tt class="py-name">breaks</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="L716"></a><tt class="py-lineno">716</tt> <tt class="py-line"> <tt class="py-comment"># Only walk back up to 10 characters to find a nice break:</tt> </tt>
+<a name="L717"></a><tt class="py-lineno">717</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">last_break</tt><tt class="py-op">.</tt><tt id="link-398" class="py-name"><a title="lxml.etree.TreeBuilder.end" class="py-name" href="#" onclick="return doclink('link-398', 'end', 'link-316');">end</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">></tt> <tt class="py-name">width</tt><tt class="py-op">-</tt><tt class="py-number">10</tt><tt class="py-op">:</tt> </tt>
+<a name="L718"></a><tt class="py-lineno">718</tt> <tt class="py-line"> <tt class="py-comment"># FIXME: should the break character be at the end of the</tt> </tt>
+<a name="L719"></a><tt class="py-lineno">719</tt> <tt class="py-line"> <tt class="py-comment"># chunk, or the beginning of the next chunk?</tt> </tt>
+<a name="L720"></a><tt class="py-lineno">720</tt> <tt class="py-line"> <tt id="link-399" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-399', 'start', 'link-317');">start</a></tt> <tt class="py-op">=</tt> <tt class="py-name">word</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-name">last_break</tt><tt class="py-op">.</tt><tt id="link-400" class="py-name"><a title="lxml.etree.TreeBuilder.end" class="py-name" href="#" onclick="return doclink('link-400', 'end', 'link-316');">end</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> </tt>
+<a name="L721"></a><tt class="py-lineno">721</tt> <tt class="py-line"> <tt class="py-name">result</tt> <tt class="py-op">+=</tt> <tt id="link-401" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-401', 'start', 'link-317');">start</a></tt> <tt class="py-op">+</tt> <tt class="py-name">break_character</tt> </tt>
+<a name="L722"></a><tt class="py-lineno">722</tt> <tt class="py-line"> <tt class="py-name">word</tt> <tt class="py-op">=</tt> <tt class="py-name">word</tt><tt class="py-op">[</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-402" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-402', 'start', 'link-317');">start</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
+<a name="L723"></a><tt class="py-lineno">723</tt> <tt class="py-line"> <tt class="py-name">result</tt> <tt class="py-op">+=</tt> <tt class="py-name">word</tt> </tt>
+<a name="L724"></a><tt class="py-lineno">724</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">result</tt> </tt>
+</div><a name="L725"></a><tt class="py-lineno">725</tt> <tt class="py-line"> </tt><script type="text/javascript">
<!--
expandto(location.href);
// -->
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:38 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:14 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<dt><tt class="rst-docutils literal">scripts</tt>:</dt>
<dd>Removes any <tt class="rst-docutils literal"><script></tt> tags.</dd>
<dt><tt class="rst-docutils literal">javascript</tt>:</dt>
-<dd>Removes any Javascript, like an <tt class="rst-docutils literal">onclick</tt> attribute.</dd>
+<dd>Removes any Javascript, like an <tt class="rst-docutils literal">onclick</tt> attribute. Also removes stylesheets
+as they could contain Javascript.</dd>
<dt><tt class="rst-docutils literal">comments</tt>:</dt>
<dd>Removes any comments.</dd>
<dt><tt class="rst-docutils literal">style</tt>:</dt>
implement more complex rules for what can be embedded.
Anything that passes this test will be shown, regardless of
the value of (for instance) <tt class="rst-docutils literal">embedded</tt>.</p>
-<p class="rst-last">Note that this parameter might not work as intended if you do not
+<p>Note that this parameter might not work as intended if you do not
make the links absolute before doing the cleaning.</p>
+<p class="rst-last">Note that you may also need to set <tt class="rst-docutils literal">whitelist_tags</tt>.</p>
</dd>
<dt><tt class="rst-docutils literal">whitelist_tags</tt>:</dt>
<dd>A set of tags that can be included with <tt class="rst-docutils literal">host_whitelist</tt>.
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:36 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:13 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td><span class="summary-sig"><a href="lxml.html.diff-module.html#html_annotate" class="summary-sig-name">html_annotate</a>(<span class="summary-sig-arg">doclist</span>,
- <span class="summary-sig-arg">markup</span>=<span class="summary-sig-default"><function default_markup at 0x21076e0></span>)</span><br />
+ <span class="summary-sig-arg">markup</span>=<span class="summary-sig-default"><function default_markup at 0x3892758></span>)</span><br />
doclist should be ordered from oldest to newest, like:</td>
<td align="right" valign="top">
<span class="codelink"><a href="lxml.html.diff-pysrc.html#html_annotate">source code</a></span>
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr valign="top"><td>
<h3 class="epydoc"><span class="sig"><span class="sig-name">html_annotate</span>(<span class="sig-arg">doclist</span>,
- <span class="sig-arg">markup</span>=<span class="sig-default"><function default_markup at 0x21076e0></span>)</span>
+ <span class="sig-arg">markup</span>=<span class="sig-default"><function default_markup at 0x3892758></span>)</span>
</h3>
</td><td align="right" valign="top"
><span class="codelink"><a href="lxml.html.diff-pysrc.html#html_annotate">source code</a></span>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:36 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:13 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:38 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:12 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
</div><div id="HTMLParser-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="HTMLParser-expanded"><a name="L26"></a><tt class="py-lineno"> 26</tt> <tt class="py-line"> <tt class="py-docstring">"""An html5lib HTML parser with lxml as tree."""</tt> </tt>
<a name="L27"></a><tt class="py-lineno"> 27</tt> <tt class="py-line"> </tt>
<a name="HTMLParser.__init__"></a><div id="HTMLParser.__init__-def"><a name="L28"></a><tt class="py-lineno"> 28</tt> <a class="py-toggle" href="#" id="HTMLParser.__init__-toggle" onclick="return toggle('HTMLParser.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.html5parser.HTMLParser-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">strict</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-param">kwargs</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="HTMLParser.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="HTMLParser.__init__-expanded"><a name="L29"></a><tt class="py-lineno"> 29</tt> <tt class="py-line"> <tt class="py-name">_HTMLParser</tt><tt class="py-op">.</tt><tt id="link-14" class="py-name" targets="Method lxml.builder.ElementMaker.__init__()=lxml.builder.ElementMaker-class.html#__init__,Method lxml.cssselect.CSSSelector.__init__()=lxml.cssselect.CSSSelector-class.html#__init__,Method lxml.doctestcompare._RestoreChecker.__init__()=lxml.doctestcompare._RestoreChecker-class.html#__init__,Method lxml.etree.AttributeBasedElementClassLookup.__init__()=lxml.etree.AttributeBasedElementClassLookup-class.html#__init__,Method lxml.etree.CommentBase.__init__()=lxml.etree.CommentBase-class.html#__init__,Method lxml.etree.DTD.__init__()=lxml.etree.DTD-class.html#__init__,Method lxml.etree.ETCompatXMLParser.__init__()=lxml.etree.ETCompatXMLParser-class.html#__init__,Method lxml.etree.ETXPath.__init__()=lxml.etree.ETXPath-class.html#__init__,Method lxml.etree.ElementBase.__init__()=lxml.etree.ElementBase-class.html#__init__,Method lxml.etree.ElementDefaultClassLookup.__init__()=lxml.etree.ElementDefaultClassLookup-class.html#__init__,Method lxml.etree.ElementNamespaceClassLookup.__init__()=lxml.etree.ElementNamespaceClassLookup-class.html#__init__,Method lxml.etree.EntityBase.__init__()=lxml.etree.EntityBase-class.html#__init__,Method lxml.etree.FallbackElementClassLookup.__init__()=lxml.etree.FallbackElementClassLookup-class.html#__init__,Method lxml.etree.HTMLParser.__init__()=lxml.etree.HTMLParser-class.html#__init__,Method lxml.etree.LxmlError.__init__()=lxml.etree.LxmlError-class.html#__init__,Method lxml.etree.PIBase.__init__()=lxml.etree.PIBase-class.html#__init__,Method lxml.etree.ParseError.__init__()=lxml.etree.ParseError-class.html#__init__,Method lxml.etree.PyErrorLog.__init__()=lxml.etree.PyErrorLog-class.html#__init__,Method lxml.etree.QName.__init__()=lxml.etree.QName-class.html#__init__,Method lxml.etree.RelaxNG.__init__()=lxml.etree.RelaxNG-class.html#__init__,Method lxml.etree.Schematron.__init__()=lxml.etree.Schematron-class.html#__init__,Method lxml.etree.TreeBuilder.__init__()=lxml.etree.TreeBuilder-class.html#__init__,Method lxml.etree.XInclude.__init__()=lxml.etree.XInclude-class.html#__init__,Method lxml.etree.XMLParser.__init__()=lxml.etree.XMLParser-class.html#__init__,Method lxml.etree.XMLSchema.__init__()=lxml.etree.XMLSchema-class.html#__init__,Method lxml.etree.XPath.__init__()=lxml.etree.XPath-class.html#__init__,Method lxml.etree.XPathDocumentEvaluator.__init__()=lxml.etree.XPathDocumentEvaluator-class.html#__init__,Method lxml.etree.XPathElementEvaluator.__init__()=lxml.etree.XPathElementEvaluator-class.html#__init__,Method lxml.etree.XSLT.__init__()=lxml.etree.XSLT-class.html#__init__,Method lxml.etree.XSLTAccessControl.__init__()=lxml.etree.XSLTAccessControl-class.html#__init__,Method lxml.etree._BaseErrorLog.__init__()=lxml.etree._BaseErrorLog-class.html#__init__,Method lxml.etree._DomainErrorLog.__init__()=lxml.etree._DomainErrorLog-class.html#__init__,Method lxml.etree._ErrorLog.__init__()=lxml.etree._ErrorLog-class.html#__init__,Method lxml.etree._ListErrorLog.__init__()=lxml.etree._ListErrorLog-class.html#__init__,Method lxml.etree._RotatingErrorLog.__init__()=lxml.etree._RotatingErrorLog-class.html#__init__,Method lxml.etree._TargetParserResult.__init__()=lxml.etree._TargetParserResult-class.html#__init__,Method lxml.etree._XPathEvaluatorBase.__init__()=lxml.etree._XPathEvaluatorBase-class.html#__init__,Method lxml.etree.iterparse.__init__()=lxml.etree.iterparse-class.html#__init__,Method lxml.etree.iterwalk.__init__()=lxml.etree.iterwalk-class.html#__init__,Method lxml.etree.xmlfile.__init__()=lxml.etree.xmlfile-class.html#__init__,Method lxml.html.CheckboxValues.__init__()=lxml.html.CheckboxValues-class.html#__init__,Method lxml.html.FieldsDict.__init__()=lxml.html.FieldsDict-class.html#__init__,Method lxml.html.HTMLParser.__init__()=lxml.html.HTMLParser-class.html#__init__,Method lxml.html.HtmlElementClassLookup.__init__()=lxml.html.HtmlElementClassLookup-class.html#__init__,Method lxml.html.InputGetter.__init__()=lxml.html.InputGetter-class.html#__init__,Method lxml.html.MultipleSelectOptions.__init__()=lxml.html.MultipleSelectOptions-class.html#__init__,Method lxml.html.XHTMLParser.__init__()=lxml.html.XHTMLParser-class.html#__init__,Method lxml.html._MethodFunc.__init__()=lxml.html._MethodFunc-class.html#__init__,Method lxml.html.clean.Cleaner.__init__()=lxml.html.clean.Cleaner-class.html#__init__,Method lxml.html.formfill.DefaultErrorCreator.__init__()=lxml.html.formfill.DefaultErrorCreator-class.html#__init__,Method lxml.html.html5parser.HTMLParser.__init__()=lxml.html.html5parser.HTMLParser-class.html#__init__,Method lxml.html.html5parser.XHTMLParser.__init__()=lxml.html.html5parser.XHTMLParser-class.html#__init__,Method lxml.isoschematron.Schematron.__init__()=lxml.isoschematron.Schematron-class.html#__init__,Method lxml.objectify.ElementMaker.__init__()=lxml.objectify.ElementMaker-class.html#__init__,Method lxml.objectify.ObjectPath.__init__()=lxml.objectify.ObjectPath-class.html#__init__,Method lxml.objectify.ObjectifyElementClassLookup.__init__()=lxml.objectify.ObjectifyElementClassLookup-class.html#__init__,Method lxml.objectify.PyType.__init__()=lxml.objectify.PyType-class.html#__init__,Method lxml.sax.ElementTreeContentHandler.__init__()=lxml.sax.ElementTreeContentHandler-class.html#__init__,Method lxml.sax.ElementTreeProducer.__init__()=lxml.sax.ElementTreeProducer-class.html#__init__,Method lxml.tests.common_imports.LargeFileLike.__init__()=lxml.tests.common_imports.LargeFileLike-class.html#__init__,Method lxml.tests.common_imports.LargeFileLikeUnicode.__init__()=lxml.tests.common_imports.LargeFileLikeUnicode-class.html#__init__,Method lxml.tests.common_imports.SillyFileLike.__init__()=lxml.tests.common_imports.SillyFileLike-class.html#__init__,Method lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.__init__()=lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike-class.html#__init__,Method lxml.tests.test_threading.ThreadPipelineTestCase.Worker.__init__()=lxml.tests.test_threading.ThreadPipelineTestCase.Worker-class.html#__init__,Method lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver.__init__()=lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver-class.html#__init__"><a title="lxml.builder.ElementMaker.__init__
+</div><div id="HTMLParser.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="HTMLParser.__init__-expanded"><a name="L29"></a><tt class="py-lineno"> 29</tt> <tt class="py-line"> <tt class="py-name">_HTMLParser</tt><tt class="py-op">.</tt><tt id="link-14" class="py-name" targets="Method lxml.builder.ElementMaker.__init__()=lxml.builder.ElementMaker-class.html#__init__,Method lxml.cssselect.CSSSelector.__init__()=lxml.cssselect.CSSSelector-class.html#__init__,Method lxml.doctestcompare._RestoreChecker.__init__()=lxml.doctestcompare._RestoreChecker-class.html#__init__,Method lxml.etree.AttributeBasedElementClassLookup.__init__()=lxml.etree.AttributeBasedElementClassLookup-class.html#__init__,Method lxml.etree.CommentBase.__init__()=lxml.etree.CommentBase-class.html#__init__,Method lxml.etree.DTD.__init__()=lxml.etree.DTD-class.html#__init__,Method lxml.etree.ETCompatXMLParser.__init__()=lxml.etree.ETCompatXMLParser-class.html#__init__,Method lxml.etree.ETXPath.__init__()=lxml.etree.ETXPath-class.html#__init__,Method lxml.etree.ElementBase.__init__()=lxml.etree.ElementBase-class.html#__init__,Method lxml.etree.ElementDefaultClassLookup.__init__()=lxml.etree.ElementDefaultClassLookup-class.html#__init__,Method lxml.etree.ElementNamespaceClassLookup.__init__()=lxml.etree.ElementNamespaceClassLookup-class.html#__init__,Method lxml.etree.EntityBase.__init__()=lxml.etree.EntityBase-class.html#__init__,Method lxml.etree.FallbackElementClassLookup.__init__()=lxml.etree.FallbackElementClassLookup-class.html#__init__,Method lxml.etree.HTMLParser.__init__()=lxml.etree.HTMLParser-class.html#__init__,Method lxml.etree.LxmlError.__init__()=lxml.etree.LxmlError-class.html#__init__,Method lxml.etree.PIBase.__init__()=lxml.etree.PIBase-class.html#__init__,Method lxml.etree.ParseError.__init__()=lxml.etree.ParseError-class.html#__init__,Method lxml.etree.PyErrorLog.__init__()=lxml.etree.PyErrorLog-class.html#__init__,Method lxml.etree.QName.__init__()=lxml.etree.QName-class.html#__init__,Method lxml.etree.RelaxNG.__init__()=lxml.etree.RelaxNG-class.html#__init__,Method lxml.etree.Schematron.__init__()=lxml.etree.Schematron-class.html#__init__,Method lxml.etree.TreeBuilder.__init__()=lxml.etree.TreeBuilder-class.html#__init__,Method lxml.etree.XInclude.__init__()=lxml.etree.XInclude-class.html#__init__,Method lxml.etree.XMLParser.__init__()=lxml.etree.XMLParser-class.html#__init__,Method lxml.etree.XMLSchema.__init__()=lxml.etree.XMLSchema-class.html#__init__,Method lxml.etree.XPath.__init__()=lxml.etree.XPath-class.html#__init__,Method lxml.etree.XPathDocumentEvaluator.__init__()=lxml.etree.XPathDocumentEvaluator-class.html#__init__,Method lxml.etree.XPathElementEvaluator.__init__()=lxml.etree.XPathElementEvaluator-class.html#__init__,Method lxml.etree.XSLT.__init__()=lxml.etree.XSLT-class.html#__init__,Method lxml.etree.XSLTAccessControl.__init__()=lxml.etree.XSLTAccessControl-class.html#__init__,Method lxml.etree._BaseErrorLog.__init__()=lxml.etree._BaseErrorLog-class.html#__init__,Method lxml.etree._DomainErrorLog.__init__()=lxml.etree._DomainErrorLog-class.html#__init__,Method lxml.etree._ErrorLog.__init__()=lxml.etree._ErrorLog-class.html#__init__,Method lxml.etree._ListErrorLog.__init__()=lxml.etree._ListErrorLog-class.html#__init__,Method lxml.etree._RotatingErrorLog.__init__()=lxml.etree._RotatingErrorLog-class.html#__init__,Method lxml.etree._TargetParserResult.__init__()=lxml.etree._TargetParserResult-class.html#__init__,Method lxml.etree._XPathEvaluatorBase.__init__()=lxml.etree._XPathEvaluatorBase-class.html#__init__,Method lxml.etree.iterparse.__init__()=lxml.etree.iterparse-class.html#__init__,Method lxml.etree.iterwalk.__init__()=lxml.etree.iterwalk-class.html#__init__,Method lxml.etree.xmlfile.__init__()=lxml.etree.xmlfile-class.html#__init__,Method lxml.html.CheckboxValues.__init__()=lxml.html.CheckboxValues-class.html#__init__,Method lxml.html.FieldsDict.__init__()=lxml.html.FieldsDict-class.html#__init__,Method lxml.html.HTMLParser.__init__()=lxml.html.HTMLParser-class.html#__init__,Method lxml.html.HtmlElementClassLookup.__init__()=lxml.html.HtmlElementClassLookup-class.html#__init__,Method lxml.html.InputGetter.__init__()=lxml.html.InputGetter-class.html#__init__,Method lxml.html.MultipleSelectOptions.__init__()=lxml.html.MultipleSelectOptions-class.html#__init__,Method lxml.html.XHTMLParser.__init__()=lxml.html.XHTMLParser-class.html#__init__,Method lxml.html._MethodFunc.__init__()=lxml.html._MethodFunc-class.html#__init__,Method lxml.html.clean.Cleaner.__init__()=lxml.html.clean.Cleaner-class.html#__init__,Method lxml.html.formfill.DefaultErrorCreator.__init__()=lxml.html.formfill.DefaultErrorCreator-class.html#__init__,Method lxml.html.html5parser.HTMLParser.__init__()=lxml.html.html5parser.HTMLParser-class.html#__init__,Method lxml.html.html5parser.XHTMLParser.__init__()=lxml.html.html5parser.XHTMLParser-class.html#__init__,Method lxml.isoschematron.Schematron.__init__()=lxml.isoschematron.Schematron-class.html#__init__,Method lxml.objectify.ElementMaker.__init__()=lxml.objectify.ElementMaker-class.html#__init__,Method lxml.objectify.ObjectPath.__init__()=lxml.objectify.ObjectPath-class.html#__init__,Method lxml.objectify.ObjectifyElementClassLookup.__init__()=lxml.objectify.ObjectifyElementClassLookup-class.html#__init__,Method lxml.objectify.PyType.__init__()=lxml.objectify.PyType-class.html#__init__,Method lxml.sax.ElementTreeContentHandler.__init__()=lxml.sax.ElementTreeContentHandler-class.html#__init__,Method lxml.sax.ElementTreeProducer.__init__()=lxml.sax.ElementTreeProducer-class.html#__init__,Method lxml.tests.common_imports.LargeFileLike.__init__()=lxml.tests.common_imports.LargeFileLike-class.html#__init__,Method lxml.tests.common_imports.LargeFileLikeUnicode.__init__()=lxml.tests.common_imports.LargeFileLikeUnicode-class.html#__init__,Method lxml.tests.common_imports.SillyFileLike.__init__()=lxml.tests.common_imports.SillyFileLike-class.html#__init__,Method lxml.tests.dummy_http_server.HTTPRequestCollector.__init__()=lxml.tests.dummy_http_server.HTTPRequestCollector-class.html#__init__,Method lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.__init__()=lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike-class.html#__init__,Method lxml.tests.test_threading.ThreadPipelineTestCase.Worker.__init__()=lxml.tests.test_threading.ThreadPipelineTestCase.Worker-class.html#__init__,Method lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver.__init__()=lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver-class.html#__init__"><a title="lxml.builder.ElementMaker.__init__
lxml.cssselect.CSSSelector.__init__
lxml.doctestcompare._RestoreChecker.__init__
lxml.etree.AttributeBasedElementClassLookup.__init__
lxml.tests.common_imports.LargeFileLike.__init__
lxml.tests.common_imports.LargeFileLikeUnicode.__init__
lxml.tests.common_imports.SillyFileLike.__init__
+lxml.tests.dummy_http_server.HTTPRequestCollector.__init__
lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.__init__
lxml.tests.test_threading.ThreadPipelineTestCase.Worker.__init__
lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver.__init__" class="py-name" href="#" onclick="return doclink('link-14', '__init__', 'link-14');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">strict</tt><tt class="py-op">=</tt><tt class="py-name">strict</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">=</tt><tt id="link-15" class="py-name"><a title="lxml.etree.TreeBuilder
lxml.tests.common_imports.LargeFileLike.__init__
lxml.tests.common_imports.LargeFileLikeUnicode.__init__
lxml.tests.common_imports.SillyFileLike.__init__
+lxml.tests.dummy_http_server.HTTPRequestCollector.__init__
lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.__init__
lxml.tests.test_threading.ThreadPipelineTestCase.Worker.__init__
lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver.__init__" class="py-name" href="#" onclick="return doclink('link-17', '__init__', 'link-14');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">strict</tt><tt class="py-op">=</tt><tt class="py-name">strict</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">=</tt><tt id="link-18" class="py-name"><a title="lxml.etree.TreeBuilder
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:36 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:13 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:38 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:13 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:36 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:13 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:36 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:12 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<a name="L220"></a><tt class="py-lineno">220</tt> <tt class="py-line"> <tt class="py-param">store_schematron</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-param">store_xslt</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-param">store_report</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> </tt>
<a name="L221"></a><tt class="py-lineno">221</tt> <tt class="py-line"> <tt class="py-param">phase</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="Schematron.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Schematron.__init__-expanded"><a name="L222"></a><tt class="py-lineno">222</tt> <tt class="py-line"> <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-94" class="py-name" targets="Class lxml.etree.Schematron=lxml.etree.Schematron-class.html,Class lxml.isoschematron.Schematron=lxml.isoschematron.Schematron-class.html"><a title="lxml.etree.Schematron
-lxml.isoschematron.Schematron" class="py-name" href="#" onclick="return doclink('link-94', 'Schematron', 'link-94');">Schematron</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-95" class="py-name" targets="Method lxml.builder.ElementMaker.__init__()=lxml.builder.ElementMaker-class.html#__init__,Method lxml.cssselect.CSSSelector.__init__()=lxml.cssselect.CSSSelector-class.html#__init__,Method lxml.doctestcompare._RestoreChecker.__init__()=lxml.doctestcompare._RestoreChecker-class.html#__init__,Method lxml.etree.AttributeBasedElementClassLookup.__init__()=lxml.etree.AttributeBasedElementClassLookup-class.html#__init__,Method lxml.etree.CommentBase.__init__()=lxml.etree.CommentBase-class.html#__init__,Method lxml.etree.DTD.__init__()=lxml.etree.DTD-class.html#__init__,Method lxml.etree.ETCompatXMLParser.__init__()=lxml.etree.ETCompatXMLParser-class.html#__init__,Method lxml.etree.ETXPath.__init__()=lxml.etree.ETXPath-class.html#__init__,Method lxml.etree.ElementBase.__init__()=lxml.etree.ElementBase-class.html#__init__,Method lxml.etree.ElementDefaultClassLookup.__init__()=lxml.etree.ElementDefaultClassLookup-class.html#__init__,Method lxml.etree.ElementNamespaceClassLookup.__init__()=lxml.etree.ElementNamespaceClassLookup-class.html#__init__,Method lxml.etree.EntityBase.__init__()=lxml.etree.EntityBase-class.html#__init__,Method lxml.etree.FallbackElementClassLookup.__init__()=lxml.etree.FallbackElementClassLookup-class.html#__init__,Method lxml.etree.HTMLParser.__init__()=lxml.etree.HTMLParser-class.html#__init__,Method lxml.etree.LxmlError.__init__()=lxml.etree.LxmlError-class.html#__init__,Method lxml.etree.PIBase.__init__()=lxml.etree.PIBase-class.html#__init__,Method lxml.etree.ParseError.__init__()=lxml.etree.ParseError-class.html#__init__,Method lxml.etree.PyErrorLog.__init__()=lxml.etree.PyErrorLog-class.html#__init__,Method lxml.etree.QName.__init__()=lxml.etree.QName-class.html#__init__,Method lxml.etree.RelaxNG.__init__()=lxml.etree.RelaxNG-class.html#__init__,Method lxml.etree.Schematron.__init__()=lxml.etree.Schematron-class.html#__init__,Method lxml.etree.TreeBuilder.__init__()=lxml.etree.TreeBuilder-class.html#__init__,Method lxml.etree.XInclude.__init__()=lxml.etree.XInclude-class.html#__init__,Method lxml.etree.XMLParser.__init__()=lxml.etree.XMLParser-class.html#__init__,Method lxml.etree.XMLSchema.__init__()=lxml.etree.XMLSchema-class.html#__init__,Method lxml.etree.XPath.__init__()=lxml.etree.XPath-class.html#__init__,Method lxml.etree.XPathDocumentEvaluator.__init__()=lxml.etree.XPathDocumentEvaluator-class.html#__init__,Method lxml.etree.XPathElementEvaluator.__init__()=lxml.etree.XPathElementEvaluator-class.html#__init__,Method lxml.etree.XSLT.__init__()=lxml.etree.XSLT-class.html#__init__,Method lxml.etree.XSLTAccessControl.__init__()=lxml.etree.XSLTAccessControl-class.html#__init__,Method lxml.etree._BaseErrorLog.__init__()=lxml.etree._BaseErrorLog-class.html#__init__,Method lxml.etree._DomainErrorLog.__init__()=lxml.etree._DomainErrorLog-class.html#__init__,Method lxml.etree._ErrorLog.__init__()=lxml.etree._ErrorLog-class.html#__init__,Method lxml.etree._ListErrorLog.__init__()=lxml.etree._ListErrorLog-class.html#__init__,Method lxml.etree._RotatingErrorLog.__init__()=lxml.etree._RotatingErrorLog-class.html#__init__,Method lxml.etree._TargetParserResult.__init__()=lxml.etree._TargetParserResult-class.html#__init__,Method lxml.etree._XPathEvaluatorBase.__init__()=lxml.etree._XPathEvaluatorBase-class.html#__init__,Method lxml.etree.iterparse.__init__()=lxml.etree.iterparse-class.html#__init__,Method lxml.etree.iterwalk.__init__()=lxml.etree.iterwalk-class.html#__init__,Method lxml.etree.xmlfile.__init__()=lxml.etree.xmlfile-class.html#__init__,Method lxml.html.CheckboxValues.__init__()=lxml.html.CheckboxValues-class.html#__init__,Method lxml.html.FieldsDict.__init__()=lxml.html.FieldsDict-class.html#__init__,Method lxml.html.HTMLParser.__init__()=lxml.html.HTMLParser-class.html#__init__,Method lxml.html.HtmlElementClassLookup.__init__()=lxml.html.HtmlElementClassLookup-class.html#__init__,Method lxml.html.InputGetter.__init__()=lxml.html.InputGetter-class.html#__init__,Method lxml.html.MultipleSelectOptions.__init__()=lxml.html.MultipleSelectOptions-class.html#__init__,Method lxml.html.XHTMLParser.__init__()=lxml.html.XHTMLParser-class.html#__init__,Method lxml.html._MethodFunc.__init__()=lxml.html._MethodFunc-class.html#__init__,Method lxml.html.clean.Cleaner.__init__()=lxml.html.clean.Cleaner-class.html#__init__,Method lxml.html.formfill.DefaultErrorCreator.__init__()=lxml.html.formfill.DefaultErrorCreator-class.html#__init__,Method lxml.html.html5parser.HTMLParser.__init__()=lxml.html.html5parser.HTMLParser-class.html#__init__,Method lxml.html.html5parser.XHTMLParser.__init__()=lxml.html.html5parser.XHTMLParser-class.html#__init__,Method lxml.isoschematron.Schematron.__init__()=lxml.isoschematron.Schematron-class.html#__init__,Method lxml.objectify.ElementMaker.__init__()=lxml.objectify.ElementMaker-class.html#__init__,Method lxml.objectify.ObjectPath.__init__()=lxml.objectify.ObjectPath-class.html#__init__,Method lxml.objectify.ObjectifyElementClassLookup.__init__()=lxml.objectify.ObjectifyElementClassLookup-class.html#__init__,Method lxml.objectify.PyType.__init__()=lxml.objectify.PyType-class.html#__init__,Method lxml.sax.ElementTreeContentHandler.__init__()=lxml.sax.ElementTreeContentHandler-class.html#__init__,Method lxml.sax.ElementTreeProducer.__init__()=lxml.sax.ElementTreeProducer-class.html#__init__,Method lxml.tests.common_imports.LargeFileLike.__init__()=lxml.tests.common_imports.LargeFileLike-class.html#__init__,Method lxml.tests.common_imports.LargeFileLikeUnicode.__init__()=lxml.tests.common_imports.LargeFileLikeUnicode-class.html#__init__,Method lxml.tests.common_imports.SillyFileLike.__init__()=lxml.tests.common_imports.SillyFileLike-class.html#__init__,Method lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.__init__()=lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike-class.html#__init__,Method lxml.tests.test_threading.ThreadPipelineTestCase.Worker.__init__()=lxml.tests.test_threading.ThreadPipelineTestCase.Worker-class.html#__init__,Method lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver.__init__()=lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver-class.html#__init__"><a title="lxml.builder.ElementMaker.__init__
+lxml.isoschematron.Schematron" class="py-name" href="#" onclick="return doclink('link-94', 'Schematron', 'link-94');">Schematron</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-95" class="py-name" targets="Method lxml.builder.ElementMaker.__init__()=lxml.builder.ElementMaker-class.html#__init__,Method lxml.cssselect.CSSSelector.__init__()=lxml.cssselect.CSSSelector-class.html#__init__,Method lxml.doctestcompare._RestoreChecker.__init__()=lxml.doctestcompare._RestoreChecker-class.html#__init__,Method lxml.etree.AttributeBasedElementClassLookup.__init__()=lxml.etree.AttributeBasedElementClassLookup-class.html#__init__,Method lxml.etree.CommentBase.__init__()=lxml.etree.CommentBase-class.html#__init__,Method lxml.etree.DTD.__init__()=lxml.etree.DTD-class.html#__init__,Method lxml.etree.ETCompatXMLParser.__init__()=lxml.etree.ETCompatXMLParser-class.html#__init__,Method lxml.etree.ETXPath.__init__()=lxml.etree.ETXPath-class.html#__init__,Method lxml.etree.ElementBase.__init__()=lxml.etree.ElementBase-class.html#__init__,Method lxml.etree.ElementDefaultClassLookup.__init__()=lxml.etree.ElementDefaultClassLookup-class.html#__init__,Method lxml.etree.ElementNamespaceClassLookup.__init__()=lxml.etree.ElementNamespaceClassLookup-class.html#__init__,Method lxml.etree.EntityBase.__init__()=lxml.etree.EntityBase-class.html#__init__,Method lxml.etree.FallbackElementClassLookup.__init__()=lxml.etree.FallbackElementClassLookup-class.html#__init__,Method lxml.etree.HTMLParser.__init__()=lxml.etree.HTMLParser-class.html#__init__,Method lxml.etree.LxmlError.__init__()=lxml.etree.LxmlError-class.html#__init__,Method lxml.etree.PIBase.__init__()=lxml.etree.PIBase-class.html#__init__,Method lxml.etree.ParseError.__init__()=lxml.etree.ParseError-class.html#__init__,Method lxml.etree.PyErrorLog.__init__()=lxml.etree.PyErrorLog-class.html#__init__,Method lxml.etree.QName.__init__()=lxml.etree.QName-class.html#__init__,Method lxml.etree.RelaxNG.__init__()=lxml.etree.RelaxNG-class.html#__init__,Method lxml.etree.Schematron.__init__()=lxml.etree.Schematron-class.html#__init__,Method lxml.etree.TreeBuilder.__init__()=lxml.etree.TreeBuilder-class.html#__init__,Method lxml.etree.XInclude.__init__()=lxml.etree.XInclude-class.html#__init__,Method lxml.etree.XMLParser.__init__()=lxml.etree.XMLParser-class.html#__init__,Method lxml.etree.XMLSchema.__init__()=lxml.etree.XMLSchema-class.html#__init__,Method lxml.etree.XPath.__init__()=lxml.etree.XPath-class.html#__init__,Method lxml.etree.XPathDocumentEvaluator.__init__()=lxml.etree.XPathDocumentEvaluator-class.html#__init__,Method lxml.etree.XPathElementEvaluator.__init__()=lxml.etree.XPathElementEvaluator-class.html#__init__,Method lxml.etree.XSLT.__init__()=lxml.etree.XSLT-class.html#__init__,Method lxml.etree.XSLTAccessControl.__init__()=lxml.etree.XSLTAccessControl-class.html#__init__,Method lxml.etree._BaseErrorLog.__init__()=lxml.etree._BaseErrorLog-class.html#__init__,Method lxml.etree._DomainErrorLog.__init__()=lxml.etree._DomainErrorLog-class.html#__init__,Method lxml.etree._ErrorLog.__init__()=lxml.etree._ErrorLog-class.html#__init__,Method lxml.etree._ListErrorLog.__init__()=lxml.etree._ListErrorLog-class.html#__init__,Method lxml.etree._RotatingErrorLog.__init__()=lxml.etree._RotatingErrorLog-class.html#__init__,Method lxml.etree._TargetParserResult.__init__()=lxml.etree._TargetParserResult-class.html#__init__,Method lxml.etree._XPathEvaluatorBase.__init__()=lxml.etree._XPathEvaluatorBase-class.html#__init__,Method lxml.etree.iterparse.__init__()=lxml.etree.iterparse-class.html#__init__,Method lxml.etree.iterwalk.__init__()=lxml.etree.iterwalk-class.html#__init__,Method lxml.etree.xmlfile.__init__()=lxml.etree.xmlfile-class.html#__init__,Method lxml.html.CheckboxValues.__init__()=lxml.html.CheckboxValues-class.html#__init__,Method lxml.html.FieldsDict.__init__()=lxml.html.FieldsDict-class.html#__init__,Method lxml.html.HTMLParser.__init__()=lxml.html.HTMLParser-class.html#__init__,Method lxml.html.HtmlElementClassLookup.__init__()=lxml.html.HtmlElementClassLookup-class.html#__init__,Method lxml.html.InputGetter.__init__()=lxml.html.InputGetter-class.html#__init__,Method lxml.html.MultipleSelectOptions.__init__()=lxml.html.MultipleSelectOptions-class.html#__init__,Method lxml.html.XHTMLParser.__init__()=lxml.html.XHTMLParser-class.html#__init__,Method lxml.html._MethodFunc.__init__()=lxml.html._MethodFunc-class.html#__init__,Method lxml.html.clean.Cleaner.__init__()=lxml.html.clean.Cleaner-class.html#__init__,Method lxml.html.formfill.DefaultErrorCreator.__init__()=lxml.html.formfill.DefaultErrorCreator-class.html#__init__,Method lxml.html.html5parser.HTMLParser.__init__()=lxml.html.html5parser.HTMLParser-class.html#__init__,Method lxml.html.html5parser.XHTMLParser.__init__()=lxml.html.html5parser.XHTMLParser-class.html#__init__,Method lxml.isoschematron.Schematron.__init__()=lxml.isoschematron.Schematron-class.html#__init__,Method lxml.objectify.ElementMaker.__init__()=lxml.objectify.ElementMaker-class.html#__init__,Method lxml.objectify.ObjectPath.__init__()=lxml.objectify.ObjectPath-class.html#__init__,Method lxml.objectify.ObjectifyElementClassLookup.__init__()=lxml.objectify.ObjectifyElementClassLookup-class.html#__init__,Method lxml.objectify.PyType.__init__()=lxml.objectify.PyType-class.html#__init__,Method lxml.sax.ElementTreeContentHandler.__init__()=lxml.sax.ElementTreeContentHandler-class.html#__init__,Method lxml.sax.ElementTreeProducer.__init__()=lxml.sax.ElementTreeProducer-class.html#__init__,Method lxml.tests.common_imports.LargeFileLike.__init__()=lxml.tests.common_imports.LargeFileLike-class.html#__init__,Method lxml.tests.common_imports.LargeFileLikeUnicode.__init__()=lxml.tests.common_imports.LargeFileLikeUnicode-class.html#__init__,Method lxml.tests.common_imports.SillyFileLike.__init__()=lxml.tests.common_imports.SillyFileLike-class.html#__init__,Method lxml.tests.dummy_http_server.HTTPRequestCollector.__init__()=lxml.tests.dummy_http_server.HTTPRequestCollector-class.html#__init__,Method lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.__init__()=lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike-class.html#__init__,Method lxml.tests.test_threading.ThreadPipelineTestCase.Worker.__init__()=lxml.tests.test_threading.ThreadPipelineTestCase.Worker-class.html#__init__,Method lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver.__init__()=lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver-class.html#__init__"><a title="lxml.builder.ElementMaker.__init__
lxml.cssselect.CSSSelector.__init__
lxml.doctestcompare._RestoreChecker.__init__
lxml.etree.AttributeBasedElementClassLookup.__init__
lxml.tests.common_imports.LargeFileLike.__init__
lxml.tests.common_imports.LargeFileLikeUnicode.__init__
lxml.tests.common_imports.SillyFileLike.__init__
+lxml.tests.dummy_http_server.HTTPRequestCollector.__init__
lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.__init__
lxml.tests.test_threading.ThreadPipelineTestCase.Worker.__init__
lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver.__init__" class="py-name" href="#" onclick="return doclink('link-95', '__init__', 'link-95');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:38 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:13 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</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="E"></a><span class="summary-name">E</span> = <code title="<lxml.objectify.ElementMaker object at 0x191dd70>"><lxml.objectify.ElementMaker object at 0x191dd70></code>
+ <a name="E"></a><span class="summary-name">E</span> = <code title="<lxml.objectify.ElementMaker object at 0x30a8d70>"><lxml.objectify.ElementMaker object at 0x30a8d70></code>
</td>
</tr>
<tr>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:38 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:13 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:36 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:13 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr><td class="summary">
<ul class="nomargin">
<li> <strong class="uidlink"><a href="lxml.tests.common_imports-module.html">lxml.tests.common_imports</a></strong> </li>
+ <li> <strong class="uidlink"><a href="lxml.tests.dummy_http_server-module.html">lxml.tests.dummy_http_server</a></strong>: <em class="summary">Simple HTTP request dumper for tests in Python 2.5+.</em> </li>
<li> <strong class="uidlink"><a href="lxml.tests.test_builder-module.html">lxml.tests.test_builder</a></strong> </li>
<li> <strong class="uidlink"><a href="lxml.tests.test_classlookup-module.html">lxml.tests.test_classlookup</a></strong>: <em class="summary">Tests for different Element class lookup mechanisms.</em> </li>
<li> <strong class="uidlink"><a href="lxml.tests.test_css-module.html">lxml.tests.test_css</a></strong> </li>
<li> <strong class="uidlink"><a href="lxml.tests.test_errors-module.html">lxml.tests.test_errors</a></strong> </li>
<li> <strong class="uidlink"><a href="lxml.tests.test_etree-module.html">lxml.tests.test_etree</a></strong>: <em class="summary">Tests specific to the extended etree API</em> </li>
<li> <strong class="uidlink"><a href="lxml.tests.test_htmlparser-module.html">lxml.tests.test_htmlparser</a></strong>: <em class="summary">HTML parser test cases for etree</em> </li>
+ <li> <strong class="uidlink"><a href="lxml.tests.test_http_io-module.html">lxml.tests.test_http_io</a></strong>: <em class="summary">Web IO test cases that need Python 2.5+ (wsgiref)</em> </li>
<li> <strong class="uidlink"><a href="lxml.tests.test_incremental_xmlfile-module.html">lxml.tests.test_incremental_xmlfile</a></strong>: <em class="summary">Tests for the incremental XML serialisation API.</em> </li>
<li> <strong class="uidlink"><a href="lxml.tests.test_io-module.html">lxml.tests.test_io</a></strong>: <em class="summary">IO test cases that apply to both etree and ElementTree</em> </li>
<li> <strong class="uidlink"><a href="lxml.tests.test_isoschematron-module.html">lxml.tests.test_isoschematron</a></strong>: <em class="summary">Test cases related to ISO-Schematron parsing and validation</em> </li>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:36 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:12 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
</div></div><a name="L222"></a><tt class="py-lineno">222</tt> <tt class="py-line"> </tt>
<a name="LargeFileLikeUnicode"></a><div id="LargeFileLikeUnicode-def"><a name="L223"></a><tt class="py-lineno">223</tt> <a class="py-toggle" href="#" id="LargeFileLikeUnicode-toggle" onclick="return toggle('LargeFileLikeUnicode');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.common_imports.LargeFileLikeUnicode-class.html">LargeFileLikeUnicode</a><tt class="py-op">(</tt><tt class="py-base-class">LargeFileLike</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="LargeFileLikeUnicode-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="LargeFileLikeUnicode-expanded"><a name="LargeFileLikeUnicode.__init__"></a><div id="LargeFileLikeUnicode.__init__-def"><a name="L224"></a><tt class="py-lineno">224</tt> <a class="py-toggle" href="#" id="LargeFileLikeUnicode.__init__-toggle" onclick="return toggle('LargeFileLikeUnicode.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.common_imports.LargeFileLikeUnicode-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">charlen</tt><tt class="py-op">=</tt><tt class="py-number">100</tt><tt class="py-op">,</tt> <tt class="py-param">depth</tt><tt class="py-op">=</tt><tt class="py-number">4</tt><tt class="py-op">,</tt> <tt class="py-param">children</tt><tt class="py-op">=</tt><tt class="py-number">5</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="LargeFileLikeUnicode.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="LargeFileLikeUnicode.__init__-expanded"><a name="L225"></a><tt class="py-lineno">225</tt> <tt class="py-line"> <tt id="link-118" class="py-name" targets="Class lxml.tests.common_imports.LargeFileLike=lxml.tests.common_imports.LargeFileLike-class.html"><a title="lxml.tests.common_imports.LargeFileLike" class="py-name" href="#" onclick="return doclink('link-118', 'LargeFileLike', 'link-118');">LargeFileLike</a></tt><tt class="py-op">.</tt><tt id="link-119" class="py-name" targets="Method lxml.builder.ElementMaker.__init__()=lxml.builder.ElementMaker-class.html#__init__,Method lxml.cssselect.CSSSelector.__init__()=lxml.cssselect.CSSSelector-class.html#__init__,Method lxml.doctestcompare._RestoreChecker.__init__()=lxml.doctestcompare._RestoreChecker-class.html#__init__,Method lxml.etree.AttributeBasedElementClassLookup.__init__()=lxml.etree.AttributeBasedElementClassLookup-class.html#__init__,Method lxml.etree.CommentBase.__init__()=lxml.etree.CommentBase-class.html#__init__,Method lxml.etree.DTD.__init__()=lxml.etree.DTD-class.html#__init__,Method lxml.etree.ETCompatXMLParser.__init__()=lxml.etree.ETCompatXMLParser-class.html#__init__,Method lxml.etree.ETXPath.__init__()=lxml.etree.ETXPath-class.html#__init__,Method lxml.etree.ElementBase.__init__()=lxml.etree.ElementBase-class.html#__init__,Method lxml.etree.ElementDefaultClassLookup.__init__()=lxml.etree.ElementDefaultClassLookup-class.html#__init__,Method lxml.etree.ElementNamespaceClassLookup.__init__()=lxml.etree.ElementNamespaceClassLookup-class.html#__init__,Method lxml.etree.EntityBase.__init__()=lxml.etree.EntityBase-class.html#__init__,Method lxml.etree.FallbackElementClassLookup.__init__()=lxml.etree.FallbackElementClassLookup-class.html#__init__,Method lxml.etree.HTMLParser.__init__()=lxml.etree.HTMLParser-class.html#__init__,Method lxml.etree.LxmlError.__init__()=lxml.etree.LxmlError-class.html#__init__,Method lxml.etree.PIBase.__init__()=lxml.etree.PIBase-class.html#__init__,Method lxml.etree.ParseError.__init__()=lxml.etree.ParseError-class.html#__init__,Method lxml.etree.PyErrorLog.__init__()=lxml.etree.PyErrorLog-class.html#__init__,Method lxml.etree.QName.__init__()=lxml.etree.QName-class.html#__init__,Method lxml.etree.RelaxNG.__init__()=lxml.etree.RelaxNG-class.html#__init__,Method lxml.etree.Schematron.__init__()=lxml.etree.Schematron-class.html#__init__,Method lxml.etree.TreeBuilder.__init__()=lxml.etree.TreeBuilder-class.html#__init__,Method lxml.etree.XInclude.__init__()=lxml.etree.XInclude-class.html#__init__,Method lxml.etree.XMLParser.__init__()=lxml.etree.XMLParser-class.html#__init__,Method lxml.etree.XMLSchema.__init__()=lxml.etree.XMLSchema-class.html#__init__,Method lxml.etree.XPath.__init__()=lxml.etree.XPath-class.html#__init__,Method lxml.etree.XPathDocumentEvaluator.__init__()=lxml.etree.XPathDocumentEvaluator-class.html#__init__,Method lxml.etree.XPathElementEvaluator.__init__()=lxml.etree.XPathElementEvaluator-class.html#__init__,Method lxml.etree.XSLT.__init__()=lxml.etree.XSLT-class.html#__init__,Method lxml.etree.XSLTAccessControl.__init__()=lxml.etree.XSLTAccessControl-class.html#__init__,Method lxml.etree._BaseErrorLog.__init__()=lxml.etree._BaseErrorLog-class.html#__init__,Method lxml.etree._DomainErrorLog.__init__()=lxml.etree._DomainErrorLog-class.html#__init__,Method lxml.etree._ErrorLog.__init__()=lxml.etree._ErrorLog-class.html#__init__,Method lxml.etree._ListErrorLog.__init__()=lxml.etree._ListErrorLog-class.html#__init__,Method lxml.etree._RotatingErrorLog.__init__()=lxml.etree._RotatingErrorLog-class.html#__init__,Method lxml.etree._TargetParserResult.__init__()=lxml.etree._TargetParserResult-class.html#__init__,Method lxml.etree._XPathEvaluatorBase.__init__()=lxml.etree._XPathEvaluatorBase-class.html#__init__,Method lxml.etree.iterparse.__init__()=lxml.etree.iterparse-class.html#__init__,Method lxml.etree.iterwalk.__init__()=lxml.etree.iterwalk-class.html#__init__,Method lxml.etree.xmlfile.__init__()=lxml.etree.xmlfile-class.html#__init__,Method lxml.html.CheckboxValues.__init__()=lxml.html.CheckboxValues-class.html#__init__,Method lxml.html.FieldsDict.__init__()=lxml.html.FieldsDict-class.html#__init__,Method lxml.html.HTMLParser.__init__()=lxml.html.HTMLParser-class.html#__init__,Method lxml.html.HtmlElementClassLookup.__init__()=lxml.html.HtmlElementClassLookup-class.html#__init__,Method lxml.html.InputGetter.__init__()=lxml.html.InputGetter-class.html#__init__,Method lxml.html.MultipleSelectOptions.__init__()=lxml.html.MultipleSelectOptions-class.html#__init__,Method lxml.html.XHTMLParser.__init__()=lxml.html.XHTMLParser-class.html#__init__,Method lxml.html._MethodFunc.__init__()=lxml.html._MethodFunc-class.html#__init__,Method lxml.html.clean.Cleaner.__init__()=lxml.html.clean.Cleaner-class.html#__init__,Method lxml.html.formfill.DefaultErrorCreator.__init__()=lxml.html.formfill.DefaultErrorCreator-class.html#__init__,Method lxml.html.html5parser.HTMLParser.__init__()=lxml.html.html5parser.HTMLParser-class.html#__init__,Method lxml.html.html5parser.XHTMLParser.__init__()=lxml.html.html5parser.XHTMLParser-class.html#__init__,Method lxml.isoschematron.Schematron.__init__()=lxml.isoschematron.Schematron-class.html#__init__,Method lxml.objectify.ElementMaker.__init__()=lxml.objectify.ElementMaker-class.html#__init__,Method lxml.objectify.ObjectPath.__init__()=lxml.objectify.ObjectPath-class.html#__init__,Method lxml.objectify.ObjectifyElementClassLookup.__init__()=lxml.objectify.ObjectifyElementClassLookup-class.html#__init__,Method lxml.objectify.PyType.__init__()=lxml.objectify.PyType-class.html#__init__,Method lxml.sax.ElementTreeContentHandler.__init__()=lxml.sax.ElementTreeContentHandler-class.html#__init__,Method lxml.sax.ElementTreeProducer.__init__()=lxml.sax.ElementTreeProducer-class.html#__init__,Method lxml.tests.common_imports.LargeFileLike.__init__()=lxml.tests.common_imports.LargeFileLike-class.html#__init__,Method lxml.tests.common_imports.LargeFileLikeUnicode.__init__()=lxml.tests.common_imports.LargeFileLikeUnicode-class.html#__init__,Method lxml.tests.common_imports.SillyFileLike.__init__()=lxml.tests.common_imports.SillyFileLike-class.html#__init__,Method lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.__init__()=lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike-class.html#__init__,Method lxml.tests.test_threading.ThreadPipelineTestCase.Worker.__init__()=lxml.tests.test_threading.ThreadPipelineTestCase.Worker-class.html#__init__,Method lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver.__init__()=lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver-class.html#__init__"><a title="lxml.builder.ElementMaker.__init__
+</div><div id="LargeFileLikeUnicode.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="LargeFileLikeUnicode.__init__-expanded"><a name="L225"></a><tt class="py-lineno">225</tt> <tt class="py-line"> <tt id="link-118" class="py-name" targets="Class lxml.tests.common_imports.LargeFileLike=lxml.tests.common_imports.LargeFileLike-class.html"><a title="lxml.tests.common_imports.LargeFileLike" class="py-name" href="#" onclick="return doclink('link-118', 'LargeFileLike', 'link-118');">LargeFileLike</a></tt><tt class="py-op">.</tt><tt id="link-119" class="py-name" targets="Method lxml.builder.ElementMaker.__init__()=lxml.builder.ElementMaker-class.html#__init__,Method lxml.cssselect.CSSSelector.__init__()=lxml.cssselect.CSSSelector-class.html#__init__,Method lxml.doctestcompare._RestoreChecker.__init__()=lxml.doctestcompare._RestoreChecker-class.html#__init__,Method lxml.etree.AttributeBasedElementClassLookup.__init__()=lxml.etree.AttributeBasedElementClassLookup-class.html#__init__,Method lxml.etree.CommentBase.__init__()=lxml.etree.CommentBase-class.html#__init__,Method lxml.etree.DTD.__init__()=lxml.etree.DTD-class.html#__init__,Method lxml.etree.ETCompatXMLParser.__init__()=lxml.etree.ETCompatXMLParser-class.html#__init__,Method lxml.etree.ETXPath.__init__()=lxml.etree.ETXPath-class.html#__init__,Method lxml.etree.ElementBase.__init__()=lxml.etree.ElementBase-class.html#__init__,Method lxml.etree.ElementDefaultClassLookup.__init__()=lxml.etree.ElementDefaultClassLookup-class.html#__init__,Method lxml.etree.ElementNamespaceClassLookup.__init__()=lxml.etree.ElementNamespaceClassLookup-class.html#__init__,Method lxml.etree.EntityBase.__init__()=lxml.etree.EntityBase-class.html#__init__,Method lxml.etree.FallbackElementClassLookup.__init__()=lxml.etree.FallbackElementClassLookup-class.html#__init__,Method lxml.etree.HTMLParser.__init__()=lxml.etree.HTMLParser-class.html#__init__,Method lxml.etree.LxmlError.__init__()=lxml.etree.LxmlError-class.html#__init__,Method lxml.etree.PIBase.__init__()=lxml.etree.PIBase-class.html#__init__,Method lxml.etree.ParseError.__init__()=lxml.etree.ParseError-class.html#__init__,Method lxml.etree.PyErrorLog.__init__()=lxml.etree.PyErrorLog-class.html#__init__,Method lxml.etree.QName.__init__()=lxml.etree.QName-class.html#__init__,Method lxml.etree.RelaxNG.__init__()=lxml.etree.RelaxNG-class.html#__init__,Method lxml.etree.Schematron.__init__()=lxml.etree.Schematron-class.html#__init__,Method lxml.etree.TreeBuilder.__init__()=lxml.etree.TreeBuilder-class.html#__init__,Method lxml.etree.XInclude.__init__()=lxml.etree.XInclude-class.html#__init__,Method lxml.etree.XMLParser.__init__()=lxml.etree.XMLParser-class.html#__init__,Method lxml.etree.XMLSchema.__init__()=lxml.etree.XMLSchema-class.html#__init__,Method lxml.etree.XPath.__init__()=lxml.etree.XPath-class.html#__init__,Method lxml.etree.XPathDocumentEvaluator.__init__()=lxml.etree.XPathDocumentEvaluator-class.html#__init__,Method lxml.etree.XPathElementEvaluator.__init__()=lxml.etree.XPathElementEvaluator-class.html#__init__,Method lxml.etree.XSLT.__init__()=lxml.etree.XSLT-class.html#__init__,Method lxml.etree.XSLTAccessControl.__init__()=lxml.etree.XSLTAccessControl-class.html#__init__,Method lxml.etree._BaseErrorLog.__init__()=lxml.etree._BaseErrorLog-class.html#__init__,Method lxml.etree._DomainErrorLog.__init__()=lxml.etree._DomainErrorLog-class.html#__init__,Method lxml.etree._ErrorLog.__init__()=lxml.etree._ErrorLog-class.html#__init__,Method lxml.etree._ListErrorLog.__init__()=lxml.etree._ListErrorLog-class.html#__init__,Method lxml.etree._RotatingErrorLog.__init__()=lxml.etree._RotatingErrorLog-class.html#__init__,Method lxml.etree._TargetParserResult.__init__()=lxml.etree._TargetParserResult-class.html#__init__,Method lxml.etree._XPathEvaluatorBase.__init__()=lxml.etree._XPathEvaluatorBase-class.html#__init__,Method lxml.etree.iterparse.__init__()=lxml.etree.iterparse-class.html#__init__,Method lxml.etree.iterwalk.__init__()=lxml.etree.iterwalk-class.html#__init__,Method lxml.etree.xmlfile.__init__()=lxml.etree.xmlfile-class.html#__init__,Method lxml.html.CheckboxValues.__init__()=lxml.html.CheckboxValues-class.html#__init__,Method lxml.html.FieldsDict.__init__()=lxml.html.FieldsDict-class.html#__init__,Method lxml.html.HTMLParser.__init__()=lxml.html.HTMLParser-class.html#__init__,Method lxml.html.HtmlElementClassLookup.__init__()=lxml.html.HtmlElementClassLookup-class.html#__init__,Method lxml.html.InputGetter.__init__()=lxml.html.InputGetter-class.html#__init__,Method lxml.html.MultipleSelectOptions.__init__()=lxml.html.MultipleSelectOptions-class.html#__init__,Method lxml.html.XHTMLParser.__init__()=lxml.html.XHTMLParser-class.html#__init__,Method lxml.html._MethodFunc.__init__()=lxml.html._MethodFunc-class.html#__init__,Method lxml.html.clean.Cleaner.__init__()=lxml.html.clean.Cleaner-class.html#__init__,Method lxml.html.formfill.DefaultErrorCreator.__init__()=lxml.html.formfill.DefaultErrorCreator-class.html#__init__,Method lxml.html.html5parser.HTMLParser.__init__()=lxml.html.html5parser.HTMLParser-class.html#__init__,Method lxml.html.html5parser.XHTMLParser.__init__()=lxml.html.html5parser.XHTMLParser-class.html#__init__,Method lxml.isoschematron.Schematron.__init__()=lxml.isoschematron.Schematron-class.html#__init__,Method lxml.objectify.ElementMaker.__init__()=lxml.objectify.ElementMaker-class.html#__init__,Method lxml.objectify.ObjectPath.__init__()=lxml.objectify.ObjectPath-class.html#__init__,Method lxml.objectify.ObjectifyElementClassLookup.__init__()=lxml.objectify.ObjectifyElementClassLookup-class.html#__init__,Method lxml.objectify.PyType.__init__()=lxml.objectify.PyType-class.html#__init__,Method lxml.sax.ElementTreeContentHandler.__init__()=lxml.sax.ElementTreeContentHandler-class.html#__init__,Method lxml.sax.ElementTreeProducer.__init__()=lxml.sax.ElementTreeProducer-class.html#__init__,Method lxml.tests.common_imports.LargeFileLike.__init__()=lxml.tests.common_imports.LargeFileLike-class.html#__init__,Method lxml.tests.common_imports.LargeFileLikeUnicode.__init__()=lxml.tests.common_imports.LargeFileLikeUnicode-class.html#__init__,Method lxml.tests.common_imports.SillyFileLike.__init__()=lxml.tests.common_imports.SillyFileLike-class.html#__init__,Method lxml.tests.dummy_http_server.HTTPRequestCollector.__init__()=lxml.tests.dummy_http_server.HTTPRequestCollector-class.html#__init__,Method lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.__init__()=lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike-class.html#__init__,Method lxml.tests.test_threading.ThreadPipelineTestCase.Worker.__init__()=lxml.tests.test_threading.ThreadPipelineTestCase.Worker-class.html#__init__,Method lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver.__init__()=lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver-class.html#__init__"><a title="lxml.builder.ElementMaker.__init__
lxml.cssselect.CSSSelector.__init__
lxml.doctestcompare._RestoreChecker.__init__
lxml.etree.AttributeBasedElementClassLookup.__init__
lxml.tests.common_imports.LargeFileLike.__init__
lxml.tests.common_imports.LargeFileLikeUnicode.__init__
lxml.tests.common_imports.SillyFileLike.__init__
+lxml.tests.dummy_http_server.HTTPRequestCollector.__init__
lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.__init__
lxml.tests.test_threading.ThreadPipelineTestCase.Worker.__init__
lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver.__init__" class="py-name" href="#" onclick="return doclink('link-119', '__init__', 'link-119');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">charlen</tt><tt class="py-op">,</tt> <tt class="py-name">depth</tt><tt class="py-op">,</tt> <tt class="py-name">children</tt><tt class="py-op">)</tt> </tt>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:38 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:13 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<dl><dt>Known Subclasses:</dt>
<dd>
<ul class="subclass-list">
-<li><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html">test_xslt.ETreeEXSLTTestCase</a></li><li>, <a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">test_xslt.ETreeXSLTExtElementTestCase</a></li><li>, <a href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html">test_xslt.ETreeXSLTExtFuncTestCase</a></li><li>, <a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">test_xslt.ETreeXSLTTestCase</a></li><li>, <a href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html">test_xslt.Py3XSLTTestCase</a></li><li>, <a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">test_dtd.ETreeDtdTestCase</a></li><li>, <a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">test_isoschematron.ETreeISOSchematronTestCase</a></li><li>, <a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html">test_relaxng.ETreeRelaxNGTestCase</a></li><li>, <a href="lxml.tests.test_errors.ErrorTestCase-class.html">test_errors.ErrorTestCase</a></li><li>, <a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">test_pyclasslookup.PyClassLookupTestCase</a></li><li class="private">, <a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">test_incremental_xmlfile._XmlFileTestCaseBase</a></li><li>, <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">test_objectify.ObjectifyTestCase</a></li><li>, <a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html">test_schematron.ETreeSchematronTestCase</a></li><li class="private">, <a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">test_io._IOTestCaseBase</a></li><li class="private">, <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">test_elementtree._ETreeTestCaseBase</a></li><li>, <a href="lxml.tests.test_builder.BuilderTestCase-class.html">test_builder.BuilderTestCase</a></li><li>, <a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">test_unicode.UnicodeTestCase</a></li><li>, <a href="lxml.tests.test_xpathevaluator.ETreeETXPathClassTestCase-class.html">test_xpathevaluator.ETreeETXPathClassTestCase</a></li><li>, <a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html">test_xpathevaluator.ETreeXPathClassTestCase</a></li><li>, <a href="lxml.tests.test_xpathevaluator.ETreeXPathExsltTestCase-class.html">test_xpathevaluator.ETreeXPathExsltTestCase</a></li><li>, <a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">test_xpathevaluator.ETreeXPathTestCase</a></li><li>, <a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">test_classlookup.ClassLookupTestCase</a></li><li>, <a href="lxml.tests.test_classlookup.ProxyTestCase-class.html">test_classlookup.ProxyTestCase</a></li><li>, <a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html">test_nsclasses.ETreeNamespaceClassesTestCase</a></li><li>, <a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html">test_xmlschema.ETreeXMLSchemaResolversTestCase</a></li><li>, <a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">test_xmlschema.ETreeXMLSchemaTestCase</a></li><li>, <a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">test_htmlparser.HtmlParserTestCase</a></li><li>, <a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">test_sax.ETreeSaxTestCase</a></li><li>, <a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html">test_etree.ETreeC14NTestCase</a></li><li>, <a href="lxml.tests.test_etree.ETreeErrorLogTest-class.html">test_etree.ETreeErrorLogTest</a></li><li>, <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">test_etree.ETreeOnlyTestCase</a></li><li>, <a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html">test_etree.ETreeWriteTestCase</a></li><li class="private">, <a href="lxml.tests.test_etree._XIncludeTestCase-class.html" onclick="show_private();">test_etree._XIncludeTestCase</a></li><li>, <a href="lxml.tests.test_css.CSSTestCase-class.html">test_css.CSSTestCase</a></li><li>, <a href="lxml.tests.test_threading.ThreadPipelineTestCase-class.html">test_threading.ThreadPipelineTestCase</a></li><li>, <a href="lxml.tests.test_threading.ThreadingTestCase-class.html">test_threading.ThreadingTestCase</a></li> </ul>
+<li><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html">test_xslt.ETreeEXSLTTestCase</a></li><li>, <a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">test_xslt.ETreeXSLTExtElementTestCase</a></li><li>, <a href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html">test_xslt.ETreeXSLTExtFuncTestCase</a></li><li>, <a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">test_xslt.ETreeXSLTTestCase</a></li><li>, <a href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html">test_xslt.Py3XSLTTestCase</a></li><li>, <a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">test_dtd.ETreeDtdTestCase</a></li><li>, <a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">test_isoschematron.ETreeISOSchematronTestCase</a></li><li>, <a href="lxml.tests.test_http_io.HttpIOTestCase-class.html">test_http_io.HttpIOTestCase</a></li><li>, <a href="lxml.tests.test_errors.ErrorTestCase-class.html">test_errors.ErrorTestCase</a></li><li>, <a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">test_pyclasslookup.PyClassLookupTestCase</a></li><li class="private">, <a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">test_incremental_xmlfile._XmlFileTestCaseBase</a></li><li>, <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">test_objectify.ObjectifyTestCase</a></li><li>, <a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html">test_schematron.ETreeSchematronTestCase</a></li><li class="private">, <a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">test_io._IOTestCaseBase</a></li><li class="private">, <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">test_elementtree._ETreeTestCaseBase</a></li><li>, <a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html">test_relaxng.ETreeRelaxNGTestCase</a></li><li>, <a href="lxml.tests.test_builder.BuilderTestCase-class.html">test_builder.BuilderTestCase</a></li><li>, <a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">test_unicode.UnicodeTestCase</a></li><li>, <a href="lxml.tests.test_xpathevaluator.ETreeETXPathClassTestCase-class.html">test_xpathevaluator.ETreeETXPathClassTestCase</a></li><li>, <a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html">test_xpathevaluator.ETreeXPathClassTestCase</a></li><li>, <a href="lxml.tests.test_xpathevaluator.ETreeXPathExsltTestCase-class.html">test_xpathevaluator.ETreeXPathExsltTestCase</a></li><li>, <a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">test_xpathevaluator.ETreeXPathTestCase</a></li><li>, <a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">test_classlookup.ClassLookupTestCase</a></li><li>, <a href="lxml.tests.test_classlookup.ProxyTestCase-class.html">test_classlookup.ProxyTestCase</a></li><li>, <a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html">test_nsclasses.ETreeNamespaceClassesTestCase</a></li><li>, <a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html">test_xmlschema.ETreeXMLSchemaResolversTestCase</a></li><li>, <a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">test_xmlschema.ETreeXMLSchemaTestCase</a></li><li>, <a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">test_htmlparser.HtmlParserTestCase</a></li><li>, <a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">test_sax.ETreeSaxTestCase</a></li><li>, <a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html">test_etree.ETreeC14NTestCase</a></li><li>, <a href="lxml.tests.test_etree.ETreeErrorLogTest-class.html">test_etree.ETreeErrorLogTest</a></li><li>, <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">test_etree.ETreeOnlyTestCase</a></li><li>, <a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html">test_etree.ETreeWriteTestCase</a></li><li class="private">, <a href="lxml.tests.test_etree._XIncludeTestCase-class.html" onclick="show_private();">test_etree._XIncludeTestCase</a></li><li>, <a href="lxml.tests.test_css.CSSTestCase-class.html">test_css.CSSTestCase</a></li><li>, <a href="lxml.tests.test_threading.ThreadPipelineTestCase-class.html">test_threading.ThreadPipelineTestCase</a></li><li>, <a href="lxml.tests.test_threading.ThreadingTestCase-class.html">test_threading.ThreadingTestCase</a></li> </ul>
</dd></dl>
<hr />
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
--- /dev/null
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>lxml.tests.dummy_http_server</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+ <!-- Home link -->
+ <th> <a
+ href="lxml-module.html">Home</a> </th>
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ ><a class="navbar" target="_top" href="/">lxml API</a></th>
+ </tr></table></th>
+ </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+ <tr valign="top">
+ <td width="100%">
+ <span class="breadcrumbs">
+ <a href="lxml-module.html">Package lxml</a> ::
+ <a href="lxml.tests-module.html">Package tests</a> ::
+ Module dummy_http_server
+ </span>
+ </td>
+ <td>
+ <table cellpadding="0" cellspacing="0">
+ <!-- hide/show private -->
+ <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+ onclick="toggle_private();">hide private</a>]</span></td></tr>
+ <tr><td align="right"><span class="options"
+ >[<a href="frames.html" target="_top">frames</a
+ >] | <a href="lxml.tests.dummy_http_server-module.html"
+ target="_top">no frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module dummy_http_server</h1><p class="nomargin-top"><span class="codelink"><a href="lxml.tests.dummy_http_server-pysrc.html">source code</a></span></p>
+Simple HTTP request dumper for tests in Python 2.5+.
+
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Classes</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-Classes"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</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">
+ <a href="lxml.tests.dummy_http_server.WebServer-class.html" class="summary-name">WebServer</a><br />
+ A web server that starts a new thread for each request.
+ </td>
+ </tr>
+<tr class="private">
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <a href="lxml.tests.dummy_http_server._RequestHandler-class.html" class="summary-name" onclick="show_private();">_RequestHandler</a>
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <a href="lxml.tests.dummy_http_server.HTTPRequestCollector-class.html" class="summary-name">HTTPRequestCollector</a>
+ </td>
+ </tr>
+</table>
+<!-- ==================== FUNCTIONS ==================== -->
+<a name="section-Functions"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Functions</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-Functions"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</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 href="lxml.tests.dummy_http_server-module.html#webserver" class="summary-sig-name">webserver</a>(<span class="summary-sig-arg">*args</span>,
+ <span class="summary-sig-arg">**kwds</span>)</span><br />
+ Context manager entry point for the 'with' statement.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="lxml.tests.dummy_http_server-pysrc.html#webserver">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="build_web_server"></a><span class="summary-sig-name">build_web_server</span>(<span class="summary-sig-arg">app</span>,
+ <span class="summary-sig-arg">port</span>,
+ <span class="summary-sig-arg">host</span>=<span class="summary-sig-default">None</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="lxml.tests.dummy_http_server-pysrc.html#build_web_server">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+</table>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Variables</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-Variables"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</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">
+ <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'lxml.tests'"><code class="variable-quote">'</code><code class="variable-string">lxml.tests</code><code class="variable-quote">'</code></code>
+ </td>
+ </tr>
+</table>
+<!-- ==================== FUNCTION DETAILS ==================== -->
+<a name="section-FunctionDetails"></a>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Function Details</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-FunctionDetails"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+</table>
+<a name="webserver"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">webserver</span>(<span class="sig-arg">*args</span>,
+ <span class="sig-arg">**kwds</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="lxml.tests.dummy_http_server-pysrc.html#webserver">source code</a></span>
+ </td>
+ </tr></table>
+
+ <p>Context manager entry point for the 'with' statement.</p>
+<p>Pass 0 as port number to dynamically allocate a free port.</p>
+<p>Usage:</p>
+<dl class="rst-docutils">
+<dt>with webserver(wsgi_app_function, 8080) as host_url:</dt>
+<dd>do_ws_calls(host_url)</dd>
+</dl>
+ <dl class="fields">
+ <dt>Decorators:</dt>
+ <dd><ul class="nomargin-top">
+ <li><code>@contextmanager</code></li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+ <!-- Home link -->
+ <th> <a
+ href="lxml-module.html">Home</a> </th>
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ ><a class="navbar" target="_top" href="/">lxml API</a></th>
+ </tr></table></th>
+ </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+ <tr>
+ <td align="left" class="footer">
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
+ </td>
+ <td align="right" class="footer">
+ <a target="mainFrame" href="http://epydoc.sourceforge.net"
+ >http://epydoc.sourceforge.net</a>
+ </td>
+ </tr>
+</table>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>
--- /dev/null
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>lxml.tests.dummy_http_server</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+ <!-- Home link -->
+ <th> <a
+ href="lxml-module.html">Home</a> </th>
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ ><a class="navbar" target="_top" href="/">lxml API</a></th>
+ </tr></table></th>
+ </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+ <tr valign="top">
+ <td width="100%">
+ <span class="breadcrumbs">
+ <a href="lxml-module.html">Package lxml</a> ::
+ <a href="lxml.tests-module.html">Package tests</a> ::
+ Module dummy_http_server
+ </span>
+ </td>
+ <td>
+ <table cellpadding="0" cellspacing="0">
+ <!-- hide/show private -->
+ <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+ onclick="toggle_private();">hide private</a>]</span></td></tr>
+ <tr><td align="right"><span class="options"
+ >[<a href="frames.html" target="_top">frames</a
+ >] | <a href="lxml.tests.dummy_http_server-pysrc.html"
+ target="_top">no frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="lxml.tests.dummy_http_server-module.html">Module lxml.tests.dummy_http_server</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-docstring">Simple HTTP request dumper for tests in Python 2.5+.</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">sys</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">contextlib</tt> <tt class="py-keyword">import</tt> <tt class="py-name">contextmanager</tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"> <tt class="py-keyword">import</tt> <tt class="py-name">urlparse</tt> </tt>
+<a name="L10"></a><tt class="py-lineno">10</tt> <tt class="py-line"><tt class="py-keyword">except</tt> <tt class="py-name">ImportError</tt><tt class="py-op">:</tt> </tt>
+<a name="L11"></a><tt class="py-lineno">11</tt> <tt class="py-line"> <tt class="py-comment"># Python 3</tt> </tt>
+<a name="L12"></a><tt class="py-lineno">12</tt> <tt class="py-line"> <tt class="py-keyword">import</tt> <tt class="py-name">urllib</tt><tt class="py-op">.</tt><tt id="link-0" 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-0', 'parse', 'link-0');">parse</a></tt> <tt class="py-keyword">as</tt> <tt class="py-name">urlparse</tt> </tt>
+<a name="webserver"></a><div id="webserver-def"><a name="L13"></a><tt class="py-lineno">13</tt> <tt class="py-line"> </tt>
+<a name="L14"></a><tt class="py-lineno">14</tt> <tt class="py-line"> </tt>
+<a name="L15"></a><tt class="py-lineno">15</tt> <tt class="py-line"><tt class="py-decorator">@</tt><tt class="py-decorator">contextmanager</tt> </tt>
+<a name="L16"></a><tt class="py-lineno">16</tt> <a class="py-toggle" href="#" id="webserver-toggle" onclick="return toggle('webserver');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.dummy_http_server-module.html#webserver">webserver</a><tt class="py-op">(</tt><tt class="py-param">app</tt><tt class="py-op">,</tt> <tt class="py-param">port</tt><tt class="py-op">=</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-param">host</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="webserver-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="webserver-expanded"><a name="L17"></a><tt class="py-lineno">17</tt> <tt class="py-line"> <tt class="py-docstring">"""Context manager entry point for the 'with' statement.</tt> </tt>
+<a name="L18"></a><tt class="py-lineno">18</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L19"></a><tt class="py-lineno">19</tt> <tt class="py-line"><tt class="py-docstring"> Pass 0 as port number to dynamically allocate a free port.</tt> </tt>
+<a name="L20"></a><tt class="py-lineno">20</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L21"></a><tt class="py-lineno">21</tt> <tt class="py-line"><tt class="py-docstring"> Usage:</tt> </tt>
+<a name="L22"></a><tt class="py-lineno">22</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L23"></a><tt class="py-lineno">23</tt> <tt class="py-line"><tt class="py-docstring"> with webserver(wsgi_app_function, 8080) as host_url:</tt> </tt>
+<a name="L24"></a><tt class="py-lineno">24</tt> <tt class="py-line"><tt class="py-docstring"> do_ws_calls(host_url)</tt> </tt>
+<a name="L25"></a><tt class="py-lineno">25</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L26"></a><tt class="py-lineno">26</tt> <tt class="py-line"> <tt class="py-name">server</tt> <tt class="py-op">=</tt> <tt id="link-1" class="py-name" targets="Function lxml.tests.dummy_http_server.build_web_server()=lxml.tests.dummy_http_server-module.html#build_web_server"><a title="lxml.tests.dummy_http_server.build_web_server" class="py-name" href="#" onclick="return doclink('link-1', 'build_web_server', 'link-1');">build_web_server</a></tt><tt class="py-op">(</tt><tt class="py-name">app</tt><tt class="py-op">,</tt> <tt class="py-name">port</tt><tt class="py-op">,</tt> <tt class="py-name">host</tt> <tt class="py-keyword">or</tt> <tt class="py-string">'127.0.0.1'</tt><tt class="py-op">)</tt> </tt>
+<a name="L27"></a><tt class="py-lineno">27</tt> <tt class="py-line"> <tt class="py-name">host</tt><tt class="py-op">,</tt> <tt class="py-name">port</tt> <tt class="py-op">=</tt> <tt class="py-name">server</tt><tt class="py-op">.</tt><tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">getsockname</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L28"></a><tt class="py-lineno">28</tt> <tt class="py-line"> </tt>
+<a name="L29"></a><tt class="py-lineno">29</tt> <tt class="py-line"> <tt class="py-keyword">import</tt> <tt class="py-name">threading</tt> </tt>
+<a name="L30"></a><tt class="py-lineno">30</tt> <tt class="py-line"> <tt class="py-name">thread</tt> <tt class="py-op">=</tt> <tt class="py-name">threading</tt><tt class="py-op">.</tt><tt class="py-name">Thread</tt><tt class="py-op">(</tt><tt id="link-2" 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-2', 'target', 'link-2');">target</a></tt><tt class="py-op">=</tt><tt class="py-name">server</tt><tt class="py-op">.</tt><tt class="py-name">serve_forever</tt><tt class="py-op">,</tt> </tt>
+<a name="L31"></a><tt class="py-lineno">31</tt> <tt class="py-line"> <tt class="py-name">kwargs</tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-string">'poll_interval'</tt><tt class="py-op">:</tt> <tt class="py-number">0.5</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L32"></a><tt class="py-lineno">32</tt> <tt class="py-line"> <tt class="py-name">thread</tt><tt class="py-op">.</tt><tt class="py-name">setDaemon</tt><tt class="py-op">(</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L33"></a><tt class="py-lineno">33</tt> <tt class="py-line"> <tt class="py-name">thread</tt><tt class="py-op">.</tt><tt id="link-3" 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-3', 'start', 'link-3');">start</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L34"></a><tt class="py-lineno">34</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L35"></a><tt class="py-lineno">35</tt> <tt class="py-line"> <tt class="py-keyword">yield</tt> <tt class="py-string">'http://%s:%s/'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">host</tt><tt class="py-op">,</tt> <tt class="py-name">port</tt><tt class="py-op">)</tt> <tt class="py-comment"># yield control to 'with' body</tt> </tt>
+<a name="L36"></a><tt class="py-lineno">36</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L37"></a><tt class="py-lineno">37</tt> <tt class="py-line"> <tt class="py-name">server</tt><tt class="py-op">.</tt><tt class="py-name">shutdown</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L38"></a><tt class="py-lineno">38</tt> <tt class="py-line"> </tt>
+<a name="L39"></a><tt class="py-lineno">39</tt> <tt class="py-line"> </tt>
+<a name="L40"></a><tt class="py-lineno">40</tt> <tt class="py-line"><tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L41"></a><tt class="py-lineno">41</tt> <tt class="py-line"> <tt class="py-keyword">from</tt> <tt class="py-name">SocketServer</tt> <tt class="py-keyword">import</tt> <tt class="py-name">ThreadingMixIn</tt> </tt>
+<a name="L42"></a><tt class="py-lineno">42</tt> <tt class="py-line"><tt class="py-keyword">except</tt> <tt class="py-name">ImportError</tt><tt class="py-op">:</tt> </tt>
+<a name="L43"></a><tt class="py-lineno">43</tt> <tt class="py-line"> <tt class="py-comment"># Python 3</tt> </tt>
+<a name="L44"></a><tt class="py-lineno">44</tt> <tt class="py-line"> <tt class="py-keyword">from</tt> <tt class="py-name">socketserver</tt> <tt class="py-keyword">import</tt> <tt class="py-name">ThreadingMixIn</tt> </tt>
+<a name="L45"></a><tt class="py-lineno">45</tt> <tt class="py-line"> </tt>
+<a name="L46"></a><tt class="py-lineno">46</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">wsgiref</tt><tt class="py-op">.</tt><tt class="py-name">simple_server</tt> <tt class="py-keyword">as</tt> <tt class="py-name">wsgiserver</tt> </tt>
+<a name="WebServer"></a><div id="WebServer-def"><a name="L47"></a><tt class="py-lineno">47</tt> <a class="py-toggle" href="#" id="WebServer-toggle" onclick="return toggle('WebServer');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.dummy_http_server.WebServer-class.html">WebServer</a><tt class="py-op">(</tt><tt class="py-base-class">wsgiserver</tt><tt class="py-op">.</tt><tt class="py-base-class">WSGIServer</tt><tt class="py-op">,</tt> <tt class="py-base-class">ThreadingMixIn</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="WebServer-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="WebServer-expanded"><a name="L48"></a><tt class="py-lineno">48</tt> <tt class="py-line"> <tt class="py-docstring">"""A web server that starts a new thread for each request.</tt> </tt>
+<a name="L49"></a><tt class="py-lineno">49</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+</div><a name="L50"></a><tt class="py-lineno">50</tt> <tt class="py-line"> </tt>
+<a name="_RequestHandler"></a><div id="_RequestHandler-def"><a name="L51"></a><tt class="py-lineno">51</tt> <tt class="py-line"> </tt>
+<a name="L52"></a><tt class="py-lineno">52</tt> <a class="py-toggle" href="#" id="_RequestHandler-toggle" onclick="return toggle('_RequestHandler');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.dummy_http_server._RequestHandler-class.html">_RequestHandler</a><tt class="py-op">(</tt><tt class="py-base-class">wsgiserver</tt><tt class="py-op">.</tt><tt class="py-base-class">WSGIRequestHandler</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_RequestHandler-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="_RequestHandler-expanded"><a name="_RequestHandler.get_stderr"></a><div id="_RequestHandler.get_stderr-def"><a name="L53"></a><tt class="py-lineno">53</tt> <a class="py-toggle" href="#" id="_RequestHandler.get_stderr-toggle" onclick="return toggle('_RequestHandler.get_stderr');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.dummy_http_server._RequestHandler-class.html#get_stderr">get_stderr</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_RequestHandler.get_stderr-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="_RequestHandler.get_stderr-expanded"><a name="L54"></a><tt class="py-lineno">54</tt> <tt class="py-line"> <tt class="py-comment"># don't write to stderr</tt> </tt>
+<a name="L55"></a><tt class="py-lineno">55</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">stdout</tt> </tt>
+</div><a name="L56"></a><tt class="py-lineno">56</tt> <tt class="py-line"> </tt>
+<a name="_RequestHandler.log_message"></a><div id="_RequestHandler.log_message-def"><a name="L57"></a><tt class="py-lineno">57</tt> <a class="py-toggle" href="#" id="_RequestHandler.log_message-toggle" onclick="return toggle('_RequestHandler.log_message');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.dummy_http_server._RequestHandler-class.html#log_message">log_message</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">format</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-param">args</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_RequestHandler.log_message-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="_RequestHandler.log_message-expanded"><a name="L58"></a><tt class="py-lineno">58</tt> <tt class="py-line"> <tt class="py-comment"># message = "wsmock(%s) %s" % (self.address_string(), format % args)</tt> </tt>
+<a name="L59"></a><tt class="py-lineno">59</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> <tt class="py-comment"># don't log messages</tt> </tt>
+</div></div><a name="L60"></a><tt class="py-lineno">60</tt> <tt class="py-line"> </tt>
+<a name="build_web_server"></a><div id="build_web_server-def"><a name="L61"></a><tt class="py-lineno">61</tt> <tt class="py-line"> </tt>
+<a name="L62"></a><tt class="py-lineno">62</tt> <a class="py-toggle" href="#" id="build_web_server-toggle" onclick="return toggle('build_web_server');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.dummy_http_server-module.html#build_web_server">build_web_server</a><tt class="py-op">(</tt><tt class="py-param">app</tt><tt class="py-op">,</tt> <tt class="py-param">port</tt><tt class="py-op">,</tt> <tt class="py-param">host</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="build_web_server-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="build_web_server-expanded"><a name="L63"></a><tt class="py-lineno">63</tt> <tt class="py-line"> <tt class="py-name">server</tt> <tt class="py-op">=</tt> <tt class="py-name">wsgiserver</tt><tt class="py-op">.</tt><tt class="py-name">make_server</tt><tt class="py-op">(</tt> </tt>
+<a name="L64"></a><tt class="py-lineno">64</tt> <tt class="py-line"> <tt class="py-name">host</tt> <tt class="py-keyword">or</tt> <tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-name">port</tt><tt class="py-op">,</tt> <tt class="py-name">app</tt><tt class="py-op">,</tt> </tt>
+<a name="L65"></a><tt class="py-lineno">65</tt> <tt class="py-line"> <tt class="py-name">server_class</tt><tt class="py-op">=</tt><tt id="link-4" class="py-name" targets="Class lxml.tests.dummy_http_server.WebServer=lxml.tests.dummy_http_server.WebServer-class.html"><a title="lxml.tests.dummy_http_server.WebServer" class="py-name" href="#" onclick="return doclink('link-4', 'WebServer', 'link-4');">WebServer</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L66"></a><tt class="py-lineno">66</tt> <tt class="py-line"> <tt class="py-name">handler_class</tt><tt class="py-op">=</tt><tt id="link-5" class="py-name" targets="Class lxml.tests.dummy_http_server._RequestHandler=lxml.tests.dummy_http_server._RequestHandler-class.html"><a title="lxml.tests.dummy_http_server._RequestHandler" class="py-name" href="#" onclick="return doclink('link-5', '_RequestHandler', 'link-5');">_RequestHandler</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L67"></a><tt class="py-lineno">67</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">server</tt> </tt>
+</div><a name="L68"></a><tt class="py-lineno">68</tt> <tt class="py-line"> </tt>
+<a name="HTTPRequestCollector"></a><div id="HTTPRequestCollector-def"><a name="L69"></a><tt class="py-lineno">69</tt> <tt class="py-line"> </tt>
+<a name="L70"></a><tt class="py-lineno">70</tt> <a class="py-toggle" href="#" id="HTTPRequestCollector-toggle" onclick="return toggle('HTTPRequestCollector');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.dummy_http_server.HTTPRequestCollector-class.html">HTTPRequestCollector</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="HTTPRequestCollector-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="HTTPRequestCollector-expanded"><a name="HTTPRequestCollector.__init__"></a><div id="HTTPRequestCollector.__init__-def"><a name="L71"></a><tt class="py-lineno">71</tt> <a class="py-toggle" href="#" id="HTTPRequestCollector.__init__-toggle" onclick="return toggle('HTTPRequestCollector.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.dummy_http_server.HTTPRequestCollector-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">response_data</tt><tt class="py-op">,</tt> <tt class="py-param">response_code</tt><tt class="py-op">=</tt><tt class="py-number">200</tt><tt class="py-op">,</tt> <tt class="py-param">headers</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>
+</div><div id="HTTPRequestCollector.__init__-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="HTTPRequestCollector.__init__-expanded"><a name="L72"></a><tt class="py-lineno">72</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">requests</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L73"></a><tt class="py-lineno">73</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">response_code</tt> <tt class="py-op">=</tt> <tt class="py-name">response_code</tt> </tt>
+<a name="L74"></a><tt class="py-lineno">74</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">response_data</tt> <tt class="py-op">=</tt> <tt class="py-name">response_data</tt> </tt>
+<a name="L75"></a><tt class="py-lineno">75</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">headers</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L76"></a><tt class="py-lineno">76</tt> <tt class="py-line"> </tt>
+<a name="HTTPRequestCollector.__call__"></a><div id="HTTPRequestCollector.__call__-def"><a name="L77"></a><tt class="py-lineno">77</tt> <a class="py-toggle" href="#" id="HTTPRequestCollector.__call__-toggle" onclick="return toggle('HTTPRequestCollector.__call__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.dummy_http_server.HTTPRequestCollector-class.html#__call__">__call__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">environ</tt><tt class="py-op">,</tt> <tt class="py-param">start_response</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="HTTPRequestCollector.__call__-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="HTTPRequestCollector.__call__-expanded"><a name="L78"></a><tt class="py-lineno">78</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">requests</tt><tt class="py-op">.</tt><tt id="link-6" class="py-name" targets="Method lxml.etree._Element.append()=lxml.etree._Element-class.html#append"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-6', 'append', 'link-6');">append</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt> </tt>
+<a name="L79"></a><tt class="py-lineno">79</tt> <tt class="py-line"> <tt class="py-name">environ</tt><tt class="py-op">.</tt><tt id="link-7" class="py-name" targets="Method lxml.etree._Attrib.get()=lxml.etree._Attrib-class.html#get,Method lxml.etree._Element.get()=lxml.etree._Element-class.html#get,Method lxml.etree._IDDict.get()=lxml.etree._IDDict-class.html#get,Method lxml.etree._ProcessingInstruction.get()=lxml.etree._ProcessingInstruction-class.html#get"><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-7', 'get', 'link-7');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'PATH_INFO'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L80"></a><tt class="py-lineno">80</tt> <tt class="py-line"> <tt class="py-name">urlparse</tt><tt class="py-op">.</tt><tt class="py-name">parse_qsl</tt><tt class="py-op">(</tt><tt class="py-name">environ</tt><tt class="py-op">.</tt><tt id="link-8" 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-8', 'get', 'link-7');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'QUERY_STRING'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L81"></a><tt class="py-lineno">81</tt> <tt class="py-line"> <tt class="py-name">start_response</tt><tt class="py-op">(</tt><tt class="py-string">'%s OK'</tt> <tt class="py-op">%</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">response_code</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">headers</tt><tt class="py-op">)</tt> </tt>
+<a name="L82"></a><tt class="py-lineno">82</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">response_data</tt><tt class="py-op">]</tt> </tt>
+</div></div><a name="L83"></a><tt class="py-lineno">83</tt> <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+ <!-- Home link -->
+ <th> <a
+ href="lxml-module.html">Home</a> </th>
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ ><a class="navbar" target="_top" href="/">lxml API</a></th>
+ </tr></table></th>
+ </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+ <tr>
+ <td align="left" class="footer">
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:13 2013
+ </td>
+ <td align="right" class="footer">
+ <a target="mainFrame" href="http://epydoc.sourceforge.net"
+ >http://epydoc.sourceforge.net</a>
+ </td>
+ </tr>
+</table>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>
--- /dev/null
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>lxml.tests.dummy_http_server.HTTPRequestCollector</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+ <!-- Home link -->
+ <th> <a
+ href="lxml-module.html">Home</a> </th>
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ ><a class="navbar" target="_top" href="/">lxml API</a></th>
+ </tr></table></th>
+ </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+ <tr valign="top">
+ <td width="100%">
+ <span class="breadcrumbs">
+ <a href="lxml-module.html">Package lxml</a> ::
+ <a href="lxml.tests-module.html">Package tests</a> ::
+ <a href="lxml.tests.dummy_http_server-module.html">Module dummy_http_server</a> ::
+ Class HTTPRequestCollector
+ </span>
+ </td>
+ <td>
+ <table cellpadding="0" cellspacing="0">
+ <!-- hide/show private -->
+ <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+ onclick="toggle_private();">hide private</a>]</span></td></tr>
+ <tr><td align="right"><span class="options"
+ >[<a href="frames.html" target="_top">frames</a
+ >] | <a href="lxml.tests.dummy_http_server.HTTPRequestCollector-class.html"
+ target="_top">no frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class HTTPRequestCollector</h1><p class="nomargin-top"><span class="codelink"><a href="lxml.tests.dummy_http_server-pysrc.html#HTTPRequestCollector">source code</a></span></p>
+<pre class="base-tree">
+object --+
+ |
+ <strong class="uidshort">HTTPRequestCollector</strong>
+</pre>
+
+<hr />
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Instance Methods</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-InstanceMethods"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</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 href="lxml.tests.dummy_http_server.HTTPRequestCollector-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">response_data</span>,
+ <span class="summary-sig-arg">response_code</span>=<span class="summary-sig-default">200</span>,
+ <span class="summary-sig-arg">headers</span>=<span class="summary-sig-default"><code class="variable-group">(</code><code class="variable-group">)</code></span>)</span><br />
+ x.__init__(...) initializes x; see help(type(x)) for signature</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="lxml.tests.dummy_http_server-pysrc.html#HTTPRequestCollector.__init__">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="__call__"></a><span class="summary-sig-name">__call__</span>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">environ</span>,
+ <span class="summary-sig-arg">start_response</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="lxml.tests.dummy_http_server-pysrc.html#HTTPRequestCollector.__call__">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2" class="summary">
+ <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__delattr__</code>,
+ <code>__format__</code>,
+ <code>__getattribute__</code>,
+ <code>__hash__</code>,
+ <code>__new__</code>,
+ <code>__reduce__</code>,
+ <code>__reduce_ex__</code>,
+ <code>__repr__</code>,
+ <code>__setattr__</code>,
+ <code>__sizeof__</code>,
+ <code>__str__</code>,
+ <code>__subclasshook__</code>
+ </p>
+ </td>
+ </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Properties</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-Properties"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+ <tr>
+ <td colspan="2" class="summary">
+ <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__class__</code>
+ </p>
+ </td>
+ </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Method Details</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-MethodDetails"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+</table>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">response_data</span>,
+ <span class="sig-arg">response_code</span>=<span class="sig-default">200</span>,
+ <span class="sig-arg">headers</span>=<span class="sig-default"><code class="variable-group">(</code><code class="variable-group">)</code></span>)</span>
+ <br /><em class="fname">(Constructor)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="lxml.tests.dummy_http_server-pysrc.html#HTTPRequestCollector.__init__">source code</a></span>
+ </td>
+ </tr></table>
+
+ x.__init__(...) initializes x; see help(type(x)) for signature
+ <dl class="fields">
+ <dt>Overrides:
+ object.__init__
+ <dd><em class="note">(inherited documentation)</em></dd>
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+ <!-- Home link -->
+ <th> <a
+ href="lxml-module.html">Home</a> </th>
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ ><a class="navbar" target="_top" href="/">lxml API</a></th>
+ </tr></table></th>
+ </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+ <tr>
+ <td align="left" class="footer">
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
+ </td>
+ <td align="right" class="footer">
+ <a target="mainFrame" href="http://epydoc.sourceforge.net"
+ >http://epydoc.sourceforge.net</a>
+ </td>
+ </tr>
+</table>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>
--- /dev/null
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>lxml.tests.dummy_http_server.WebServer</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+ <!-- Home link -->
+ <th> <a
+ href="lxml-module.html">Home</a> </th>
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ ><a class="navbar" target="_top" href="/">lxml API</a></th>
+ </tr></table></th>
+ </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+ <tr valign="top">
+ <td width="100%">
+ <span class="breadcrumbs">
+ <a href="lxml-module.html">Package lxml</a> ::
+ <a href="lxml.tests-module.html">Package tests</a> ::
+ <a href="lxml.tests.dummy_http_server-module.html">Module dummy_http_server</a> ::
+ Class WebServer
+ </span>
+ </td>
+ <td>
+ <table cellpadding="0" cellspacing="0">
+ <!-- hide/show private -->
+ <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+ onclick="toggle_private();">hide private</a>]</span></td></tr>
+ <tr><td align="right"><span class="options"
+ >[<a href="frames.html" target="_top">frames</a
+ >] | <a href="lxml.tests.dummy_http_server.WebServer-class.html"
+ target="_top">no frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class WebServer</h1><p class="nomargin-top"><span class="codelink"><a href="lxml.tests.dummy_http_server-pysrc.html#WebServer">source code</a></span></p>
+<pre class="base-tree">
+SocketServer.BaseServer --+
+ |
+ SocketServer.TCPServer --+
+ |
+ BaseHTTPServer.HTTPServer --+
+ |
+ wsgiref.simple_server.WSGIServer --+
+ |
+ SocketServer.ThreadingMixIn --+
+ |
+ <strong class="uidshort">WebServer</strong>
+</pre>
+
+<hr />
+A web server that starts a new thread for each request.
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Instance Methods</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-InstanceMethods"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+ <tr>
+ <td colspan="2" class="summary">
+ <p class="indent-wrapped-lines"><b>Inherited from <code>wsgiref.simple_server.WSGIServer</code></b>:
+ <code>get_app</code>,
+ <code>server_bind</code>,
+ <code>set_app</code>,
+ <code>setup_environ</code>
+ </p>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>SocketServer.TCPServer</code></b>:
+ <code>__init__</code>,
+ <code>close_request</code>,
+ <code>fileno</code>,
+ <code>get_request</code>,
+ <code>server_activate</code>,
+ <code>server_close</code>,
+ <code>shutdown_request</code>
+ </p>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>SocketServer.BaseServer</code></b>:
+ <code>finish_request</code>,
+ <code>handle_error</code>,
+ <code>handle_request</code>,
+ <code>handle_timeout</code>,
+ <code>process_request</code>,
+ <code>serve_forever</code>,
+ <code>shutdown</code>,
+ <code>verify_request</code>
+ </p>
+ <div class="private"> <p class="indent-wrapped-lines"><b>Inherited from <code>SocketServer.BaseServer</code></b> (private):
+ <code>_handle_request_noblock</code>
+ </p></div>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>SocketServer.ThreadingMixIn</code></b>:
+ <code>process_request_thread</code>
+ </p>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS VARIABLES ==================== -->
+<a name="section-ClassVariables"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Class Variables</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-ClassVariables"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+ <tr>
+ <td colspan="2" class="summary">
+ <p class="indent-wrapped-lines"><b>Inherited from <code>wsgiref.simple_server.WSGIServer</code></b>:
+ <code>application</code>
+ </p>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>BaseHTTPServer.HTTPServer</code></b>:
+ <code>allow_reuse_address</code>
+ </p>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>SocketServer.TCPServer</code></b>:
+ <code>address_family</code>,
+ <code>request_queue_size</code>,
+ <code>socket_type</code>
+ </p>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>SocketServer.BaseServer</code></b>:
+ <code>timeout</code>
+ </p>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>SocketServer.ThreadingMixIn</code></b>:
+ <code>daemon_threads</code>
+ </p>
+ </td>
+ </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+ <!-- Home link -->
+ <th> <a
+ href="lxml-module.html">Home</a> </th>
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ ><a class="navbar" target="_top" href="/">lxml API</a></th>
+ </tr></table></th>
+ </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+ <tr>
+ <td align="left" class="footer">
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
+ </td>
+ <td align="right" class="footer">
+ <a target="mainFrame" href="http://epydoc.sourceforge.net"
+ >http://epydoc.sourceforge.net</a>
+ </td>
+ </tr>
+</table>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>
--- /dev/null
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>lxml.tests.dummy_http_server._RequestHandler</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+ <!-- Home link -->
+ <th> <a
+ href="lxml-module.html">Home</a> </th>
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ ><a class="navbar" target="_top" href="/">lxml API</a></th>
+ </tr></table></th>
+ </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+ <tr valign="top">
+ <td width="100%">
+ <span class="breadcrumbs">
+ <a href="lxml-module.html">Package lxml</a> ::
+ <a href="lxml.tests-module.html">Package tests</a> ::
+ <a href="lxml.tests.dummy_http_server-module.html">Module dummy_http_server</a> ::
+ Class _RequestHandler
+ </span>
+ </td>
+ <td>
+ <table cellpadding="0" cellspacing="0">
+ <!-- hide/show private -->
+ <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+ onclick="toggle_private();">hide private</a>]</span></td></tr>
+ <tr><td align="right"><span class="options"
+ >[<a href="frames.html" target="_top">frames</a
+ >] | <a href="lxml.tests.dummy_http_server._RequestHandler-class.html"
+ target="_top">no frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class _RequestHandler</h1><p class="nomargin-top"><span class="codelink"><a href="lxml.tests.dummy_http_server-pysrc.html#_RequestHandler">source code</a></span></p>
+<pre class="base-tree">
+SocketServer.BaseRequestHandler --+
+ |
+ SocketServer.StreamRequestHandler --+
+ |
+ BaseHTTPServer.BaseHTTPRequestHandler --+
+ |
+ wsgiref.simple_server.WSGIRequestHandler --+
+ |
+ <strong class="uidshort">_RequestHandler</strong>
+</pre>
+
+<hr />
+<!-- ==================== NESTED CLASSES ==================== -->
+<a name="section-NestedClasses"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Nested Classes</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-NestedClasses"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+ <tr>
+ <td colspan="2" class="summary">
+ <p class="indent-wrapped-lines"><b>Inherited from <code>BaseHTTPServer.BaseHTTPRequestHandler</code></b>:
+ <code><a href="mimetools.Message-class.html">MessageClass</a></code>
+ </p>
+ </td>
+ </tr>
+</table>
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Instance Methods</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-InstanceMethods"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</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 href="lxml.tests.dummy_http_server._RequestHandler-class.html#get_stderr" class="summary-sig-name">get_stderr</a>(<span class="summary-sig-arg">self</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="lxml.tests.dummy_http_server-pysrc.html#_RequestHandler.get_stderr">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 href="lxml.tests.dummy_http_server._RequestHandler-class.html#log_message" class="summary-sig-name">log_message</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">format</span>,
+ <span class="summary-sig-arg">*args</span>)</span><br />
+ Log an arbitrary message.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="lxml.tests.dummy_http_server-pysrc.html#_RequestHandler.log_message">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2" class="summary">
+ <p class="indent-wrapped-lines"><b>Inherited from <code>wsgiref.simple_server.WSGIRequestHandler</code></b>:
+ <code>get_environ</code>,
+ <code>handle</code>
+ </p>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>BaseHTTPServer.BaseHTTPRequestHandler</code></b>:
+ <code>address_string</code>,
+ <code>date_time_string</code>,
+ <code>end_headers</code>,
+ <code>handle_one_request</code>,
+ <code>log_date_time_string</code>,
+ <code>log_error</code>,
+ <code>log_request</code>,
+ <code>parse_request</code>,
+ <code>send_error</code>,
+ <code>send_header</code>,
+ <code>send_response</code>,
+ <code>version_string</code>
+ </p>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>SocketServer.StreamRequestHandler</code></b>:
+ <code>finish</code>,
+ <code>setup</code>
+ </p>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>SocketServer.BaseRequestHandler</code></b>:
+ <code>__init__</code>
+ </p>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS VARIABLES ==================== -->
+<a name="section-ClassVariables"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Class Variables</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-ClassVariables"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+ <tr>
+ <td colspan="2" class="summary">
+ <p class="indent-wrapped-lines"><b>Inherited from <code>wsgiref.simple_server.WSGIRequestHandler</code></b>:
+ <code>server_version</code>
+ </p>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>BaseHTTPServer.BaseHTTPRequestHandler</code></b>:
+ <code>default_request_version</code>,
+ <code>error_content_type</code>,
+ <code>error_message_format</code>,
+ <code>monthname</code>,
+ <code>protocol_version</code>,
+ <code>responses</code>,
+ <code>sys_version</code>,
+ <code>weekdayname</code>
+ </p>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>SocketServer.StreamRequestHandler</code></b>:
+ <code>disable_nagle_algorithm</code>,
+ <code>rbufsize</code>,
+ <code>timeout</code>,
+ <code>wbufsize</code>
+ </p>
+ </td>
+ </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Method Details</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-MethodDetails"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+</table>
+<a name="get_stderr"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">get_stderr</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="lxml.tests.dummy_http_server-pysrc.html#_RequestHandler.get_stderr">source code</a></span>
+ </td>
+ </tr></table>
+
+
+ <dl class="fields">
+ <dt>Overrides:
+ wsgiref.simple_server.WSGIRequestHandler.get_stderr
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<a name="log_message"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">log_message</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">format</span>,
+ <span class="sig-arg">*args</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="lxml.tests.dummy_http_server-pysrc.html#_RequestHandler.log_message">source code</a></span>
+ </td>
+ </tr></table>
+
+ <p>Log an arbitrary message.</p>
+<p>This is used by all other logging functions. Override
+it if you have specific logging wishes.</p>
+<p>The first argument, FORMAT, is a format string for the
+message to be logged. If the format string contains
+any % escapes requiring parameters, they should be
+specified as subsequent arguments (it's just like
+printf!).</p>
+<p>The client ip address and current date/time are prefixed to every
+message.</p>
+ <dl class="fields">
+ <dt>Overrides:
+ BaseHTTPServer.BaseHTTPRequestHandler.log_message
+ <dd><em class="note">(inherited documentation)</em></dd>
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+ <!-- Home link -->
+ <th> <a
+ href="lxml-module.html">Home</a> </th>
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ ><a class="navbar" target="_top" href="/">lxml API</a></th>
+ </tr></table></th>
+ </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+ <tr>
+ <td align="left" class="footer">
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
+ </td>
+ <td align="right" class="footer">
+ <a target="mainFrame" href="http://epydoc.sourceforge.net"
+ >http://epydoc.sourceforge.net</a>
+ </td>
+ </tr>
+</table>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
lxml.html.builder.E
lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-5', 'E', 'link-5');">E</a></tt> </tt>
<a name="L11"></a><tt class="py-lineno">11</tt> <tt class="py-line"> </tt>
-<a name="L12"></a><tt class="py-lineno">12</tt> <tt class="py-line"><tt id="link-6" class="py-name" targets="Variable lxml.tests.test_builder.this_dir=lxml.tests.test_builder-module.html#this_dir,Variable lxml.tests.test_classlookup.this_dir=lxml.tests.test_classlookup-module.html#this_dir,Variable lxml.tests.test_dtd.this_dir=lxml.tests.test_dtd-module.html#this_dir,Variable lxml.tests.test_elementtree.this_dir=lxml.tests.test_elementtree-module.html#this_dir,Variable lxml.tests.test_errors.this_dir=lxml.tests.test_errors-module.html#this_dir,Variable lxml.tests.test_etree.this_dir=lxml.tests.test_etree-module.html#this_dir,Variable lxml.tests.test_htmlparser.this_dir=lxml.tests.test_htmlparser-module.html#this_dir,Variable lxml.tests.test_incremental_xmlfile.this_dir=lxml.tests.test_incremental_xmlfile-module.html#this_dir,Variable lxml.tests.test_io.this_dir=lxml.tests.test_io-module.html#this_dir,Variable lxml.tests.test_isoschematron.this_dir=lxml.tests.test_isoschematron-module.html#this_dir,Variable lxml.tests.test_nsclasses.this_dir=lxml.tests.test_nsclasses-module.html#this_dir,Variable lxml.tests.test_objectify.this_dir=lxml.tests.test_objectify-module.html#this_dir,Variable lxml.tests.test_pyclasslookup.this_dir=lxml.tests.test_pyclasslookup-module.html#this_dir,Variable lxml.tests.test_relaxng.this_dir=lxml.tests.test_relaxng-module.html#this_dir,Variable lxml.tests.test_sax.this_dir=lxml.tests.test_sax-module.html#this_dir,Variable lxml.tests.test_schematron.this_dir=lxml.tests.test_schematron-module.html#this_dir,Variable lxml.tests.test_threading.this_dir=lxml.tests.test_threading-module.html#this_dir,Variable lxml.tests.test_unicode.this_dir=lxml.tests.test_unicode-module.html#this_dir,Variable lxml.tests.test_xmlschema.this_dir=lxml.tests.test_xmlschema-module.html#this_dir,Variable lxml.tests.test_xpathevaluator.this_dir=lxml.tests.test_xpathevaluator-module.html#this_dir,Variable lxml.tests.test_xslt.this_dir=lxml.tests.test_xslt-module.html#this_dir"><a title="lxml.tests.test_builder.this_dir
+<a name="L12"></a><tt class="py-lineno">12</tt> <tt class="py-line"><tt id="link-6" class="py-name" targets="Variable lxml.tests.test_builder.this_dir=lxml.tests.test_builder-module.html#this_dir,Variable lxml.tests.test_classlookup.this_dir=lxml.tests.test_classlookup-module.html#this_dir,Variable lxml.tests.test_dtd.this_dir=lxml.tests.test_dtd-module.html#this_dir,Variable lxml.tests.test_elementtree.this_dir=lxml.tests.test_elementtree-module.html#this_dir,Variable lxml.tests.test_errors.this_dir=lxml.tests.test_errors-module.html#this_dir,Variable lxml.tests.test_etree.this_dir=lxml.tests.test_etree-module.html#this_dir,Variable lxml.tests.test_htmlparser.this_dir=lxml.tests.test_htmlparser-module.html#this_dir,Variable lxml.tests.test_http_io.this_dir=lxml.tests.test_http_io-module.html#this_dir,Variable lxml.tests.test_incremental_xmlfile.this_dir=lxml.tests.test_incremental_xmlfile-module.html#this_dir,Variable lxml.tests.test_io.this_dir=lxml.tests.test_io-module.html#this_dir,Variable lxml.tests.test_isoschematron.this_dir=lxml.tests.test_isoschematron-module.html#this_dir,Variable lxml.tests.test_nsclasses.this_dir=lxml.tests.test_nsclasses-module.html#this_dir,Variable lxml.tests.test_objectify.this_dir=lxml.tests.test_objectify-module.html#this_dir,Variable lxml.tests.test_pyclasslookup.this_dir=lxml.tests.test_pyclasslookup-module.html#this_dir,Variable lxml.tests.test_relaxng.this_dir=lxml.tests.test_relaxng-module.html#this_dir,Variable lxml.tests.test_sax.this_dir=lxml.tests.test_sax-module.html#this_dir,Variable lxml.tests.test_schematron.this_dir=lxml.tests.test_schematron-module.html#this_dir,Variable lxml.tests.test_threading.this_dir=lxml.tests.test_threading-module.html#this_dir,Variable lxml.tests.test_unicode.this_dir=lxml.tests.test_unicode-module.html#this_dir,Variable lxml.tests.test_xmlschema.this_dir=lxml.tests.test_xmlschema-module.html#this_dir,Variable lxml.tests.test_xpathevaluator.this_dir=lxml.tests.test_xpathevaluator-module.html#this_dir,Variable lxml.tests.test_xslt.this_dir=lxml.tests.test_xslt-module.html#this_dir"><a title="lxml.tests.test_builder.this_dir
lxml.tests.test_classlookup.this_dir
lxml.tests.test_dtd.this_dir
lxml.tests.test_elementtree.this_dir
lxml.tests.test_errors.this_dir
lxml.tests.test_etree.this_dir
lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
lxml.tests.test_incremental_xmlfile.this_dir
lxml.tests.test_io.this_dir
lxml.tests.test_isoschematron.this_dir
lxml.tests.test_errors.this_dir
lxml.tests.test_etree.this_dir
lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
lxml.tests.test_incremental_xmlfile.this_dir
lxml.tests.test_io.this_dir
lxml.tests.test_isoschematron.this_dir
lxml.tests.test_errors.this_dir
lxml.tests.test_etree.this_dir
lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
lxml.tests.test_incremental_xmlfile.this_dir
lxml.tests.test_io.this_dir
lxml.tests.test_isoschematron.this_dir
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:38 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:14 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"> </tt>
<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">unittest</tt><tt class="py-op">,</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-0" class="py-name" targets="Variable lxml.etree.XPath.path=lxml.etree.XPath-class.html#path"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-0', 'path', 'link-0');">path</a></tt><tt class="py-op">,</tt> <tt class="py-name">sys</tt><tt class="py-op">,</tt> <tt class="py-name">gc</tt> </tt>
<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"> </tt>
-<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt id="link-1" class="py-name" targets="Variable lxml.tests.test_builder.this_dir=lxml.tests.test_builder-module.html#this_dir,Variable lxml.tests.test_classlookup.this_dir=lxml.tests.test_classlookup-module.html#this_dir,Variable lxml.tests.test_dtd.this_dir=lxml.tests.test_dtd-module.html#this_dir,Variable lxml.tests.test_elementtree.this_dir=lxml.tests.test_elementtree-module.html#this_dir,Variable lxml.tests.test_errors.this_dir=lxml.tests.test_errors-module.html#this_dir,Variable lxml.tests.test_etree.this_dir=lxml.tests.test_etree-module.html#this_dir,Variable lxml.tests.test_htmlparser.this_dir=lxml.tests.test_htmlparser-module.html#this_dir,Variable lxml.tests.test_incremental_xmlfile.this_dir=lxml.tests.test_incremental_xmlfile-module.html#this_dir,Variable lxml.tests.test_io.this_dir=lxml.tests.test_io-module.html#this_dir,Variable lxml.tests.test_isoschematron.this_dir=lxml.tests.test_isoschematron-module.html#this_dir,Variable lxml.tests.test_nsclasses.this_dir=lxml.tests.test_nsclasses-module.html#this_dir,Variable lxml.tests.test_objectify.this_dir=lxml.tests.test_objectify-module.html#this_dir,Variable lxml.tests.test_pyclasslookup.this_dir=lxml.tests.test_pyclasslookup-module.html#this_dir,Variable lxml.tests.test_relaxng.this_dir=lxml.tests.test_relaxng-module.html#this_dir,Variable lxml.tests.test_sax.this_dir=lxml.tests.test_sax-module.html#this_dir,Variable lxml.tests.test_schematron.this_dir=lxml.tests.test_schematron-module.html#this_dir,Variable lxml.tests.test_threading.this_dir=lxml.tests.test_threading-module.html#this_dir,Variable lxml.tests.test_unicode.this_dir=lxml.tests.test_unicode-module.html#this_dir,Variable lxml.tests.test_xmlschema.this_dir=lxml.tests.test_xmlschema-module.html#this_dir,Variable lxml.tests.test_xpathevaluator.this_dir=lxml.tests.test_xpathevaluator-module.html#this_dir,Variable lxml.tests.test_xslt.this_dir=lxml.tests.test_xslt-module.html#this_dir"><a title="lxml.tests.test_builder.this_dir
+<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt id="link-1" class="py-name" targets="Variable lxml.tests.test_builder.this_dir=lxml.tests.test_builder-module.html#this_dir,Variable lxml.tests.test_classlookup.this_dir=lxml.tests.test_classlookup-module.html#this_dir,Variable lxml.tests.test_dtd.this_dir=lxml.tests.test_dtd-module.html#this_dir,Variable lxml.tests.test_elementtree.this_dir=lxml.tests.test_elementtree-module.html#this_dir,Variable lxml.tests.test_errors.this_dir=lxml.tests.test_errors-module.html#this_dir,Variable lxml.tests.test_etree.this_dir=lxml.tests.test_etree-module.html#this_dir,Variable lxml.tests.test_htmlparser.this_dir=lxml.tests.test_htmlparser-module.html#this_dir,Variable lxml.tests.test_http_io.this_dir=lxml.tests.test_http_io-module.html#this_dir,Variable lxml.tests.test_incremental_xmlfile.this_dir=lxml.tests.test_incremental_xmlfile-module.html#this_dir,Variable lxml.tests.test_io.this_dir=lxml.tests.test_io-module.html#this_dir,Variable lxml.tests.test_isoschematron.this_dir=lxml.tests.test_isoschematron-module.html#this_dir,Variable lxml.tests.test_nsclasses.this_dir=lxml.tests.test_nsclasses-module.html#this_dir,Variable lxml.tests.test_objectify.this_dir=lxml.tests.test_objectify-module.html#this_dir,Variable lxml.tests.test_pyclasslookup.this_dir=lxml.tests.test_pyclasslookup-module.html#this_dir,Variable lxml.tests.test_relaxng.this_dir=lxml.tests.test_relaxng-module.html#this_dir,Variable lxml.tests.test_sax.this_dir=lxml.tests.test_sax-module.html#this_dir,Variable lxml.tests.test_schematron.this_dir=lxml.tests.test_schematron-module.html#this_dir,Variable lxml.tests.test_threading.this_dir=lxml.tests.test_threading-module.html#this_dir,Variable lxml.tests.test_unicode.this_dir=lxml.tests.test_unicode-module.html#this_dir,Variable lxml.tests.test_xmlschema.this_dir=lxml.tests.test_xmlschema-module.html#this_dir,Variable lxml.tests.test_xpathevaluator.this_dir=lxml.tests.test_xpathevaluator-module.html#this_dir,Variable lxml.tests.test_xslt.this_dir=lxml.tests.test_xslt-module.html#this_dir"><a title="lxml.tests.test_builder.this_dir
lxml.tests.test_classlookup.this_dir
lxml.tests.test_dtd.this_dir
lxml.tests.test_elementtree.this_dir
lxml.tests.test_errors.this_dir
lxml.tests.test_etree.this_dir
lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
lxml.tests.test_incremental_xmlfile.this_dir
lxml.tests.test_io.this_dir
lxml.tests.test_isoschematron.this_dir
lxml.tests.test_errors.this_dir
lxml.tests.test_etree.this_dir
lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
lxml.tests.test_incremental_xmlfile.this_dir
lxml.tests.test_io.this_dir
lxml.tests.test_isoschematron.this_dir
lxml.tests.test_errors.this_dir
lxml.tests.test_etree.this_dir
lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
lxml.tests.test_incremental_xmlfile.this_dir
lxml.tests.test_io.this_dir
lxml.tests.test_isoschematron.this_dir
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:37 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:14 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:36 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:13 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"> </tt>
<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">unittest</tt><tt class="py-op">,</tt> <tt class="py-name">sys</tt><tt class="py-op">,</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-0" class="py-name" targets="Variable lxml.etree.XPath.path=lxml.etree.XPath-class.html#path"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-0', 'path', 'link-0');">path</a></tt> </tt>
<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"> </tt>
-<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt id="link-1" class="py-name" targets="Variable lxml.tests.test_builder.this_dir=lxml.tests.test_builder-module.html#this_dir,Variable lxml.tests.test_classlookup.this_dir=lxml.tests.test_classlookup-module.html#this_dir,Variable lxml.tests.test_dtd.this_dir=lxml.tests.test_dtd-module.html#this_dir,Variable lxml.tests.test_elementtree.this_dir=lxml.tests.test_elementtree-module.html#this_dir,Variable lxml.tests.test_errors.this_dir=lxml.tests.test_errors-module.html#this_dir,Variable lxml.tests.test_etree.this_dir=lxml.tests.test_etree-module.html#this_dir,Variable lxml.tests.test_htmlparser.this_dir=lxml.tests.test_htmlparser-module.html#this_dir,Variable lxml.tests.test_incremental_xmlfile.this_dir=lxml.tests.test_incremental_xmlfile-module.html#this_dir,Variable lxml.tests.test_io.this_dir=lxml.tests.test_io-module.html#this_dir,Variable lxml.tests.test_isoschematron.this_dir=lxml.tests.test_isoschematron-module.html#this_dir,Variable lxml.tests.test_nsclasses.this_dir=lxml.tests.test_nsclasses-module.html#this_dir,Variable lxml.tests.test_objectify.this_dir=lxml.tests.test_objectify-module.html#this_dir,Variable lxml.tests.test_pyclasslookup.this_dir=lxml.tests.test_pyclasslookup-module.html#this_dir,Variable lxml.tests.test_relaxng.this_dir=lxml.tests.test_relaxng-module.html#this_dir,Variable lxml.tests.test_sax.this_dir=lxml.tests.test_sax-module.html#this_dir,Variable lxml.tests.test_schematron.this_dir=lxml.tests.test_schematron-module.html#this_dir,Variable lxml.tests.test_threading.this_dir=lxml.tests.test_threading-module.html#this_dir,Variable lxml.tests.test_unicode.this_dir=lxml.tests.test_unicode-module.html#this_dir,Variable lxml.tests.test_xmlschema.this_dir=lxml.tests.test_xmlschema-module.html#this_dir,Variable lxml.tests.test_xpathevaluator.this_dir=lxml.tests.test_xpathevaluator-module.html#this_dir,Variable lxml.tests.test_xslt.this_dir=lxml.tests.test_xslt-module.html#this_dir"><a title="lxml.tests.test_builder.this_dir
+<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt id="link-1" class="py-name" targets="Variable lxml.tests.test_builder.this_dir=lxml.tests.test_builder-module.html#this_dir,Variable lxml.tests.test_classlookup.this_dir=lxml.tests.test_classlookup-module.html#this_dir,Variable lxml.tests.test_dtd.this_dir=lxml.tests.test_dtd-module.html#this_dir,Variable lxml.tests.test_elementtree.this_dir=lxml.tests.test_elementtree-module.html#this_dir,Variable lxml.tests.test_errors.this_dir=lxml.tests.test_errors-module.html#this_dir,Variable lxml.tests.test_etree.this_dir=lxml.tests.test_etree-module.html#this_dir,Variable lxml.tests.test_htmlparser.this_dir=lxml.tests.test_htmlparser-module.html#this_dir,Variable lxml.tests.test_http_io.this_dir=lxml.tests.test_http_io-module.html#this_dir,Variable lxml.tests.test_incremental_xmlfile.this_dir=lxml.tests.test_incremental_xmlfile-module.html#this_dir,Variable lxml.tests.test_io.this_dir=lxml.tests.test_io-module.html#this_dir,Variable lxml.tests.test_isoschematron.this_dir=lxml.tests.test_isoschematron-module.html#this_dir,Variable lxml.tests.test_nsclasses.this_dir=lxml.tests.test_nsclasses-module.html#this_dir,Variable lxml.tests.test_objectify.this_dir=lxml.tests.test_objectify-module.html#this_dir,Variable lxml.tests.test_pyclasslookup.this_dir=lxml.tests.test_pyclasslookup-module.html#this_dir,Variable lxml.tests.test_relaxng.this_dir=lxml.tests.test_relaxng-module.html#this_dir,Variable lxml.tests.test_sax.this_dir=lxml.tests.test_sax-module.html#this_dir,Variable lxml.tests.test_schematron.this_dir=lxml.tests.test_schematron-module.html#this_dir,Variable lxml.tests.test_threading.this_dir=lxml.tests.test_threading-module.html#this_dir,Variable lxml.tests.test_unicode.this_dir=lxml.tests.test_unicode-module.html#this_dir,Variable lxml.tests.test_xmlschema.this_dir=lxml.tests.test_xmlschema-module.html#this_dir,Variable lxml.tests.test_xpathevaluator.this_dir=lxml.tests.test_xpathevaluator-module.html#this_dir,Variable lxml.tests.test_xslt.this_dir=lxml.tests.test_xslt-module.html#this_dir"><a title="lxml.tests.test_builder.this_dir
lxml.tests.test_classlookup.this_dir
lxml.tests.test_dtd.this_dir
lxml.tests.test_elementtree.this_dir
lxml.tests.test_errors.this_dir
lxml.tests.test_etree.this_dir
lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
lxml.tests.test_incremental_xmlfile.this_dir
lxml.tests.test_io.this_dir
lxml.tests.test_isoschematron.this_dir
lxml.tests.test_errors.this_dir
lxml.tests.test_etree.this_dir
lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
lxml.tests.test_incremental_xmlfile.this_dir
lxml.tests.test_io.this_dir
lxml.tests.test_isoschematron.this_dir
lxml.tests.test_errors.this_dir
lxml.tests.test_etree.this_dir
lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
lxml.tests.test_incremental_xmlfile.this_dir
lxml.tests.test_io.this_dir
lxml.tests.test_isoschematron.this_dir
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:38 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:12 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
lxml.etree._ListErrorLog.copy
lxml.etree.iterparse.copy" class="py-name" href="#" onclick="return doclink('link-0', 'copy', 'link-0');">copy</a></tt><tt class="py-op">,</tt> <tt class="py-name">operator</tt><tt class="py-op">,</tt> <tt class="py-name">gc</tt><tt class="py-op">,</tt> <tt class="py-name">sys</tt> </tt>
<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"> </tt>
-<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt id="link-1" class="py-name" targets="Variable lxml.tests.test_builder.this_dir=lxml.tests.test_builder-module.html#this_dir,Variable lxml.tests.test_classlookup.this_dir=lxml.tests.test_classlookup-module.html#this_dir,Variable lxml.tests.test_dtd.this_dir=lxml.tests.test_dtd-module.html#this_dir,Variable lxml.tests.test_elementtree.this_dir=lxml.tests.test_elementtree-module.html#this_dir,Variable lxml.tests.test_errors.this_dir=lxml.tests.test_errors-module.html#this_dir,Variable lxml.tests.test_etree.this_dir=lxml.tests.test_etree-module.html#this_dir,Variable lxml.tests.test_htmlparser.this_dir=lxml.tests.test_htmlparser-module.html#this_dir,Variable lxml.tests.test_incremental_xmlfile.this_dir=lxml.tests.test_incremental_xmlfile-module.html#this_dir,Variable lxml.tests.test_io.this_dir=lxml.tests.test_io-module.html#this_dir,Variable lxml.tests.test_isoschematron.this_dir=lxml.tests.test_isoschematron-module.html#this_dir,Variable lxml.tests.test_nsclasses.this_dir=lxml.tests.test_nsclasses-module.html#this_dir,Variable lxml.tests.test_objectify.this_dir=lxml.tests.test_objectify-module.html#this_dir,Variable lxml.tests.test_pyclasslookup.this_dir=lxml.tests.test_pyclasslookup-module.html#this_dir,Variable lxml.tests.test_relaxng.this_dir=lxml.tests.test_relaxng-module.html#this_dir,Variable lxml.tests.test_sax.this_dir=lxml.tests.test_sax-module.html#this_dir,Variable lxml.tests.test_schematron.this_dir=lxml.tests.test_schematron-module.html#this_dir,Variable lxml.tests.test_threading.this_dir=lxml.tests.test_threading-module.html#this_dir,Variable lxml.tests.test_unicode.this_dir=lxml.tests.test_unicode-module.html#this_dir,Variable lxml.tests.test_xmlschema.this_dir=lxml.tests.test_xmlschema-module.html#this_dir,Variable lxml.tests.test_xpathevaluator.this_dir=lxml.tests.test_xpathevaluator-module.html#this_dir,Variable lxml.tests.test_xslt.this_dir=lxml.tests.test_xslt-module.html#this_dir"><a title="lxml.tests.test_builder.this_dir
+<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt id="link-1" class="py-name" targets="Variable lxml.tests.test_builder.this_dir=lxml.tests.test_builder-module.html#this_dir,Variable lxml.tests.test_classlookup.this_dir=lxml.tests.test_classlookup-module.html#this_dir,Variable lxml.tests.test_dtd.this_dir=lxml.tests.test_dtd-module.html#this_dir,Variable lxml.tests.test_elementtree.this_dir=lxml.tests.test_elementtree-module.html#this_dir,Variable lxml.tests.test_errors.this_dir=lxml.tests.test_errors-module.html#this_dir,Variable lxml.tests.test_etree.this_dir=lxml.tests.test_etree-module.html#this_dir,Variable lxml.tests.test_htmlparser.this_dir=lxml.tests.test_htmlparser-module.html#this_dir,Variable lxml.tests.test_http_io.this_dir=lxml.tests.test_http_io-module.html#this_dir,Variable lxml.tests.test_incremental_xmlfile.this_dir=lxml.tests.test_incremental_xmlfile-module.html#this_dir,Variable lxml.tests.test_io.this_dir=lxml.tests.test_io-module.html#this_dir,Variable lxml.tests.test_isoschematron.this_dir=lxml.tests.test_isoschematron-module.html#this_dir,Variable lxml.tests.test_nsclasses.this_dir=lxml.tests.test_nsclasses-module.html#this_dir,Variable lxml.tests.test_objectify.this_dir=lxml.tests.test_objectify-module.html#this_dir,Variable lxml.tests.test_pyclasslookup.this_dir=lxml.tests.test_pyclasslookup-module.html#this_dir,Variable lxml.tests.test_relaxng.this_dir=lxml.tests.test_relaxng-module.html#this_dir,Variable lxml.tests.test_sax.this_dir=lxml.tests.test_sax-module.html#this_dir,Variable lxml.tests.test_schematron.this_dir=lxml.tests.test_schematron-module.html#this_dir,Variable lxml.tests.test_threading.this_dir=lxml.tests.test_threading-module.html#this_dir,Variable lxml.tests.test_unicode.this_dir=lxml.tests.test_unicode-module.html#this_dir,Variable lxml.tests.test_xmlschema.this_dir=lxml.tests.test_xmlschema-module.html#this_dir,Variable lxml.tests.test_xpathevaluator.this_dir=lxml.tests.test_xpathevaluator-module.html#this_dir,Variable lxml.tests.test_xslt.this_dir=lxml.tests.test_xslt-module.html#this_dir"><a title="lxml.tests.test_builder.this_dir
lxml.tests.test_classlookup.this_dir
lxml.tests.test_dtd.this_dir
lxml.tests.test_elementtree.this_dir
lxml.tests.test_errors.this_dir
lxml.tests.test_etree.this_dir
lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
lxml.tests.test_incremental_xmlfile.this_dir
lxml.tests.test_io.this_dir
lxml.tests.test_isoschematron.this_dir
lxml.tests.test_errors.this_dir
lxml.tests.test_etree.this_dir
lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
lxml.tests.test_incremental_xmlfile.this_dir
lxml.tests.test_io.this_dir
lxml.tests.test_isoschematron.this_dir
lxml.tests.test_errors.this_dir
lxml.tests.test_etree.this_dir
lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
lxml.tests.test_incremental_xmlfile.this_dir
lxml.tests.test_io.this_dir
lxml.tests.test_isoschematron.this_dir
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:37 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:14 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2', 'etree', 'link-2');">etree</a></tt> </tt>
<a name="L11"></a><tt class="py-lineno">11</tt> <tt class="py-line"> </tt>
-<a name="L12"></a><tt class="py-lineno">12</tt> <tt class="py-line"><tt id="link-3" class="py-name" targets="Variable lxml.tests.test_builder.this_dir=lxml.tests.test_builder-module.html#this_dir,Variable lxml.tests.test_classlookup.this_dir=lxml.tests.test_classlookup-module.html#this_dir,Variable lxml.tests.test_dtd.this_dir=lxml.tests.test_dtd-module.html#this_dir,Variable lxml.tests.test_elementtree.this_dir=lxml.tests.test_elementtree-module.html#this_dir,Variable lxml.tests.test_errors.this_dir=lxml.tests.test_errors-module.html#this_dir,Variable lxml.tests.test_etree.this_dir=lxml.tests.test_etree-module.html#this_dir,Variable lxml.tests.test_htmlparser.this_dir=lxml.tests.test_htmlparser-module.html#this_dir,Variable lxml.tests.test_incremental_xmlfile.this_dir=lxml.tests.test_incremental_xmlfile-module.html#this_dir,Variable lxml.tests.test_io.this_dir=lxml.tests.test_io-module.html#this_dir,Variable lxml.tests.test_isoschematron.this_dir=lxml.tests.test_isoschematron-module.html#this_dir,Variable lxml.tests.test_nsclasses.this_dir=lxml.tests.test_nsclasses-module.html#this_dir,Variable lxml.tests.test_objectify.this_dir=lxml.tests.test_objectify-module.html#this_dir,Variable lxml.tests.test_pyclasslookup.this_dir=lxml.tests.test_pyclasslookup-module.html#this_dir,Variable lxml.tests.test_relaxng.this_dir=lxml.tests.test_relaxng-module.html#this_dir,Variable lxml.tests.test_sax.this_dir=lxml.tests.test_sax-module.html#this_dir,Variable lxml.tests.test_schematron.this_dir=lxml.tests.test_schematron-module.html#this_dir,Variable lxml.tests.test_threading.this_dir=lxml.tests.test_threading-module.html#this_dir,Variable lxml.tests.test_unicode.this_dir=lxml.tests.test_unicode-module.html#this_dir,Variable lxml.tests.test_xmlschema.this_dir=lxml.tests.test_xmlschema-module.html#this_dir,Variable lxml.tests.test_xpathevaluator.this_dir=lxml.tests.test_xpathevaluator-module.html#this_dir,Variable lxml.tests.test_xslt.this_dir=lxml.tests.test_xslt-module.html#this_dir"><a title="lxml.tests.test_builder.this_dir
+<a name="L12"></a><tt class="py-lineno">12</tt> <tt class="py-line"><tt id="link-3" class="py-name" targets="Variable lxml.tests.test_builder.this_dir=lxml.tests.test_builder-module.html#this_dir,Variable lxml.tests.test_classlookup.this_dir=lxml.tests.test_classlookup-module.html#this_dir,Variable lxml.tests.test_dtd.this_dir=lxml.tests.test_dtd-module.html#this_dir,Variable lxml.tests.test_elementtree.this_dir=lxml.tests.test_elementtree-module.html#this_dir,Variable lxml.tests.test_errors.this_dir=lxml.tests.test_errors-module.html#this_dir,Variable lxml.tests.test_etree.this_dir=lxml.tests.test_etree-module.html#this_dir,Variable lxml.tests.test_htmlparser.this_dir=lxml.tests.test_htmlparser-module.html#this_dir,Variable lxml.tests.test_http_io.this_dir=lxml.tests.test_http_io-module.html#this_dir,Variable lxml.tests.test_incremental_xmlfile.this_dir=lxml.tests.test_incremental_xmlfile-module.html#this_dir,Variable lxml.tests.test_io.this_dir=lxml.tests.test_io-module.html#this_dir,Variable lxml.tests.test_isoschematron.this_dir=lxml.tests.test_isoschematron-module.html#this_dir,Variable lxml.tests.test_nsclasses.this_dir=lxml.tests.test_nsclasses-module.html#this_dir,Variable lxml.tests.test_objectify.this_dir=lxml.tests.test_objectify-module.html#this_dir,Variable lxml.tests.test_pyclasslookup.this_dir=lxml.tests.test_pyclasslookup-module.html#this_dir,Variable lxml.tests.test_relaxng.this_dir=lxml.tests.test_relaxng-module.html#this_dir,Variable lxml.tests.test_sax.this_dir=lxml.tests.test_sax-module.html#this_dir,Variable lxml.tests.test_schematron.this_dir=lxml.tests.test_schematron-module.html#this_dir,Variable lxml.tests.test_threading.this_dir=lxml.tests.test_threading-module.html#this_dir,Variable lxml.tests.test_unicode.this_dir=lxml.tests.test_unicode-module.html#this_dir,Variable lxml.tests.test_xmlschema.this_dir=lxml.tests.test_xmlschema-module.html#this_dir,Variable lxml.tests.test_xpathevaluator.this_dir=lxml.tests.test_xpathevaluator-module.html#this_dir,Variable lxml.tests.test_xslt.this_dir=lxml.tests.test_xslt-module.html#this_dir"><a title="lxml.tests.test_builder.this_dir
lxml.tests.test_classlookup.this_dir
lxml.tests.test_dtd.this_dir
lxml.tests.test_elementtree.this_dir
lxml.tests.test_errors.this_dir
lxml.tests.test_etree.this_dir
lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
lxml.tests.test_incremental_xmlfile.this_dir
lxml.tests.test_io.this_dir
lxml.tests.test_isoschematron.this_dir
lxml.tests.test_errors.this_dir
lxml.tests.test_etree.this_dir
lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
lxml.tests.test_incremental_xmlfile.this_dir
lxml.tests.test_io.this_dir
lxml.tests.test_isoschematron.this_dir
lxml.tests.test_errors.this_dir
lxml.tests.test_etree.this_dir
lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
lxml.tests.test_incremental_xmlfile.this_dir
lxml.tests.test_io.this_dir
lxml.tests.test_isoschematron.this_dir
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:38 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:13 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">tempfile</tt> </tt>
<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">gzip</tt> </tt>
<a name="L19"></a><tt class="py-lineno"> 19</tt> <tt class="py-line"> </tt>
-<a name="L20"></a><tt class="py-lineno"> 20</tt> <tt class="py-line"><tt id="link-2" class="py-name" targets="Variable lxml.tests.test_builder.this_dir=lxml.tests.test_builder-module.html#this_dir,Variable lxml.tests.test_classlookup.this_dir=lxml.tests.test_classlookup-module.html#this_dir,Variable lxml.tests.test_dtd.this_dir=lxml.tests.test_dtd-module.html#this_dir,Variable lxml.tests.test_elementtree.this_dir=lxml.tests.test_elementtree-module.html#this_dir,Variable lxml.tests.test_errors.this_dir=lxml.tests.test_errors-module.html#this_dir,Variable lxml.tests.test_etree.this_dir=lxml.tests.test_etree-module.html#this_dir,Variable lxml.tests.test_htmlparser.this_dir=lxml.tests.test_htmlparser-module.html#this_dir,Variable lxml.tests.test_incremental_xmlfile.this_dir=lxml.tests.test_incremental_xmlfile-module.html#this_dir,Variable lxml.tests.test_io.this_dir=lxml.tests.test_io-module.html#this_dir,Variable lxml.tests.test_isoschematron.this_dir=lxml.tests.test_isoschematron-module.html#this_dir,Variable lxml.tests.test_nsclasses.this_dir=lxml.tests.test_nsclasses-module.html#this_dir,Variable lxml.tests.test_objectify.this_dir=lxml.tests.test_objectify-module.html#this_dir,Variable lxml.tests.test_pyclasslookup.this_dir=lxml.tests.test_pyclasslookup-module.html#this_dir,Variable lxml.tests.test_relaxng.this_dir=lxml.tests.test_relaxng-module.html#this_dir,Variable lxml.tests.test_sax.this_dir=lxml.tests.test_sax-module.html#this_dir,Variable lxml.tests.test_schematron.this_dir=lxml.tests.test_schematron-module.html#this_dir,Variable lxml.tests.test_threading.this_dir=lxml.tests.test_threading-module.html#this_dir,Variable lxml.tests.test_unicode.this_dir=lxml.tests.test_unicode-module.html#this_dir,Variable lxml.tests.test_xmlschema.this_dir=lxml.tests.test_xmlschema-module.html#this_dir,Variable lxml.tests.test_xpathevaluator.this_dir=lxml.tests.test_xpathevaluator-module.html#this_dir,Variable lxml.tests.test_xslt.this_dir=lxml.tests.test_xslt-module.html#this_dir"><a title="lxml.tests.test_builder.this_dir
+<a name="L20"></a><tt class="py-lineno"> 20</tt> <tt class="py-line"><tt id="link-2" class="py-name" targets="Variable lxml.tests.test_builder.this_dir=lxml.tests.test_builder-module.html#this_dir,Variable lxml.tests.test_classlookup.this_dir=lxml.tests.test_classlookup-module.html#this_dir,Variable lxml.tests.test_dtd.this_dir=lxml.tests.test_dtd-module.html#this_dir,Variable lxml.tests.test_elementtree.this_dir=lxml.tests.test_elementtree-module.html#this_dir,Variable lxml.tests.test_errors.this_dir=lxml.tests.test_errors-module.html#this_dir,Variable lxml.tests.test_etree.this_dir=lxml.tests.test_etree-module.html#this_dir,Variable lxml.tests.test_htmlparser.this_dir=lxml.tests.test_htmlparser-module.html#this_dir,Variable lxml.tests.test_http_io.this_dir=lxml.tests.test_http_io-module.html#this_dir,Variable lxml.tests.test_incremental_xmlfile.this_dir=lxml.tests.test_incremental_xmlfile-module.html#this_dir,Variable lxml.tests.test_io.this_dir=lxml.tests.test_io-module.html#this_dir,Variable lxml.tests.test_isoschematron.this_dir=lxml.tests.test_isoschematron-module.html#this_dir,Variable lxml.tests.test_nsclasses.this_dir=lxml.tests.test_nsclasses-module.html#this_dir,Variable lxml.tests.test_objectify.this_dir=lxml.tests.test_objectify-module.html#this_dir,Variable lxml.tests.test_pyclasslookup.this_dir=lxml.tests.test_pyclasslookup-module.html#this_dir,Variable lxml.tests.test_relaxng.this_dir=lxml.tests.test_relaxng-module.html#this_dir,Variable lxml.tests.test_sax.this_dir=lxml.tests.test_sax-module.html#this_dir,Variable lxml.tests.test_schematron.this_dir=lxml.tests.test_schematron-module.html#this_dir,Variable lxml.tests.test_threading.this_dir=lxml.tests.test_threading-module.html#this_dir,Variable lxml.tests.test_unicode.this_dir=lxml.tests.test_unicode-module.html#this_dir,Variable lxml.tests.test_xmlschema.this_dir=lxml.tests.test_xmlschema-module.html#this_dir,Variable lxml.tests.test_xpathevaluator.this_dir=lxml.tests.test_xpathevaluator-module.html#this_dir,Variable lxml.tests.test_xslt.this_dir=lxml.tests.test_xslt-module.html#this_dir"><a title="lxml.tests.test_builder.this_dir
lxml.tests.test_classlookup.this_dir
lxml.tests.test_dtd.this_dir
lxml.tests.test_elementtree.this_dir
lxml.tests.test_errors.this_dir
lxml.tests.test_etree.this_dir
lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
lxml.tests.test_incremental_xmlfile.this_dir
lxml.tests.test_io.this_dir
lxml.tests.test_isoschematron.this_dir
lxml.tests.test_errors.this_dir
lxml.tests.test_etree.this_dir
lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
lxml.tests.test_incremental_xmlfile.this_dir
lxml.tests.test_io.this_dir
lxml.tests.test_isoschematron.this_dir
lxml.tests.test_errors.this_dir
lxml.tests.test_etree.this_dir
lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
lxml.tests.test_incremental_xmlfile.this_dir
lxml.tests.test_io.this_dir
lxml.tests.test_isoschematron.this_dir
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:37 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:12 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">unittest</tt> </tt>
<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">tempfile</tt><tt class="py-op">,</tt> <tt class="py-name">os</tt><tt class="py-op">,</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-0" class="py-name" targets="Variable lxml.etree.XPath.path=lxml.etree.XPath-class.html#path"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-0', 'path', 'link-0');">path</a></tt><tt class="py-op">,</tt> <tt class="py-name">sys</tt> </tt>
<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"> </tt>
-<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt id="link-1" class="py-name" targets="Variable lxml.tests.test_builder.this_dir=lxml.tests.test_builder-module.html#this_dir,Variable lxml.tests.test_classlookup.this_dir=lxml.tests.test_classlookup-module.html#this_dir,Variable lxml.tests.test_dtd.this_dir=lxml.tests.test_dtd-module.html#this_dir,Variable lxml.tests.test_elementtree.this_dir=lxml.tests.test_elementtree-module.html#this_dir,Variable lxml.tests.test_errors.this_dir=lxml.tests.test_errors-module.html#this_dir,Variable lxml.tests.test_etree.this_dir=lxml.tests.test_etree-module.html#this_dir,Variable lxml.tests.test_htmlparser.this_dir=lxml.tests.test_htmlparser-module.html#this_dir,Variable lxml.tests.test_incremental_xmlfile.this_dir=lxml.tests.test_incremental_xmlfile-module.html#this_dir,Variable lxml.tests.test_io.this_dir=lxml.tests.test_io-module.html#this_dir,Variable lxml.tests.test_isoschematron.this_dir=lxml.tests.test_isoschematron-module.html#this_dir,Variable lxml.tests.test_nsclasses.this_dir=lxml.tests.test_nsclasses-module.html#this_dir,Variable lxml.tests.test_objectify.this_dir=lxml.tests.test_objectify-module.html#this_dir,Variable lxml.tests.test_pyclasslookup.this_dir=lxml.tests.test_pyclasslookup-module.html#this_dir,Variable lxml.tests.test_relaxng.this_dir=lxml.tests.test_relaxng-module.html#this_dir,Variable lxml.tests.test_sax.this_dir=lxml.tests.test_sax-module.html#this_dir,Variable lxml.tests.test_schematron.this_dir=lxml.tests.test_schematron-module.html#this_dir,Variable lxml.tests.test_threading.this_dir=lxml.tests.test_threading-module.html#this_dir,Variable lxml.tests.test_unicode.this_dir=lxml.tests.test_unicode-module.html#this_dir,Variable lxml.tests.test_xmlschema.this_dir=lxml.tests.test_xmlschema-module.html#this_dir,Variable lxml.tests.test_xpathevaluator.this_dir=lxml.tests.test_xpathevaluator-module.html#this_dir,Variable lxml.tests.test_xslt.this_dir=lxml.tests.test_xslt-module.html#this_dir"><a title="lxml.tests.test_builder.this_dir
+<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt id="link-1" class="py-name" targets="Variable lxml.tests.test_builder.this_dir=lxml.tests.test_builder-module.html#this_dir,Variable lxml.tests.test_classlookup.this_dir=lxml.tests.test_classlookup-module.html#this_dir,Variable lxml.tests.test_dtd.this_dir=lxml.tests.test_dtd-module.html#this_dir,Variable lxml.tests.test_elementtree.this_dir=lxml.tests.test_elementtree-module.html#this_dir,Variable lxml.tests.test_errors.this_dir=lxml.tests.test_errors-module.html#this_dir,Variable lxml.tests.test_etree.this_dir=lxml.tests.test_etree-module.html#this_dir,Variable lxml.tests.test_htmlparser.this_dir=lxml.tests.test_htmlparser-module.html#this_dir,Variable lxml.tests.test_http_io.this_dir=lxml.tests.test_http_io-module.html#this_dir,Variable lxml.tests.test_incremental_xmlfile.this_dir=lxml.tests.test_incremental_xmlfile-module.html#this_dir,Variable lxml.tests.test_io.this_dir=lxml.tests.test_io-module.html#this_dir,Variable lxml.tests.test_isoschematron.this_dir=lxml.tests.test_isoschematron-module.html#this_dir,Variable lxml.tests.test_nsclasses.this_dir=lxml.tests.test_nsclasses-module.html#this_dir,Variable lxml.tests.test_objectify.this_dir=lxml.tests.test_objectify-module.html#this_dir,Variable lxml.tests.test_pyclasslookup.this_dir=lxml.tests.test_pyclasslookup-module.html#this_dir,Variable lxml.tests.test_relaxng.this_dir=lxml.tests.test_relaxng-module.html#this_dir,Variable lxml.tests.test_sax.this_dir=lxml.tests.test_sax-module.html#this_dir,Variable lxml.tests.test_schematron.this_dir=lxml.tests.test_schematron-module.html#this_dir,Variable lxml.tests.test_threading.this_dir=lxml.tests.test_threading-module.html#this_dir,Variable lxml.tests.test_unicode.this_dir=lxml.tests.test_unicode-module.html#this_dir,Variable lxml.tests.test_xmlschema.this_dir=lxml.tests.test_xmlschema-module.html#this_dir,Variable lxml.tests.test_xpathevaluator.this_dir=lxml.tests.test_xpathevaluator-module.html#this_dir,Variable lxml.tests.test_xslt.this_dir=lxml.tests.test_xslt-module.html#this_dir"><a title="lxml.tests.test_builder.this_dir
lxml.tests.test_classlookup.this_dir
lxml.tests.test_dtd.this_dir
lxml.tests.test_elementtree.this_dir
lxml.tests.test_errors.this_dir
lxml.tests.test_etree.this_dir
lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
lxml.tests.test_incremental_xmlfile.this_dir
lxml.tests.test_io.this_dir
lxml.tests.test_isoschematron.this_dir
lxml.tests.test_errors.this_dir
lxml.tests.test_etree.this_dir
lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
lxml.tests.test_incremental_xmlfile.this_dir
lxml.tests.test_io.this_dir
lxml.tests.test_isoschematron.this_dir
lxml.tests.test_errors.this_dir
lxml.tests.test_etree.this_dir
lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
lxml.tests.test_incremental_xmlfile.this_dir
lxml.tests.test_io.this_dir
lxml.tests.test_isoschematron.this_dir
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:38 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:13 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
--- /dev/null
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>lxml.tests.test_http_io</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+ <!-- Home link -->
+ <th> <a
+ href="lxml-module.html">Home</a> </th>
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ ><a class="navbar" target="_top" href="/">lxml API</a></th>
+ </tr></table></th>
+ </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+ <tr valign="top">
+ <td width="100%">
+ <span class="breadcrumbs">
+ <a href="lxml-module.html">Package lxml</a> ::
+ <a href="lxml.tests-module.html">Package tests</a> ::
+ Module test_http_io
+ </span>
+ </td>
+ <td>
+ <table cellpadding="0" cellspacing="0">
+ <!-- hide/show private -->
+ <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+ onclick="toggle_private();">hide private</a>]</span></td></tr>
+ <tr><td align="right"><span class="options"
+ >[<a href="frames.html" target="_top">frames</a
+ >] | <a href="lxml.tests.test_http_io-module.html"
+ target="_top">no frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module test_http_io</h1><p class="nomargin-top"><span class="codelink"><a href="lxml.tests.test_http_io-pysrc.html">source code</a></span></p>
+Web IO test cases that need Python 2.5+ (wsgiref)
+
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Classes</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-Classes"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</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">
+ <a href="lxml.tests.test_http_io.HttpIOTestCase-class.html" class="summary-name">HttpIOTestCase</a>
+ </td>
+ </tr>
+</table>
+<!-- ==================== FUNCTIONS ==================== -->
+<a name="section-Functions"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Functions</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-Functions"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</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_suite"></a><span class="summary-sig-name">test_suite</span>()</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="lxml.tests.test_http_io-pysrc.html#test_suite">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+</table>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Variables</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-Variables"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</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">
+ <a href="lxml.tests.test_http_io-module.html#this_dir" class="summary-name">this_dir</a> = <code title="'/home/stefan/source/Python/lxml/lxml-release/src/lxml/tests'"><code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-release/src/l</code><code class="variable-ellipsis">...</code></code>
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'lxml.tests'"><code class="variable-quote">'</code><code class="variable-string">lxml.tests</code><code class="variable-quote">'</code></code>
+ </td>
+ </tr>
+</table>
+<!-- ==================== VARIABLES DETAILS ==================== -->
+<a name="section-VariablesDetails"></a>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Variables Details</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-VariablesDetails"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+</table>
+<a name="this_dir"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">this_dir</h3>
+
+ <dl class="fields">
+ </dl>
+ <dl class="fields">
+ <dt>Value:</dt>
+ <dd><table><tr><td><pre class="variable">
+<code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-release/src/lxml/tests</code><code class="variable-quote">'</code>
+</pre></td></tr></table>
+</dd>
+ </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+ <!-- Home link -->
+ <th> <a
+ href="lxml-module.html">Home</a> </th>
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ ><a class="navbar" target="_top" href="/">lxml API</a></th>
+ </tr></table></th>
+ </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+ <tr>
+ <td align="left" class="footer">
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
+ </td>
+ <td align="right" class="footer">
+ <a target="mainFrame" href="http://epydoc.sourceforge.net"
+ >http://epydoc.sourceforge.net</a>
+ </td>
+ </tr>
+</table>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>
--- /dev/null
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>lxml.tests.test_http_io</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+ <!-- Home link -->
+ <th> <a
+ href="lxml-module.html">Home</a> </th>
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ ><a class="navbar" target="_top" href="/">lxml API</a></th>
+ </tr></table></th>
+ </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+ <tr valign="top">
+ <td width="100%">
+ <span class="breadcrumbs">
+ <a href="lxml-module.html">Package lxml</a> ::
+ <a href="lxml.tests-module.html">Package tests</a> ::
+ Module test_http_io
+ </span>
+ </td>
+ <td>
+ <table cellpadding="0" cellspacing="0">
+ <!-- hide/show private -->
+ <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+ onclick="toggle_private();">hide private</a>]</span></td></tr>
+ <tr><td align="right"><span class="options"
+ >[<a href="frames.html" target="_top">frames</a
+ >] | <a href="lxml.tests.test_http_io-pysrc.html"
+ target="_top">no frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="lxml.tests.test_http_io-module.html">Module lxml.tests.test_http_io</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># -*- coding: utf-8 -*-</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-docstring">Web IO test cases that need Python 2.5+ (wsgiref)</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">__future__</tt> <tt class="py-keyword">import</tt> <tt class="py-name">with_statement</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">unittest</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">textwrap</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">os</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">sys</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">gzip</tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt id="link-0" class="py-name" targets="Variable lxml.tests.test_builder.this_dir=lxml.tests.test_builder-module.html#this_dir,Variable lxml.tests.test_classlookup.this_dir=lxml.tests.test_classlookup-module.html#this_dir,Variable lxml.tests.test_dtd.this_dir=lxml.tests.test_dtd-module.html#this_dir,Variable lxml.tests.test_elementtree.this_dir=lxml.tests.test_elementtree-module.html#this_dir,Variable lxml.tests.test_errors.this_dir=lxml.tests.test_errors-module.html#this_dir,Variable lxml.tests.test_etree.this_dir=lxml.tests.test_etree-module.html#this_dir,Variable lxml.tests.test_htmlparser.this_dir=lxml.tests.test_htmlparser-module.html#this_dir,Variable lxml.tests.test_http_io.this_dir=lxml.tests.test_http_io-module.html#this_dir,Variable lxml.tests.test_incremental_xmlfile.this_dir=lxml.tests.test_incremental_xmlfile-module.html#this_dir,Variable lxml.tests.test_io.this_dir=lxml.tests.test_io-module.html#this_dir,Variable lxml.tests.test_isoschematron.this_dir=lxml.tests.test_isoschematron-module.html#this_dir,Variable lxml.tests.test_nsclasses.this_dir=lxml.tests.test_nsclasses-module.html#this_dir,Variable lxml.tests.test_objectify.this_dir=lxml.tests.test_objectify-module.html#this_dir,Variable lxml.tests.test_pyclasslookup.this_dir=lxml.tests.test_pyclasslookup-module.html#this_dir,Variable lxml.tests.test_relaxng.this_dir=lxml.tests.test_relaxng-module.html#this_dir,Variable lxml.tests.test_sax.this_dir=lxml.tests.test_sax-module.html#this_dir,Variable lxml.tests.test_schematron.this_dir=lxml.tests.test_schematron-module.html#this_dir,Variable lxml.tests.test_threading.this_dir=lxml.tests.test_threading-module.html#this_dir,Variable lxml.tests.test_unicode.this_dir=lxml.tests.test_unicode-module.html#this_dir,Variable lxml.tests.test_xmlschema.this_dir=lxml.tests.test_xmlschema-module.html#this_dir,Variable lxml.tests.test_xpathevaluator.this_dir=lxml.tests.test_xpathevaluator-module.html#this_dir,Variable lxml.tests.test_xslt.this_dir=lxml.tests.test_xslt-module.html#this_dir"><a title="lxml.tests.test_builder.this_dir
+lxml.tests.test_classlookup.this_dir
+lxml.tests.test_dtd.this_dir
+lxml.tests.test_elementtree.this_dir
+lxml.tests.test_errors.this_dir
+lxml.tests.test_etree.this_dir
+lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
+lxml.tests.test_incremental_xmlfile.this_dir
+lxml.tests.test_io.this_dir
+lxml.tests.test_isoschematron.this_dir
+lxml.tests.test_nsclasses.this_dir
+lxml.tests.test_objectify.this_dir
+lxml.tests.test_pyclasslookup.this_dir
+lxml.tests.test_relaxng.this_dir
+lxml.tests.test_sax.this_dir
+lxml.tests.test_schematron.this_dir
+lxml.tests.test_threading.this_dir
+lxml.tests.test_unicode.this_dir
+lxml.tests.test_xmlschema.this_dir
+lxml.tests.test_xpathevaluator.this_dir
+lxml.tests.test_xslt.this_dir" class="py-name" href="#" onclick="return doclink('link-0', 'this_dir', 'link-0');">this_dir</a></tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-1" class="py-name" targets="Variable lxml.etree.XPath.path=lxml.etree.XPath-class.html#path"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1', 'path', 'link-1');">path</a></tt><tt class="py-op">.</tt><tt class="py-name">dirname</tt><tt class="py-op">(</tt><tt class="py-name">__file__</tt><tt class="py-op">)</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-keyword">if</tt> <tt id="link-2" class="py-name"><a title="lxml.tests.test_builder.this_dir
+lxml.tests.test_classlookup.this_dir
+lxml.tests.test_dtd.this_dir
+lxml.tests.test_elementtree.this_dir
+lxml.tests.test_errors.this_dir
+lxml.tests.test_etree.this_dir
+lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
+lxml.tests.test_incremental_xmlfile.this_dir
+lxml.tests.test_io.this_dir
+lxml.tests.test_isoschematron.this_dir
+lxml.tests.test_nsclasses.this_dir
+lxml.tests.test_objectify.this_dir
+lxml.tests.test_pyclasslookup.this_dir
+lxml.tests.test_relaxng.this_dir
+lxml.tests.test_sax.this_dir
+lxml.tests.test_schematron.this_dir
+lxml.tests.test_threading.this_dir
+lxml.tests.test_unicode.this_dir
+lxml.tests.test_xmlschema.this_dir
+lxml.tests.test_xpathevaluator.this_dir
+lxml.tests.test_xslt.this_dir" class="py-name" href="#" onclick="return doclink('link-2', 'this_dir', 'link-0');">this_dir</a></tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt id="link-3" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-3', 'path', 'link-1');">path</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt id="link-4" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-4', 'path', 'link-1');">path</a></tt><tt class="py-op">.</tt><tt id="link-5" class="py-name" targets="Method lxml.etree._Element.insert()=lxml.etree._Element-class.html#insert"><a title="lxml.etree._Element.insert" class="py-name" href="#" onclick="return doclink('link-5', 'insert', 'link-5');">insert</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt id="link-6" class="py-name"><a title="lxml.tests.test_builder.this_dir
+lxml.tests.test_classlookup.this_dir
+lxml.tests.test_dtd.this_dir
+lxml.tests.test_elementtree.this_dir
+lxml.tests.test_errors.this_dir
+lxml.tests.test_etree.this_dir
+lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
+lxml.tests.test_incremental_xmlfile.this_dir
+lxml.tests.test_io.this_dir
+lxml.tests.test_isoschematron.this_dir
+lxml.tests.test_nsclasses.this_dir
+lxml.tests.test_objectify.this_dir
+lxml.tests.test_pyclasslookup.this_dir
+lxml.tests.test_relaxng.this_dir
+lxml.tests.test_sax.this_dir
+lxml.tests.test_schematron.this_dir
+lxml.tests.test_threading.this_dir
+lxml.tests.test_unicode.this_dir
+lxml.tests.test_xmlschema.this_dir
+lxml.tests.test_xpathevaluator.this_dir
+lxml.tests.test_xslt.this_dir" class="py-name" href="#" onclick="return doclink('link-6', 'this_dir', 'link-0');">this_dir</a></tt><tt class="py-op">)</tt> <tt class="py-comment"># needed for Py3</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"> </tt>
+<a name="L19"></a><tt class="py-lineno"> 19</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-op">.</tt><tt id="link-7" class="py-name" targets="Module lxml.tests.common_imports=lxml.tests.common_imports-module.html"><a title="lxml.tests.common_imports" class="py-name" href="#" onclick="return doclink('link-7', 'common_imports', 'link-7');">common_imports</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">(</tt> </tt>
+<a name="L20"></a><tt class="py-lineno"> 20</tt> <tt class="py-line"> <tt id="link-8" class="py-name" targets="Module lxml.etree=lxml.etree-module.html,Variable lxml.sax.ElementTreeContentHandler.etree=lxml.sax.ElementTreeContentHandler-class.html#etree,Variable lxml.tests.test_elementtree.CElementTreeTestCase.etree=lxml.tests.test_elementtree.CElementTreeTestCase-class.html#etree,Variable lxml.tests.test_elementtree._ETreeTestCaseBase.etree=lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#etree,Variable lxml.tests.test_io._IOTestCaseBase.etree=lxml.tests.test_io._IOTestCaseBase-class.html#etree"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-8', 'etree', 'link-8');">etree</a></tt><tt class="py-op">,</tt> <tt id="link-9" class="py-name" targets="Class lxml.tests.common_imports.HelperTestCase=lxml.tests.common_imports.HelperTestCase-class.html"><a title="lxml.tests.common_imports.HelperTestCase" class="py-name" href="#" onclick="return doclink('link-9', 'HelperTestCase', 'link-9');">HelperTestCase</a></tt><tt class="py-op">,</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">,</tt> <tt id="link-10" class="py-name" targets="Function lxml.tests.common_imports._bytes()=lxml.tests.common_imports-module.html#_bytes"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-10', '_bytes', 'link-10');">_bytes</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L21"></a><tt class="py-lineno"> 21</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-op">.</tt><tt id="link-11" class="py-name" targets="Module lxml.tests.dummy_http_server=lxml.tests.dummy_http_server-module.html"><a title="lxml.tests.dummy_http_server" class="py-name" href="#" onclick="return doclink('link-11', 'dummy_http_server', 'link-11');">dummy_http_server</a></tt> <tt class="py-keyword">import</tt> <tt id="link-12" class="py-name" targets="Function lxml.tests.dummy_http_server.webserver()=lxml.tests.dummy_http_server-module.html#webserver"><a title="lxml.tests.dummy_http_server.webserver" class="py-name" href="#" onclick="return doclink('link-12', 'webserver', 'link-12');">webserver</a></tt><tt class="py-op">,</tt> <tt id="link-13" class="py-name" targets="Class lxml.tests.dummy_http_server.HTTPRequestCollector=lxml.tests.dummy_http_server.HTTPRequestCollector-class.html"><a title="lxml.tests.dummy_http_server.HTTPRequestCollector" class="py-name" href="#" onclick="return doclink('link-13', 'HTTPRequestCollector', 'link-13');">HTTPRequestCollector</a></tt> </tt>
+<a name="L22"></a><tt class="py-lineno"> 22</tt> <tt class="py-line"> </tt>
+<a name="L23"></a><tt class="py-lineno"> 23</tt> <tt class="py-line"> </tt>
+<a name="HttpIOTestCase"></a><div id="HttpIOTestCase-def"><a name="L24"></a><tt class="py-lineno"> 24</tt> <a class="py-toggle" href="#" id="HttpIOTestCase-toggle" onclick="return toggle('HttpIOTestCase');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_http_io.HttpIOTestCase-class.html">HttpIOTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">HelperTestCase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="HttpIOTestCase-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="HttpIOTestCase-expanded"><a name="L25"></a><tt class="py-lineno"> 25</tt> <tt class="py-line"> <tt id="link-14" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-14', 'etree', 'link-8');">etree</a></tt> <tt class="py-op">=</tt> <tt id="link-15" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-15', 'etree', 'link-8');">etree</a></tt> </tt>
+<a name="L26"></a><tt class="py-lineno"> 26</tt> <tt class="py-line"> </tt>
+<a name="HttpIOTestCase._parse_from_http"></a><div id="HttpIOTestCase._parse_from_http-def"><a name="L27"></a><tt class="py-lineno"> 27</tt> <a class="py-toggle" href="#" id="HttpIOTestCase._parse_from_http-toggle" onclick="return toggle('HttpIOTestCase._parse_from_http');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_http_io.HttpIOTestCase-class.html#_parse_from_http">_parse_from_http</a><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-param">code</tt><tt class="py-op">=</tt><tt class="py-number">200</tt><tt class="py-op">,</tt> <tt class="py-param">headers</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">parser</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="HttpIOTestCase._parse_from_http-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="HttpIOTestCase._parse_from_http-expanded"><a name="L28"></a><tt class="py-lineno"> 28</tt> <tt class="py-line"> <tt class="py-name">handler</tt> <tt class="py-op">=</tt> <tt id="link-16" class="py-name"><a title="lxml.tests.dummy_http_server.HTTPRequestCollector" class="py-name" href="#" onclick="return doclink('link-16', 'HTTPRequestCollector', 'link-13');">HTTPRequestCollector</a></tt><tt class="py-op">(</tt><tt id="link-17" 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-17', 'data', 'link-17');">data</a></tt><tt class="py-op">,</tt> <tt class="py-name">code</tt><tt class="py-op">,</tt> <tt class="py-name">headers</tt><tt class="py-op">)</tt> </tt>
+<a name="L29"></a><tt class="py-lineno"> 29</tt> <tt class="py-line"> <tt class="py-keyword">with</tt> <tt id="link-18" class="py-name"><a title="lxml.tests.dummy_http_server.webserver" class="py-name" href="#" onclick="return doclink('link-18', 'webserver', 'link-12');">webserver</a></tt><tt class="py-op">(</tt><tt class="py-name">handler</tt><tt class="py-op">)</tt> <tt class="py-keyword">as</tt> <tt class="py-name">host_url</tt><tt class="py-op">:</tt> </tt>
+<a name="L30"></a><tt class="py-lineno"> 30</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-19" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-19', 'etree', 'link-8');">etree</a></tt><tt class="py-op">.</tt><tt id="link-20" 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-20', 'parse', 'link-20');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">host_url</tt> <tt class="py-op">+</tt> <tt class="py-string">'TEST'</tt><tt class="py-op">,</tt> <tt id="link-21" 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-21', 'parser', 'link-21');">parser</a></tt><tt class="py-op">=</tt><tt id="link-22" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-22', 'parser', 'link-21');">parser</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L31"></a><tt class="py-lineno"> 31</tt> <tt class="py-line"> <tt 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-string">'/TEST'</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-name">handler</tt><tt class="py-op">.</tt><tt class="py-name">requests</tt><tt class="py-op">)</tt> </tt>
+<a name="L32"></a><tt class="py-lineno"> 32</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">tree</tt> </tt>
+</div><a name="L33"></a><tt class="py-lineno"> 33</tt> <tt class="py-line"> </tt>
+<a name="HttpIOTestCase.test_http_client"></a><div id="HttpIOTestCase.test_http_client-def"><a name="L34"></a><tt class="py-lineno"> 34</tt> <a class="py-toggle" href="#" id="HttpIOTestCase.test_http_client-toggle" onclick="return toggle('HttpIOTestCase.test_http_client');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_http_io.HttpIOTestCase-class.html#test_http_client">test_http_client</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="HttpIOTestCase.test_http_client-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="HttpIOTestCase.test_http_client-expanded"><a name="L35"></a><tt class="py-lineno"> 35</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-23" class="py-name" targets="Method lxml.tests.test_http_io.HttpIOTestCase._parse_from_http()=lxml.tests.test_http_io.HttpIOTestCase-class.html#_parse_from_http"><a title="lxml.tests.test_http_io.HttpIOTestCase._parse_from_http" class="py-name" href="#" onclick="return doclink('link-23', '_parse_from_http', 'link-23');">_parse_from_http</a></tt><tt class="py-op">(</tt><tt id="link-24" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-24', '_bytes', 'link-10');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<root><a/></root>'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L36"></a><tt class="py-lineno"> 36</tt> <tt class="py-line"> <tt 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">tree</tt><tt class="py-op">.</tt><tt id="link-25" class="py-name" targets="Method lxml.etree._ElementTree.getroot()=lxml.etree._ElementTree-class.html#getroot"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-25', 'getroot', 'link-25');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-26" class="py-name" targets="Variable lxml.etree._Comment.tag=lxml.etree._Comment-class.html#tag,Variable lxml.etree._Element.tag=lxml.etree._Element-class.html#tag,Variable lxml.etree._Entity.tag=lxml.etree._Entity-class.html#tag,Variable lxml.etree._ProcessingInstruction.tag=lxml.etree._ProcessingInstruction-class.html#tag,Function lxml.tests.test_xpathevaluator.tag()=lxml.tests.test_xpathevaluator-module.html#tag,Variable xml.etree.ElementTree.Element.tag=xml.etree.ElementTree.Element-class.html#tag"><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-26', 'tag', 'link-26');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L37"></a><tt class="py-lineno"> 37</tt> <tt class="py-line"> <tt 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">tree</tt><tt class="py-op">.</tt><tt id="link-27" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-27', 'getroot', 'link-25');">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 id="link-28" 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-28', 'tag', 'link-26');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L38"></a><tt class="py-lineno"> 38</tt> <tt class="py-line"> </tt>
+<a name="HttpIOTestCase.test_http_client_404"></a><div id="HttpIOTestCase.test_http_client_404-def"><a name="L39"></a><tt class="py-lineno"> 39</tt> <a class="py-toggle" href="#" id="HttpIOTestCase.test_http_client_404-toggle" onclick="return toggle('HttpIOTestCase.test_http_client_404');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_http_io.HttpIOTestCase-class.html#test_http_client_404">test_http_client_404</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="HttpIOTestCase.test_http_client_404-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="HttpIOTestCase.test_http_client_404-expanded"><a name="L40"></a><tt class="py-lineno"> 40</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L41"></a><tt class="py-lineno"> 41</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-29" class="py-name"><a title="lxml.tests.test_http_io.HttpIOTestCase._parse_from_http" class="py-name" href="#" onclick="return doclink('link-29', '_parse_from_http', 'link-23');">_parse_from_http</a></tt><tt class="py-op">(</tt><tt id="link-30" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-30', '_bytes', 'link-10');">_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 class="py-name">code</tt><tt class="py-op">=</tt><tt class="py-number">404</tt><tt class="py-op">)</tt> </tt>
+<a name="L42"></a><tt class="py-lineno"> 42</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">IOError</tt><tt class="py-op">:</tt> </tt>
+<a name="L43"></a><tt class="py-lineno"> 43</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="L44"></a><tt class="py-lineno"> 44</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L45"></a><tt class="py-lineno"> 45</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 class="py-string">"expected IOError"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L46"></a><tt class="py-lineno"> 46</tt> <tt class="py-line"> </tt>
+<a name="HttpIOTestCase.test_http_client_gzip"></a><div id="HttpIOTestCase.test_http_client_gzip-def"><a name="L47"></a><tt class="py-lineno"> 47</tt> <a class="py-toggle" href="#" id="HttpIOTestCase.test_http_client_gzip-toggle" onclick="return toggle('HttpIOTestCase.test_http_client_gzip');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_http_io.HttpIOTestCase-class.html#test_http_client_gzip">test_http_client_gzip</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="HttpIOTestCase.test_http_client_gzip-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="HttpIOTestCase.test_http_client_gzip-expanded"><a name="L48"></a><tt class="py-lineno"> 48</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="L49"></a><tt class="py-lineno"> 49</tt> <tt class="py-line"> <tt class="py-name">gz</tt> <tt class="py-op">=</tt> <tt class="py-name">gzip</tt><tt class="py-op">.</tt><tt class="py-name">GzipFile</tt><tt class="py-op">(</tt><tt class="py-name">fileobj</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">mode</tt><tt class="py-op">=</tt><tt class="py-string">'w'</tt><tt class="py-op">,</tt> <tt id="link-31" 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-31', 'filename', 'link-31');">filename</a></tt><tt class="py-op">=</tt><tt class="py-string">'test.xml'</tt><tt class="py-op">)</tt> </tt>
+<a name="L50"></a><tt class="py-lineno"> 50</tt> <tt class="py-line"> <tt class="py-name">gz</tt><tt class="py-op">.</tt><tt id="link-32" 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-32', 'write', 'link-32');">write</a></tt><tt class="py-op">(</tt><tt id="link-33" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-33', '_bytes', 'link-10');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<root><a/></root>'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L51"></a><tt class="py-lineno"> 51</tt> <tt class="py-line"> <tt class="py-name">gz</tt><tt class="py-op">.</tt><tt id="link-34" 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"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-34', 'close', 'link-34');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L52"></a><tt class="py-lineno"> 52</tt> <tt class="py-line"> <tt id="link-35" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-35', 'data', 'link-17');">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="L53"></a><tt class="py-lineno"> 53</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">gz</tt> </tt>
+<a name="L54"></a><tt class="py-lineno"> 54</tt> <tt class="py-line"> </tt>
+<a name="L55"></a><tt class="py-lineno"> 55</tt> <tt class="py-line"> <tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'Content-Encoding'</tt><tt class="py-op">,</tt> <tt class="py-string">'gzip'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> </tt>
+<a name="L56"></a><tt class="py-lineno"> 56</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-36" class="py-name"><a title="lxml.tests.test_http_io.HttpIOTestCase._parse_from_http" class="py-name" href="#" onclick="return doclink('link-36', '_parse_from_http', 'link-23');">_parse_from_http</a></tt><tt class="py-op">(</tt><tt id="link-37" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-37', 'data', 'link-17');">data</a></tt><tt class="py-op">,</tt> <tt class="py-name">headers</tt><tt class="py-op">=</tt><tt class="py-name">headers</tt><tt class="py-op">)</tt> </tt>
+<a name="L57"></a><tt class="py-lineno"> 57</tt> <tt class="py-line"> <tt 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">tree</tt><tt class="py-op">.</tt><tt id="link-38" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-38', 'getroot', 'link-25');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-39" 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-39', 'tag', 'link-26');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L58"></a><tt class="py-lineno"> 58</tt> <tt class="py-line"> <tt 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">tree</tt><tt class="py-op">.</tt><tt id="link-40" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-40', 'getroot', 'link-25');">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 id="link-41" 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-41', 'tag', 'link-26');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L59"></a><tt class="py-lineno"> 59</tt> <tt class="py-line"> </tt>
+<a name="HttpIOTestCase.test_parser_input_mix"></a><div id="HttpIOTestCase.test_parser_input_mix-def"><a name="L60"></a><tt class="py-lineno"> 60</tt> <a class="py-toggle" href="#" id="HttpIOTestCase.test_parser_input_mix-toggle" onclick="return toggle('HttpIOTestCase.test_parser_input_mix');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_http_io.HttpIOTestCase-class.html#test_parser_input_mix">test_parser_input_mix</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="HttpIOTestCase.test_parser_input_mix-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="HttpIOTestCase.test_parser_input_mix-expanded"><a name="L61"></a><tt class="py-lineno"> 61</tt> <tt class="py-line"> <tt id="link-42" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-42', 'data', 'link-17');">data</a></tt> <tt class="py-op">=</tt> <tt id="link-43" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-43', '_bytes', 'link-10');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<root><a/></root>'</tt><tt class="py-op">)</tt> </tt>
+<a name="L62"></a><tt class="py-lineno"> 62</tt> <tt class="py-line"> <tt class="py-name">handler</tt> <tt class="py-op">=</tt> <tt id="link-44" class="py-name"><a title="lxml.tests.dummy_http_server.HTTPRequestCollector" class="py-name" href="#" onclick="return doclink('link-44', 'HTTPRequestCollector', 'link-13');">HTTPRequestCollector</a></tt><tt class="py-op">(</tt><tt id="link-45" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-45', 'data', 'link-17');">data</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L63"></a><tt class="py-lineno"> 63</tt> <tt class="py-line"> </tt>
+<a name="L64"></a><tt class="py-lineno"> 64</tt> <tt class="py-line"> <tt class="py-keyword">with</tt> <tt id="link-46" class="py-name"><a title="lxml.tests.dummy_http_server.webserver" class="py-name" href="#" onclick="return doclink('link-46', 'webserver', 'link-12');">webserver</a></tt><tt class="py-op">(</tt><tt class="py-name">handler</tt><tt class="py-op">)</tt> <tt class="py-keyword">as</tt> <tt class="py-name">host_url</tt><tt class="py-op">:</tt> </tt>
+<a name="L65"></a><tt class="py-lineno"> 65</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-47" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-47', 'etree', 'link-8');">etree</a></tt><tt class="py-op">.</tt><tt id="link-48" 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-48', 'parse', 'link-20');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">host_url</tt><tt class="py-op">)</tt> </tt>
+<a name="L66"></a><tt class="py-lineno"> 66</tt> <tt class="py-line"> <tt id="link-49" class="py-name" targets="Variable lxml.etree.iterparse.root=lxml.etree.iterparse-class.html#root"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-49', 'root', 'link-49');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-50" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-50', 'getroot', 'link-25');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L67"></a><tt class="py-lineno"> 67</tt> <tt class="py-line"> <tt 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 id="link-51" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-51', 'root', 'link-49');">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-52" 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-52', 'tag', 'link-26');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L68"></a><tt class="py-lineno"> 68</tt> <tt class="py-line"> </tt>
+<a name="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line"> <tt id="link-53" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-53', 'root', 'link-49');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-54" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-54', 'etree', 'link-8');">etree</a></tt><tt class="py-op">.</tt><tt id="link-55" class="py-name" targets="Function lxml.etree.fromstring()=lxml.etree-module.html#fromstring,Function lxml.html.html5parser.fromstring()=lxml.html.html5parser-module.html#fromstring,Function lxml.html.soupparser.fromstring()=lxml.html.soupparser-module.html#fromstring,Function lxml.objectify.fromstring()=lxml.objectify-module.html#fromstring"><a title="lxml.etree.fromstring
+lxml.html.html5parser.fromstring
+lxml.html.soupparser.fromstring
+lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-55', 'fromstring', 'link-55');">fromstring</a></tt><tt class="py-op">(</tt><tt id="link-56" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-56', 'data', 'link-17');">data</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L70"></a><tt class="py-lineno"> 70</tt> <tt class="py-line"> <tt 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 id="link-57" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-57', 'root', 'link-49');">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-58" 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-58', 'tag', 'link-26');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L71"></a><tt class="py-lineno"> 71</tt> <tt class="py-line"> </tt>
+<a name="L72"></a><tt class="py-lineno"> 72</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-59" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-59', 'etree', 'link-8');">etree</a></tt><tt class="py-op">.</tt><tt id="link-60" 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-60', 'parse', 'link-20');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">host_url</tt><tt class="py-op">)</tt> </tt>
+<a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line"> <tt id="link-61" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-61', 'root', 'link-49');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-62" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-62', 'getroot', 'link-25');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L74"></a><tt class="py-lineno"> 74</tt> <tt class="py-line"> <tt 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 id="link-63" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-63', 'root', 'link-49');">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-64" 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-64', 'tag', 'link-26');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L75"></a><tt class="py-lineno"> 75</tt> <tt class="py-line"> </tt>
+<a name="L76"></a><tt class="py-lineno"> 76</tt> <tt class="py-line"> <tt id="link-65" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-65', 'root', 'link-49');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-66" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-66', 'etree', 'link-8');">etree</a></tt><tt class="py-op">.</tt><tt id="link-67" 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-67', 'fromstring', 'link-55');">fromstring</a></tt><tt class="py-op">(</tt><tt id="link-68" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-68', 'data', 'link-17');">data</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L77"></a><tt class="py-lineno"> 77</tt> <tt class="py-line"> <tt 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 id="link-69" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-69', 'root', 'link-49');">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-70" 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-70', 'tag', 'link-26');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L78"></a><tt class="py-lineno"> 78</tt> <tt class="py-line"> </tt>
+<a name="L79"></a><tt class="py-lineno"> 79</tt> <tt class="py-line"> <tt id="link-71" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-71', 'root', 'link-49');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-72" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-72', 'etree', 'link-8');">etree</a></tt><tt class="py-op">.</tt><tt id="link-73" 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-73', 'fromstring', 'link-55');">fromstring</a></tt><tt class="py-op">(</tt><tt id="link-74" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-74', 'data', 'link-17');">data</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line"> <tt 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 id="link-75" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-75', 'root', 'link-49');">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-76" 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-76', 'tag', 'link-26');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L81"></a><tt class="py-lineno"> 81</tt> <tt class="py-line"> </tt>
+<a name="HttpIOTestCase.test_network_dtd"></a><div id="HttpIOTestCase.test_network_dtd-def"><a name="L82"></a><tt class="py-lineno"> 82</tt> <a class="py-toggle" href="#" id="HttpIOTestCase.test_network_dtd-toggle" onclick="return toggle('HttpIOTestCase.test_network_dtd');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_http_io.HttpIOTestCase-class.html#test_network_dtd">test_network_dtd</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="HttpIOTestCase.test_network_dtd-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="HttpIOTestCase.test_network_dtd-expanded"><a name="L83"></a><tt class="py-lineno"> 83</tt> <tt class="py-line"> <tt id="link-77" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-77', 'data', 'link-17');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt id="link-78" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-78', '_bytes', 'link-10');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-name">textwrap</tt><tt class="py-op">.</tt><tt class="py-name">dedent</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">s</tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt> </tt>
+<a name="L84"></a><tt class="py-lineno"> 84</tt> <tt class="py-line"> <tt class="py-comment"># XML file</tt> </tt>
+<a name="L85"></a><tt class="py-lineno"> 85</tt> <tt class="py-line"> <tt class="py-string">'''\</tt> </tt>
+<a name="L86"></a><tt class="py-lineno"> 86</tt> <tt class="py-line"><tt class="py-string"> <?xml version="1.0"?></tt> </tt>
+<a name="L87"></a><tt class="py-lineno"> 87</tt> <tt class="py-line"><tt class="py-string"> <!DOCTYPE root SYSTEM "./file.dtd"></tt> </tt>
+<a name="L88"></a><tt class="py-lineno"> 88</tt> <tt class="py-line"><tt class="py-string"> <root>&myentity;</root></tt> </tt>
+<a name="L89"></a><tt class="py-lineno"> 89</tt> <tt class="py-line"><tt class="py-string"> '''</tt><tt class="py-op">,</tt> </tt>
+<a name="L90"></a><tt class="py-lineno"> 90</tt> <tt class="py-line"> <tt class="py-comment"># DTD</tt> </tt>
+<a name="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"> <tt class="py-string">'<!ENTITY myentity "DEFINED">'</tt><tt class="py-op">,</tt> </tt>
+<a name="L92"></a><tt class="py-lineno"> 92</tt> <tt class="py-line"> <tt class="py-op">]</tt><tt class="py-op">]</tt> </tt>
+<a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line"> </tt>
+<a name="L94"></a><tt class="py-lineno"> 94</tt> <tt class="py-line"> <tt class="py-name">responses</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">handler</tt><tt class="py-op">(</tt><tt class="py-param">environ</tt><tt class="py-op">,</tt> <tt class="py-param">start_response</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"> <tt class="py-name">start_response</tt><tt class="py-op">(</tt><tt class="py-string">'200 OK'</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-op">[</tt><tt class="py-name">responses</tt><tt class="py-op">.</tt><tt id="link-79" class="py-name" targets="Method lxml.etree._Attrib.pop()=lxml.etree._Attrib-class.html#pop"><a title="lxml.etree._Attrib.pop" class="py-name" href="#" onclick="return doclink('link-79', 'pop', 'link-79');">pop</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> </tt>
+</div><a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"> </tt>
+<a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"> <tt class="py-keyword">with</tt> <tt id="link-80" class="py-name"><a title="lxml.tests.dummy_http_server.webserver" class="py-name" href="#" onclick="return doclink('link-80', 'webserver', 'link-12');">webserver</a></tt><tt class="py-op">(</tt><tt class="py-name">handler</tt><tt class="py-op">)</tt> <tt class="py-keyword">as</tt> <tt class="py-name">host_url</tt><tt class="py-op">:</tt> </tt>
+<a name="L100"></a><tt class="py-lineno">100</tt> <tt class="py-line"> <tt class="py-comment"># DTD network loading enabled</tt> </tt>
+<a name="L101"></a><tt class="py-lineno">101</tt> <tt class="py-line"> <tt class="py-name">responses</tt> <tt class="py-op">=</tt> <tt id="link-81" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-81', 'data', 'link-17');">data</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="L102"></a><tt class="py-lineno">102</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-82" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-82', 'etree', 'link-8');">etree</a></tt><tt class="py-op">.</tt><tt id="link-83" 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-83', 'parse', 'link-20');">parse</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L103"></a><tt class="py-lineno">103</tt> <tt class="py-line"> <tt class="py-name">host_url</tt> <tt class="py-op">+</tt> <tt class="py-string">'dir/test.xml'</tt><tt class="py-op">,</tt> </tt>
+<a name="L104"></a><tt class="py-lineno">104</tt> <tt class="py-line"> <tt id="link-84" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-84', 'parser', 'link-21');">parser</a></tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-85" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-85', 'etree', 'link-8');">etree</a></tt><tt class="py-op">.</tt><tt id="link-86" class="py-name" targets="Class lxml.etree.XMLParser=lxml.etree.XMLParser-class.html,Class xml.etree.ElementTree.XMLParser=xml.etree.ElementTree.XMLParser-class.html"><a title="lxml.etree.XMLParser
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-86', 'XMLParser', 'link-86');">XMLParser</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L105"></a><tt class="py-lineno">105</tt> <tt class="py-line"> <tt class="py-name">load_dtd</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-name">no_network</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L106"></a><tt class="py-lineno">106</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-87" class="py-name" targets="Variable lxml.tests.common_imports.HelperTestCase.assertFalse=lxml.tests.common_imports.HelperTestCase-class.html#assertFalse"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-87', 'assertFalse', 'link-87');">assertFalse</a></tt><tt class="py-op">(</tt><tt class="py-name">responses</tt><tt class="py-op">)</tt> <tt class="py-comment"># all read</tt> </tt>
+<a name="L107"></a><tt class="py-lineno">107</tt> <tt class="py-line"> <tt id="link-88" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-88', 'root', 'link-49');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-89" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-89', 'getroot', 'link-25');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L108"></a><tt class="py-lineno">108</tt> <tt class="py-line"> <tt 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">'DEFINED'</tt><tt class="py-op">,</tt> <tt id="link-90" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-90', 'root', 'link-49');">root</a></tt><tt class="py-op">.</tt><tt id="link-91" class="py-name" targets="Variable lxml.etree.QName.text=lxml.etree.QName-class.html#text,Variable lxml.etree._Element.text=lxml.etree._Element-class.html#text,Variable lxml.etree._Entity.text=lxml.etree._Entity-class.html#text,Variable lxml.objectify.ObjectifiedElement.text=lxml.objectify.ObjectifiedElement-class.html#text,Variable xml.etree.ElementTree.Element.text=xml.etree.ElementTree.Element-class.html#text"><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-91', 'text', 'link-91');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L109"></a><tt class="py-lineno">109</tt> <tt class="py-line"> </tt>
+<a name="L110"></a><tt class="py-lineno">110</tt> <tt class="py-line"> <tt class="py-comment"># DTD network loading disabled</tt> </tt>
+<a name="L111"></a><tt class="py-lineno">111</tt> <tt class="py-line"> <tt class="py-name">responses</tt> <tt class="py-op">=</tt> <tt id="link-92" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-92', 'data', 'link-17');">data</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="L112"></a><tt class="py-lineno">112</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L113"></a><tt class="py-lineno">113</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-93" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-93', 'etree', 'link-8');">etree</a></tt><tt class="py-op">.</tt><tt id="link-94" 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-94', 'parse', 'link-20');">parse</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L114"></a><tt class="py-lineno">114</tt> <tt class="py-line"> <tt class="py-name">host_url</tt> <tt class="py-op">+</tt> <tt class="py-string">'dir/test.xml'</tt><tt class="py-op">,</tt> </tt>
+<a name="L115"></a><tt class="py-lineno">115</tt> <tt class="py-line"> <tt id="link-95" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-95', 'parser', 'link-21');">parser</a></tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-96" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-96', 'etree', 'link-8');">etree</a></tt><tt class="py-op">.</tt><tt id="link-97" class="py-name"><a title="lxml.etree.XMLParser
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-97', 'XMLParser', 'link-86');">XMLParser</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L116"></a><tt class="py-lineno">116</tt> <tt class="py-line"> <tt class="py-name">load_dtd</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-name">no_network</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L117"></a><tt class="py-lineno">117</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-98" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-98', 'etree', 'link-8');">etree</a></tt><tt class="py-op">.</tt><tt id="link-99" class="py-name" targets="Class lxml.etree.XMLSyntaxError=lxml.etree.XMLSyntaxError-class.html"><a title="lxml.etree.XMLSyntaxError" class="py-name" href="#" onclick="return doclink('link-99', 'XMLSyntaxError', 'link-99');">XMLSyntaxError</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L118"></a><tt class="py-lineno">118</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">"myentity"</tt> <tt class="py-keyword">in</tt> <tt id="link-100" class="py-name" targets="Class str=str-class.html"><a title="str" class="py-name" href="#" onclick="return doclink('link-100', 'str', 'link-100');">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="L119"></a><tt class="py-lineno">119</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L120"></a><tt class="py-lineno">120</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="L121"></a><tt class="py-lineno">121</tt> <tt class="py-line"> <tt 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">responses</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-comment"># DTD not read</tt> </tt>
+</div></div><a name="L122"></a><tt class="py-lineno">122</tt> <tt class="py-line"> </tt>
+<a name="L123"></a><tt class="py-lineno">123</tt> <tt class="py-line"> </tt>
+<a name="test_suite"></a><div id="test_suite-def"><a name="L124"></a><tt class="py-lineno">124</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_http_io-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="L125"></a><tt class="py-lineno">125</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="L126"></a><tt class="py-lineno">126</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-101" class="py-name" targets="Class lxml.tests.test_http_io.HttpIOTestCase=lxml.tests.test_http_io.HttpIOTestCase-class.html"><a title="lxml.tests.test_http_io.HttpIOTestCase" class="py-name" href="#" onclick="return doclink('link-101', 'HttpIOTestCase', 'link-101');">HttpIOTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L127"></a><tt class="py-lineno">127</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">suite</tt> </tt>
+</div><a name="L128"></a><tt class="py-lineno">128</tt> <tt class="py-line"> </tt>
+<a name="L129"></a><tt class="py-lineno">129</tt> <tt class="py-line"> </tt>
+<a name="L130"></a><tt class="py-lineno">130</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="L131"></a><tt class="py-lineno">131</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="L132"></a><tt class="py-lineno">132</tt> <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+ <!-- Home link -->
+ <th> <a
+ href="lxml-module.html">Home</a> </th>
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ ><a class="navbar" target="_top" href="/">lxml API</a></th>
+ </tr></table></th>
+ </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+ <tr>
+ <td align="left" class="footer">
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:13 2013
+ </td>
+ <td align="right" class="footer">
+ <a target="mainFrame" href="http://epydoc.sourceforge.net"
+ >http://epydoc.sourceforge.net</a>
+ </td>
+ </tr>
+</table>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>
--- /dev/null
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>lxml.tests.test_http_io.HttpIOTestCase</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+ <!-- Home link -->
+ <th> <a
+ href="lxml-module.html">Home</a> </th>
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ ><a class="navbar" target="_top" href="/">lxml API</a></th>
+ </tr></table></th>
+ </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+ <tr valign="top">
+ <td width="100%">
+ <span class="breadcrumbs">
+ <a href="lxml-module.html">Package lxml</a> ::
+ <a href="lxml.tests-module.html">Package tests</a> ::
+ <a href="lxml.tests.test_http_io-module.html">Module test_http_io</a> ::
+ Class HttpIOTestCase
+ </span>
+ </td>
+ <td>
+ <table cellpadding="0" cellspacing="0">
+ <!-- hide/show private -->
+ <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+ onclick="toggle_private();">hide private</a>]</span></td></tr>
+ <tr><td align="right"><span class="options"
+ >[<a href="frames.html" target="_top">frames</a
+ >] | <a href="lxml.tests.test_http_io.HttpIOTestCase-class.html"
+ target="_top">no frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class HttpIOTestCase</h1><p class="nomargin-top"><span class="codelink"><a href="lxml.tests.test_http_io-pysrc.html#HttpIOTestCase">source code</a></span></p>
+<pre class="base-tree">
+ object --+
+ |
+ unittest.case.TestCase --+
+ |
+<a href="lxml.tests.common_imports.HelperTestCase-class.html">common_imports.HelperTestCase</a> --+
+ |
+ <strong class="uidshort">HttpIOTestCase</strong>
+</pre>
+
+<hr />
+<!-- ==================== NESTED CLASSES ==================== -->
+<a name="section-NestedClasses"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Nested Classes</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-NestedClasses"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+ <tr>
+ <td colspan="2" class="summary">
+ <p class="indent-wrapped-lines"><b>Inherited from <code>unittest.case.TestCase</code></b>:
+ <code><a href="exceptions.AssertionError-class.html">failureException</a></code>
+ </p>
+ </td>
+ </tr>
+</table>
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Instance Methods</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-InstanceMethods"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+<tr class="private">
+ <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="_parse_from_http"></a><span class="summary-sig-name">_parse_from_http</span>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">data</span>,
+ <span class="summary-sig-arg">code</span>=<span class="summary-sig-default">200</span>,
+ <span class="summary-sig-arg">headers</span>=<span class="summary-sig-default">None</span>,
+ <span class="summary-sig-arg">parser</span>=<span class="summary-sig-default">None</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="lxml.tests.test_http_io-pysrc.html#HttpIOTestCase._parse_from_http">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_http_client"></a><span class="summary-sig-name">test_http_client</span>(<span class="summary-sig-arg">self</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="lxml.tests.test_http_io-pysrc.html#HttpIOTestCase.test_http_client">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_http_client_404"></a><span class="summary-sig-name">test_http_client_404</span>(<span class="summary-sig-arg">self</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="lxml.tests.test_http_io-pysrc.html#HttpIOTestCase.test_http_client_404">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_http_client_gzip"></a><span class="summary-sig-name">test_http_client_gzip</span>(<span class="summary-sig-arg">self</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="lxml.tests.test_http_io-pysrc.html#HttpIOTestCase.test_http_client_gzip">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_parser_input_mix"></a><span class="summary-sig-name">test_parser_input_mix</span>(<span class="summary-sig-arg">self</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="lxml.tests.test_http_io-pysrc.html#HttpIOTestCase.test_parser_input_mix">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_network_dtd"></a><span class="summary-sig-name">test_network_dtd</span>(<span class="summary-sig-arg">self</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="lxml.tests.test_http_io-pysrc.html#HttpIOTestCase.test_network_dtd">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2" class="summary">
+ <p class="indent-wrapped-lines"><b>Inherited from <code><a href="lxml.tests.common_imports.HelperTestCase-class.html">common_imports.HelperTestCase</a></code></b>:
+ <code><a href="lxml.tests.common_imports.HelperTestCase-class.html#parse">parse</a></code>,
+ <code><a href="lxml.tests.common_imports.HelperTestCase-class.html#tearDown">tearDown</a></code>
+ </p>
+ <div class="private"> <p class="indent-wrapped-lines"><b>Inherited from <code><a href="lxml.tests.common_imports.HelperTestCase-class.html">common_imports.HelperTestCase</a></code></b> (private):
+ <code><a href="lxml.tests.common_imports.HelperTestCase-class.html#_rootstring" onclick="show_private();">_rootstring</a></code>
+ </p></div>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>unittest.case.TestCase</code></b>:
+ <code>__call__</code>,
+ <code>__eq__</code>,
+ <code>__hash__</code>,
+ <code>__init__</code>,
+ <code>__ne__</code>,
+ <code>__repr__</code>,
+ <code>__str__</code>,
+ <code>addCleanup</code>,
+ <code>addTypeEqualityFunc</code>,
+ <code>assertAlmostEqual</code>,
+ <code>assertAlmostEquals</code>,
+ <code>assertDictContainsSubset</code>,
+ <code>assertDictEqual</code>,
+ <code>assertEqual</code>,
+ <code>assertEquals</code>,
+ <code>assertGreater</code>,
+ <code>assertGreaterEqual</code>,
+ <code>assertIn</code>,
+ <code>assertIs</code>,
+ <code>assertIsInstance</code>,
+ <code>assertIsNone</code>,
+ <code>assertIsNot</code>,
+ <code>assertIsNotNone</code>,
+ <code>assertItemsEqual</code>,
+ <code>assertLess</code>,
+ <code>assertLessEqual</code>,
+ <code>assertListEqual</code>,
+ <code>assertMultiLineEqual</code>,
+ <code>assertNotAlmostEqual</code>,
+ <code>assertNotAlmostEquals</code>,
+ <code>assertNotEqual</code>,
+ <code>assertNotEquals</code>,
+ <code>assertNotIn</code>,
+ <code>assertNotIsInstance</code>,
+ <code>assertNotRegexpMatches</code>,
+ <code>assertRaises</code>,
+ <code>assertRaisesRegexp</code>,
+ <code>assertRegexpMatches</code>,
+ <code>assertSequenceEqual</code>,
+ <code>assertSetEqual</code>,
+ <code>assertTrue</code>,
+ <code>assertTupleEqual</code>,
+ <code>assert_</code>,
+ <code>countTestCases</code>,
+ <code>debug</code>,
+ <code>defaultTestResult</code>,
+ <code>doCleanups</code>,
+ <code>fail</code>,
+ <code>failIf</code>,
+ <code>failIfAlmostEqual</code>,
+ <code>failIfEqual</code>,
+ <code>failUnless</code>,
+ <code>failUnlessAlmostEqual</code>,
+ <code>failUnlessEqual</code>,
+ <code>failUnlessRaises</code>,
+ <code>id</code>,
+ <code>run</code>,
+ <code>setUp</code>,
+ <code>shortDescription</code>,
+ <code>skipTest</code>
+ </p>
+ <div class="private"> <p class="indent-wrapped-lines"><b>Inherited from <code>unittest.case.TestCase</code></b> (private):
+ <code>_addSkip</code>,
+ <code>_baseAssertEqual</code>,
+ <code>_deprecate</code>,
+ <code>_formatMessage</code>,
+ <code>_getAssertEqualityFunc</code>,
+ <code>_truncateMessage</code>
+ </p></div>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__delattr__</code>,
+ <code>__format__</code>,
+ <code>__getattribute__</code>,
+ <code>__new__</code>,
+ <code>__reduce__</code>,
+ <code>__reduce_ex__</code>,
+ <code>__setattr__</code>,
+ <code>__sizeof__</code>,
+ <code>__subclasshook__</code>
+ </p>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS METHODS ==================== -->
+<a name="section-ClassMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Class Methods</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-ClassMethods"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+ <tr>
+ <td colspan="2" class="summary">
+ <p class="indent-wrapped-lines"><b>Inherited from <code>unittest.case.TestCase</code></b>:
+ <code>setUpClass</code>,
+ <code>tearDownClass</code>
+ </p>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS VARIABLES ==================== -->
+<a name="section-ClassVariables"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Class Variables</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-ClassVariables"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</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">
+ <a href="lxml.etree-module.html" class="summary-name">etree</a><br />
+ The <tt class="rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-docutils literal rst-rst-rst-docutils literal rst-rst-docutils literal rst-docutils literal">lxml.etree</tt> module implements the extended ElementTree API
+for XML.
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2" class="summary">
+ <p class="indent-wrapped-lines"><b>Inherited from <code><a href="lxml.tests.common_imports.HelperTestCase-class.html">common_imports.HelperTestCase</a></code></b>:
+ <code><a href="lxml.tests.common_imports.HelperTestCase-class.html#assertFalse">assertFalse</a></code>
+ </p>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>unittest.case.TestCase</code></b>:
+ <code>longMessage</code>,
+ <code>maxDiff</code>
+ </p>
+ <div class="private"> <p class="indent-wrapped-lines"><b>Inherited from <code>unittest.case.TestCase</code></b> (private):
+ <code>_classSetupFailed</code>,
+ <code>_diffThreshold</code>
+ </p></div>
+ </td>
+ </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Properties</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-Properties"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+ <tr>
+ <td colspan="2" class="summary">
+ <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__class__</code>
+ </p>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS VARIABLE DETAILS ==================== -->
+<a name="section-ClassVariableDetails"></a>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Class Variable Details</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-ClassVariableDetails"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+</table>
+<a name="etree"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">etree</h3>
+ The <tt class="rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-docutils literal rst-rst-rst-docutils literal rst-rst-docutils literal rst-docutils literal">lxml.etree</tt> module implements the extended ElementTree API
+for XML.
+ <dl class="fields">
+ </dl>
+ <dl class="fields">
+ <dt>Value:</dt>
+ <dd><a href="lxml.etree-module.html">lxml.etree</a></dd>
+ </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+ <!-- Home link -->
+ <th> <a
+ href="lxml-module.html">Home</a> </th>
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ ><a class="navbar" target="_top" href="/">lxml API</a></th>
+ </tr></table></th>
+ </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+ <tr>
+ <td align="left" class="footer">
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
+ </td>
+ <td align="right" class="footer">
+ <a target="mainFrame" href="http://epydoc.sourceforge.net"
+ >http://epydoc.sourceforge.net</a>
+ </td>
+ </tr>
+</table>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">unittest</tt> </tt>
<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">tempfile</tt><tt class="py-op">,</tt> <tt class="py-name">os</tt><tt class="py-op">,</tt> <tt class="py-name">sys</tt> </tt>
<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"> </tt>
-<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt id="link-0" class="py-name" targets="Variable lxml.tests.test_builder.this_dir=lxml.tests.test_builder-module.html#this_dir,Variable lxml.tests.test_classlookup.this_dir=lxml.tests.test_classlookup-module.html#this_dir,Variable lxml.tests.test_dtd.this_dir=lxml.tests.test_dtd-module.html#this_dir,Variable lxml.tests.test_elementtree.this_dir=lxml.tests.test_elementtree-module.html#this_dir,Variable lxml.tests.test_errors.this_dir=lxml.tests.test_errors-module.html#this_dir,Variable lxml.tests.test_etree.this_dir=lxml.tests.test_etree-module.html#this_dir,Variable lxml.tests.test_htmlparser.this_dir=lxml.tests.test_htmlparser-module.html#this_dir,Variable lxml.tests.test_incremental_xmlfile.this_dir=lxml.tests.test_incremental_xmlfile-module.html#this_dir,Variable lxml.tests.test_io.this_dir=lxml.tests.test_io-module.html#this_dir,Variable lxml.tests.test_isoschematron.this_dir=lxml.tests.test_isoschematron-module.html#this_dir,Variable lxml.tests.test_nsclasses.this_dir=lxml.tests.test_nsclasses-module.html#this_dir,Variable lxml.tests.test_objectify.this_dir=lxml.tests.test_objectify-module.html#this_dir,Variable lxml.tests.test_pyclasslookup.this_dir=lxml.tests.test_pyclasslookup-module.html#this_dir,Variable lxml.tests.test_relaxng.this_dir=lxml.tests.test_relaxng-module.html#this_dir,Variable lxml.tests.test_sax.this_dir=lxml.tests.test_sax-module.html#this_dir,Variable lxml.tests.test_schematron.this_dir=lxml.tests.test_schematron-module.html#this_dir,Variable lxml.tests.test_threading.this_dir=lxml.tests.test_threading-module.html#this_dir,Variable lxml.tests.test_unicode.this_dir=lxml.tests.test_unicode-module.html#this_dir,Variable lxml.tests.test_xmlschema.this_dir=lxml.tests.test_xmlschema-module.html#this_dir,Variable lxml.tests.test_xpathevaluator.this_dir=lxml.tests.test_xpathevaluator-module.html#this_dir,Variable lxml.tests.test_xslt.this_dir=lxml.tests.test_xslt-module.html#this_dir"><a title="lxml.tests.test_builder.this_dir
+<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt id="link-0" class="py-name" targets="Variable lxml.tests.test_builder.this_dir=lxml.tests.test_builder-module.html#this_dir,Variable lxml.tests.test_classlookup.this_dir=lxml.tests.test_classlookup-module.html#this_dir,Variable lxml.tests.test_dtd.this_dir=lxml.tests.test_dtd-module.html#this_dir,Variable lxml.tests.test_elementtree.this_dir=lxml.tests.test_elementtree-module.html#this_dir,Variable lxml.tests.test_errors.this_dir=lxml.tests.test_errors-module.html#this_dir,Variable lxml.tests.test_etree.this_dir=lxml.tests.test_etree-module.html#this_dir,Variable lxml.tests.test_htmlparser.this_dir=lxml.tests.test_htmlparser-module.html#this_dir,Variable lxml.tests.test_http_io.this_dir=lxml.tests.test_http_io-module.html#this_dir,Variable lxml.tests.test_incremental_xmlfile.this_dir=lxml.tests.test_incremental_xmlfile-module.html#this_dir,Variable lxml.tests.test_io.this_dir=lxml.tests.test_io-module.html#this_dir,Variable lxml.tests.test_isoschematron.this_dir=lxml.tests.test_isoschematron-module.html#this_dir,Variable lxml.tests.test_nsclasses.this_dir=lxml.tests.test_nsclasses-module.html#this_dir,Variable lxml.tests.test_objectify.this_dir=lxml.tests.test_objectify-module.html#this_dir,Variable lxml.tests.test_pyclasslookup.this_dir=lxml.tests.test_pyclasslookup-module.html#this_dir,Variable lxml.tests.test_relaxng.this_dir=lxml.tests.test_relaxng-module.html#this_dir,Variable lxml.tests.test_sax.this_dir=lxml.tests.test_sax-module.html#this_dir,Variable lxml.tests.test_schematron.this_dir=lxml.tests.test_schematron-module.html#this_dir,Variable lxml.tests.test_threading.this_dir=lxml.tests.test_threading-module.html#this_dir,Variable lxml.tests.test_unicode.this_dir=lxml.tests.test_unicode-module.html#this_dir,Variable lxml.tests.test_xmlschema.this_dir=lxml.tests.test_xmlschema-module.html#this_dir,Variable lxml.tests.test_xpathevaluator.this_dir=lxml.tests.test_xpathevaluator-module.html#this_dir,Variable lxml.tests.test_xslt.this_dir=lxml.tests.test_xslt-module.html#this_dir"><a title="lxml.tests.test_builder.this_dir
lxml.tests.test_classlookup.this_dir
lxml.tests.test_dtd.this_dir
lxml.tests.test_elementtree.this_dir
lxml.tests.test_errors.this_dir
lxml.tests.test_etree.this_dir
lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
lxml.tests.test_incremental_xmlfile.this_dir
lxml.tests.test_io.this_dir
lxml.tests.test_isoschematron.this_dir
lxml.tests.test_errors.this_dir
lxml.tests.test_etree.this_dir
lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
lxml.tests.test_incremental_xmlfile.this_dir
lxml.tests.test_io.this_dir
lxml.tests.test_isoschematron.this_dir
lxml.tests.test_errors.this_dir
lxml.tests.test_etree.this_dir
lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
lxml.tests.test_incremental_xmlfile.this_dir
lxml.tests.test_io.this_dir
lxml.tests.test_isoschematron.this_dir
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:36 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:13 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">unittest</tt> </tt>
<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">tempfile</tt><tt class="py-op">,</tt> <tt class="py-name">gzip</tt><tt class="py-op">,</tt> <tt class="py-name">os</tt><tt class="py-op">,</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-0" class="py-name" targets="Variable lxml.etree.XPath.path=lxml.etree.XPath-class.html#path"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-0', 'path', 'link-0');">path</a></tt><tt class="py-op">,</tt> <tt class="py-name">sys</tt><tt class="py-op">,</tt> <tt class="py-name">gc</tt><tt class="py-op">,</tt> <tt class="py-name">shutil</tt> </tt>
<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"> </tt>
-<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt id="link-1" class="py-name" targets="Variable lxml.tests.test_builder.this_dir=lxml.tests.test_builder-module.html#this_dir,Variable lxml.tests.test_classlookup.this_dir=lxml.tests.test_classlookup-module.html#this_dir,Variable lxml.tests.test_dtd.this_dir=lxml.tests.test_dtd-module.html#this_dir,Variable lxml.tests.test_elementtree.this_dir=lxml.tests.test_elementtree-module.html#this_dir,Variable lxml.tests.test_errors.this_dir=lxml.tests.test_errors-module.html#this_dir,Variable lxml.tests.test_etree.this_dir=lxml.tests.test_etree-module.html#this_dir,Variable lxml.tests.test_htmlparser.this_dir=lxml.tests.test_htmlparser-module.html#this_dir,Variable lxml.tests.test_incremental_xmlfile.this_dir=lxml.tests.test_incremental_xmlfile-module.html#this_dir,Variable lxml.tests.test_io.this_dir=lxml.tests.test_io-module.html#this_dir,Variable lxml.tests.test_isoschematron.this_dir=lxml.tests.test_isoschematron-module.html#this_dir,Variable lxml.tests.test_nsclasses.this_dir=lxml.tests.test_nsclasses-module.html#this_dir,Variable lxml.tests.test_objectify.this_dir=lxml.tests.test_objectify-module.html#this_dir,Variable lxml.tests.test_pyclasslookup.this_dir=lxml.tests.test_pyclasslookup-module.html#this_dir,Variable lxml.tests.test_relaxng.this_dir=lxml.tests.test_relaxng-module.html#this_dir,Variable lxml.tests.test_sax.this_dir=lxml.tests.test_sax-module.html#this_dir,Variable lxml.tests.test_schematron.this_dir=lxml.tests.test_schematron-module.html#this_dir,Variable lxml.tests.test_threading.this_dir=lxml.tests.test_threading-module.html#this_dir,Variable lxml.tests.test_unicode.this_dir=lxml.tests.test_unicode-module.html#this_dir,Variable lxml.tests.test_xmlschema.this_dir=lxml.tests.test_xmlschema-module.html#this_dir,Variable lxml.tests.test_xpathevaluator.this_dir=lxml.tests.test_xpathevaluator-module.html#this_dir,Variable lxml.tests.test_xslt.this_dir=lxml.tests.test_xslt-module.html#this_dir"><a title="lxml.tests.test_builder.this_dir
+<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt id="link-1" class="py-name" targets="Variable lxml.tests.test_builder.this_dir=lxml.tests.test_builder-module.html#this_dir,Variable lxml.tests.test_classlookup.this_dir=lxml.tests.test_classlookup-module.html#this_dir,Variable lxml.tests.test_dtd.this_dir=lxml.tests.test_dtd-module.html#this_dir,Variable lxml.tests.test_elementtree.this_dir=lxml.tests.test_elementtree-module.html#this_dir,Variable lxml.tests.test_errors.this_dir=lxml.tests.test_errors-module.html#this_dir,Variable lxml.tests.test_etree.this_dir=lxml.tests.test_etree-module.html#this_dir,Variable lxml.tests.test_htmlparser.this_dir=lxml.tests.test_htmlparser-module.html#this_dir,Variable lxml.tests.test_http_io.this_dir=lxml.tests.test_http_io-module.html#this_dir,Variable lxml.tests.test_incremental_xmlfile.this_dir=lxml.tests.test_incremental_xmlfile-module.html#this_dir,Variable lxml.tests.test_io.this_dir=lxml.tests.test_io-module.html#this_dir,Variable lxml.tests.test_isoschematron.this_dir=lxml.tests.test_isoschematron-module.html#this_dir,Variable lxml.tests.test_nsclasses.this_dir=lxml.tests.test_nsclasses-module.html#this_dir,Variable lxml.tests.test_objectify.this_dir=lxml.tests.test_objectify-module.html#this_dir,Variable lxml.tests.test_pyclasslookup.this_dir=lxml.tests.test_pyclasslookup-module.html#this_dir,Variable lxml.tests.test_relaxng.this_dir=lxml.tests.test_relaxng-module.html#this_dir,Variable lxml.tests.test_sax.this_dir=lxml.tests.test_sax-module.html#this_dir,Variable lxml.tests.test_schematron.this_dir=lxml.tests.test_schematron-module.html#this_dir,Variable lxml.tests.test_threading.this_dir=lxml.tests.test_threading-module.html#this_dir,Variable lxml.tests.test_unicode.this_dir=lxml.tests.test_unicode-module.html#this_dir,Variable lxml.tests.test_xmlschema.this_dir=lxml.tests.test_xmlschema-module.html#this_dir,Variable lxml.tests.test_xpathevaluator.this_dir=lxml.tests.test_xpathevaluator-module.html#this_dir,Variable lxml.tests.test_xslt.this_dir=lxml.tests.test_xslt-module.html#this_dir"><a title="lxml.tests.test_builder.this_dir
lxml.tests.test_classlookup.this_dir
lxml.tests.test_dtd.this_dir
lxml.tests.test_elementtree.this_dir
lxml.tests.test_errors.this_dir
lxml.tests.test_etree.this_dir
lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
lxml.tests.test_incremental_xmlfile.this_dir
lxml.tests.test_io.this_dir
lxml.tests.test_isoschematron.this_dir
lxml.tests.test_errors.this_dir
lxml.tests.test_etree.this_dir
lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
lxml.tests.test_incremental_xmlfile.this_dir
lxml.tests.test_io.this_dir
lxml.tests.test_isoschematron.this_dir
lxml.tests.test_errors.this_dir
lxml.tests.test_etree.this_dir
lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
lxml.tests.test_incremental_xmlfile.this_dir
lxml.tests.test_io.this_dir
lxml.tests.test_isoschematron.this_dir
lxml.html.soupparser.parse
lxml.objectify.parse
lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-216', 'parse', 'link-120');">parse</a></tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L253"></a><tt class="py-lineno">253</tt> <tt class="py-line"> </tt>
-<a name="L254"></a><tt class="py-lineno">254</tt> <tt class="py-line"> </tt>
-<a name="ETreeIOTestCase"></a><div id="ETreeIOTestCase-def"><a name="L255"></a><tt class="py-lineno">255</tt> <a class="py-toggle" href="#" id="ETreeIOTestCase-toggle" onclick="return toggle('ETreeIOTestCase');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_io.ETreeIOTestCase-class.html">ETreeIOTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">_IOTestCaseBase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeIOTestCase-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="ETreeIOTestCase-expanded"><a name="L256"></a><tt class="py-lineno">256</tt> <tt class="py-line"> <tt id="link-217" class="py-name"><a title="lxml.etree
+</div><a name="L253"></a><tt class="py-lineno">253</tt> <tt class="py-line"> </tt>
+<a name="_IOTestCaseBase.test_etree_parse_io_error"></a><div id="_IOTestCaseBase.test_etree_parse_io_error-def"><a name="L254"></a><tt class="py-lineno">254</tt> <a class="py-toggle" href="#" id="_IOTestCaseBase.test_etree_parse_io_error-toggle" onclick="return toggle('_IOTestCaseBase.test_etree_parse_io_error');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_io._IOTestCaseBase-class.html#test_etree_parse_io_error">test_etree_parse_io_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="_IOTestCaseBase.test_etree_parse_io_error-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="_IOTestCaseBase.test_etree_parse_io_error-expanded"><a name="L255"></a><tt class="py-lineno">255</tt> <tt class="py-line"> <tt class="py-comment"># this is a directory name that contains characters beyond latin-1</tt> </tt>
+<a name="L256"></a><tt class="py-lineno">256</tt> <tt class="py-line"> <tt class="py-name">dirnameEN</tt> <tt class="py-op">=</tt> <tt id="link-217" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-217', '_str', 'link-12');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'Directory'</tt><tt class="py-op">)</tt> </tt>
+<a name="L257"></a><tt class="py-lineno">257</tt> <tt class="py-line"> <tt class="py-name">dirnameRU</tt> <tt class="py-op">=</tt> <tt id="link-218" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-218', '_str', 'link-12');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'Каталог'</tt><tt class="py-op">)</tt> </tt>
+<a name="L258"></a><tt class="py-lineno">258</tt> <tt class="py-line"> <tt id="link-219" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-219', 'filename', 'link-96');">filename</a></tt> <tt class="py-op">=</tt> <tt id="link-220" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-220', '_str', 'link-12');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'nosuchfile.xml'</tt><tt class="py-op">)</tt> </tt>
+<a name="L259"></a><tt class="py-lineno">259</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L260"></a><tt class="py-lineno">260</tt> <tt class="py-line"> <tt class="py-name">dn</tt> <tt class="py-op">=</tt> <tt class="py-name">tempfile</tt><tt class="py-op">.</tt><tt class="py-name">mkdtemp</tt><tt class="py-op">(</tt><tt id="link-221" 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-221', 'prefix', 'link-221');">prefix</a></tt><tt class="py-op">=</tt><tt class="py-name">dirnameEN</tt><tt class="py-op">)</tt> </tt>
+<a name="L261"></a><tt class="py-lineno">261</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">self</tt><tt class="py-op">.</tt><tt id="link-222" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-217', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt id="link-218" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-222', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-223" 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-223', 'parse', 'link-120');">parse</a></tt><tt class="py-op">,</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-224" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-224', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">dn</tt><tt class="py-op">,</tt> <tt id="link-225" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-225', 'filename', 'link-96');">filename</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L262"></a><tt class="py-lineno">262</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L263"></a><tt class="py-lineno">263</tt> <tt class="py-line"> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">rmdir</tt><tt class="py-op">(</tt><tt class="py-name">dn</tt><tt class="py-op">)</tt> </tt>
+<a name="L264"></a><tt class="py-lineno">264</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L265"></a><tt class="py-lineno">265</tt> <tt class="py-line"> <tt class="py-name">dn</tt> <tt class="py-op">=</tt> <tt class="py-name">tempfile</tt><tt class="py-op">.</tt><tt class="py-name">mkdtemp</tt><tt class="py-op">(</tt><tt id="link-226" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-226', 'prefix', 'link-221');">prefix</a></tt><tt class="py-op">=</tt><tt class="py-name">dirnameRU</tt><tt class="py-op">)</tt> </tt>
+<a name="L266"></a><tt class="py-lineno">266</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">self</tt><tt class="py-op">.</tt><tt id="link-227" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-227', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-228" 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-228', 'parse', 'link-120');">parse</a></tt><tt class="py-op">,</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-229" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-229', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">dn</tt><tt class="py-op">,</tt> <tt id="link-230" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-230', 'filename', 'link-96');">filename</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L267"></a><tt class="py-lineno">267</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L268"></a><tt class="py-lineno">268</tt> <tt class="py-line"> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">rmdir</tt><tt class="py-op">(</tt><tt class="py-name">dn</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L269"></a><tt class="py-lineno">269</tt> <tt class="py-line"> </tt>
+<a name="L270"></a><tt class="py-lineno">270</tt> <tt class="py-line"> </tt>
+<a name="ETreeIOTestCase"></a><div id="ETreeIOTestCase-def"><a name="L271"></a><tt class="py-lineno">271</tt> <a class="py-toggle" href="#" id="ETreeIOTestCase-toggle" onclick="return toggle('ETreeIOTestCase');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_io.ETreeIOTestCase-class.html">ETreeIOTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">_IOTestCaseBase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeIOTestCase-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="ETreeIOTestCase-expanded"><a name="L272"></a><tt class="py-lineno">272</tt> <tt class="py-line"> <tt id="link-231" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-231', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt id="link-232" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-218', 'etree', 'link-9');">etree</a></tt> </tt>
-</div><a name="L257"></a><tt class="py-lineno">257</tt> <tt class="py-line"> </tt>
-<a name="L258"></a><tt class="py-lineno">258</tt> <tt class="py-line"><tt class="py-keyword">if</tt> <tt id="link-219" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-232', 'etree', 'link-9');">etree</a></tt> </tt>
+</div><a name="L273"></a><tt class="py-lineno">273</tt> <tt class="py-line"> </tt>
+<a name="L274"></a><tt class="py-lineno">274</tt> <tt class="py-line"><tt class="py-keyword">if</tt> <tt id="link-233" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-219', 'ElementTree', 'link-10');">ElementTree</a></tt><tt class="py-op">:</tt> </tt>
-<a name="ElementTreeIOTestCase"></a><div id="ElementTreeIOTestCase-def"><a name="L259"></a><tt class="py-lineno">259</tt> <a class="py-toggle" href="#" id="ElementTreeIOTestCase-toggle" onclick="return toggle('ElementTreeIOTestCase');">-</a><tt class="py-line"> <tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_io.ElementTreeIOTestCase-class.html">ElementTreeIOTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">_IOTestCaseBase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ElementTreeIOTestCase-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="ElementTreeIOTestCase-expanded"><a name="L260"></a><tt class="py-lineno">260</tt> <tt class="py-line"> <tt id="link-220" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-233', 'ElementTree', 'link-10');">ElementTree</a></tt><tt class="py-op">:</tt> </tt>
+<a name="ElementTreeIOTestCase"></a><div id="ElementTreeIOTestCase-def"><a name="L275"></a><tt class="py-lineno">275</tt> <a class="py-toggle" href="#" id="ElementTreeIOTestCase-toggle" onclick="return toggle('ElementTreeIOTestCase');">-</a><tt class="py-line"> <tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_io.ElementTreeIOTestCase-class.html">ElementTreeIOTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">_IOTestCaseBase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ElementTreeIOTestCase-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="ElementTreeIOTestCase-expanded"><a name="L276"></a><tt class="py-lineno">276</tt> <tt class="py-line"> <tt id="link-234" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-220', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt id="link-221" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-234', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt id="link-235" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-221', 'ElementTree', 'link-10');">ElementTree</a></tt> </tt>
-</div><a name="L261"></a><tt class="py-lineno">261</tt> <tt class="py-line"> </tt>
-<a name="test_suite"></a><div id="test_suite-def"><a name="L262"></a><tt class="py-lineno">262</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_io-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="L263"></a><tt class="py-lineno">263</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="L264"></a><tt class="py-lineno">264</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-222" class="py-name" targets="Class lxml.tests.test_io.ETreeIOTestCase=lxml.tests.test_io.ETreeIOTestCase-class.html"><a title="lxml.tests.test_io.ETreeIOTestCase" class="py-name" href="#" onclick="return doclink('link-222', 'ETreeIOTestCase', 'link-222');">ETreeIOTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L265"></a><tt class="py-lineno">265</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-223" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-235', 'ElementTree', 'link-10');">ElementTree</a></tt> </tt>
+</div><a name="L277"></a><tt class="py-lineno">277</tt> <tt class="py-line"> </tt>
+<a name="test_suite"></a><div id="test_suite-def"><a name="L278"></a><tt class="py-lineno">278</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_io-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="L279"></a><tt class="py-lineno">279</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="L280"></a><tt class="py-lineno">280</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-236" class="py-name" targets="Class lxml.tests.test_io.ETreeIOTestCase=lxml.tests.test_io.ETreeIOTestCase-class.html"><a title="lxml.tests.test_io.ETreeIOTestCase" class="py-name" href="#" onclick="return doclink('link-236', 'ETreeIOTestCase', 'link-236');">ETreeIOTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L281"></a><tt class="py-lineno">281</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-237" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-223', 'ElementTree', 'link-10');">ElementTree</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L266"></a><tt class="py-lineno">266</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-224" class="py-name" targets="Class lxml.tests.test_io.ElementTreeIOTestCase=lxml.tests.test_io.ElementTreeIOTestCase-class.html"><a title="lxml.tests.test_io.ElementTreeIOTestCase" class="py-name" href="#" onclick="return doclink('link-224', 'ElementTreeIOTestCase', 'link-224');">ElementTreeIOTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L267"></a><tt class="py-lineno">267</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">suite</tt> </tt>
-</div><a name="L268"></a><tt class="py-lineno">268</tt> <tt class="py-line"> </tt>
-<a name="L269"></a><tt class="py-lineno">269</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="L270"></a><tt class="py-lineno">270</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="L271"></a><tt class="py-lineno">271</tt> <tt class="py-line"> </tt><script type="text/javascript">
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-237', 'ElementTree', 'link-10');">ElementTree</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L282"></a><tt class="py-lineno">282</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-238" class="py-name" targets="Class lxml.tests.test_io.ElementTreeIOTestCase=lxml.tests.test_io.ElementTreeIOTestCase-class.html"><a title="lxml.tests.test_io.ElementTreeIOTestCase" class="py-name" href="#" onclick="return doclink('link-238', 'ElementTreeIOTestCase', 'link-238');">ElementTreeIOTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L283"></a><tt class="py-lineno">283</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">suite</tt> </tt>
+</div><a name="L284"></a><tt class="py-lineno">284</tt> <tt class="py-line"> </tt>
+<a name="L285"></a><tt class="py-lineno">285</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="L286"></a><tt class="py-lineno">286</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="L287"></a><tt class="py-lineno">287</tt> <tt class="py-line"> </tt><script type="text/javascript">
<!--
expandto(location.href);
// -->
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:36 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:13 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<code><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_class_parse_filename_remove_previous">test_class_parse_filename_remove_previous</a></code>,
<code><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_class_parse_fileobject">test_class_parse_fileobject</a></code>,
<code><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_class_parse_unamed_fileobject">test_class_parse_unamed_fileobject</a></code>,
+ <code><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_etree_parse_io_error">test_etree_parse_io_error</a></code>,
<code><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_module_parse_fileobject_error">test_module_parse_fileobject_error</a></code>,
<code><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_module_parse_fileobject_late_error">test_module_parse_fileobject_late_error</a></code>,
<code><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_module_parse_fileobject_type_error">test_module_parse_fileobject_type_error</a></code>,
<span class="summary-type"> </span>
</td><td class="summary">
<a href="lxml.etree-module.html" class="summary-name">etree</a><br />
- The <tt class="rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-docutils literal rst-rst-rst-docutils literal rst-rst-docutils literal rst-docutils literal">lxml.etree</tt> module implements the extended ElementTree API
+ The <tt class="rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-docutils literal rst-rst-rst-docutils literal rst-rst-docutils literal rst-docutils literal">lxml.etree</tt> module implements the extended ElementTree API
for XML.
</td>
</tr>
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
<h3 class="epydoc">etree</h3>
- The <tt class="rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-docutils literal rst-rst-rst-docutils literal rst-rst-docutils literal rst-docutils literal">lxml.etree</tt> module implements the extended ElementTree API
+ The <tt class="rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-docutils literal rst-rst-rst-docutils literal rst-rst-docutils literal rst-docutils literal">lxml.etree</tt> module implements the extended ElementTree API
for XML.
<dl class="fields">
</dl>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<code><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_class_parse_filename_remove_previous">test_class_parse_filename_remove_previous</a></code>,
<code><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_class_parse_fileobject">test_class_parse_fileobject</a></code>,
<code><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_class_parse_unamed_fileobject">test_class_parse_unamed_fileobject</a></code>,
+ <code><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_etree_parse_io_error">test_etree_parse_io_error</a></code>,
<code><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_module_parse_fileobject_error">test_module_parse_fileobject_error</a></code>,
<code><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_module_parse_fileobject_late_error">test_module_parse_fileobject_late_error</a></code>,
<code><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_module_parse_fileobject_type_error">test_module_parse_fileobject_type_error</a></code>,
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
</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_etree_parse_io_error"></a><span class="summary-sig-name">test_etree_parse_io_error</span>(<span class="summary-sig-arg">self</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="lxml.tests.test_io-pysrc.html#_IOTestCaseBase.test_etree_parse_io_error">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
<tr>
<td colspan="2" class="summary">
<p class="indent-wrapped-lines"><b>Inherited from <code><a href="lxml.tests.common_imports.HelperTestCase-class.html">common_imports.HelperTestCase</a></code></b>:
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">unittest</tt><tt class="py-op">,</tt> <tt class="py-name">sys</tt><tt class="py-op">,</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-0" class="py-name" targets="Variable lxml.etree.XPath.path=lxml.etree.XPath-class.html#path"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-0', 'path', 'link-0');">path</a></tt> </tt>
<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-1" class="py-name" targets="Package lxml=lxml-module.html"><a title="lxml" class="py-name" href="#" onclick="return doclink('link-1', 'lxml', 'link-1');">lxml</a></tt> <tt class="py-keyword">import</tt> <tt id="link-2" class="py-name" targets="Package lxml.isoschematron=lxml.isoschematron-module.html"><a title="lxml.isoschematron" class="py-name" href="#" onclick="return doclink('link-2', 'isoschematron', 'link-2');">isoschematron</a></tt> </tt>
<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"> </tt>
-<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt id="link-3" class="py-name" targets="Variable lxml.tests.test_builder.this_dir=lxml.tests.test_builder-module.html#this_dir,Variable lxml.tests.test_classlookup.this_dir=lxml.tests.test_classlookup-module.html#this_dir,Variable lxml.tests.test_dtd.this_dir=lxml.tests.test_dtd-module.html#this_dir,Variable lxml.tests.test_elementtree.this_dir=lxml.tests.test_elementtree-module.html#this_dir,Variable lxml.tests.test_errors.this_dir=lxml.tests.test_errors-module.html#this_dir,Variable lxml.tests.test_etree.this_dir=lxml.tests.test_etree-module.html#this_dir,Variable lxml.tests.test_htmlparser.this_dir=lxml.tests.test_htmlparser-module.html#this_dir,Variable lxml.tests.test_incremental_xmlfile.this_dir=lxml.tests.test_incremental_xmlfile-module.html#this_dir,Variable lxml.tests.test_io.this_dir=lxml.tests.test_io-module.html#this_dir,Variable lxml.tests.test_isoschematron.this_dir=lxml.tests.test_isoschematron-module.html#this_dir,Variable lxml.tests.test_nsclasses.this_dir=lxml.tests.test_nsclasses-module.html#this_dir,Variable lxml.tests.test_objectify.this_dir=lxml.tests.test_objectify-module.html#this_dir,Variable lxml.tests.test_pyclasslookup.this_dir=lxml.tests.test_pyclasslookup-module.html#this_dir,Variable lxml.tests.test_relaxng.this_dir=lxml.tests.test_relaxng-module.html#this_dir,Variable lxml.tests.test_sax.this_dir=lxml.tests.test_sax-module.html#this_dir,Variable lxml.tests.test_schematron.this_dir=lxml.tests.test_schematron-module.html#this_dir,Variable lxml.tests.test_threading.this_dir=lxml.tests.test_threading-module.html#this_dir,Variable lxml.tests.test_unicode.this_dir=lxml.tests.test_unicode-module.html#this_dir,Variable lxml.tests.test_xmlschema.this_dir=lxml.tests.test_xmlschema-module.html#this_dir,Variable lxml.tests.test_xpathevaluator.this_dir=lxml.tests.test_xpathevaluator-module.html#this_dir,Variable lxml.tests.test_xslt.this_dir=lxml.tests.test_xslt-module.html#this_dir"><a title="lxml.tests.test_builder.this_dir
+<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt id="link-3" class="py-name" targets="Variable lxml.tests.test_builder.this_dir=lxml.tests.test_builder-module.html#this_dir,Variable lxml.tests.test_classlookup.this_dir=lxml.tests.test_classlookup-module.html#this_dir,Variable lxml.tests.test_dtd.this_dir=lxml.tests.test_dtd-module.html#this_dir,Variable lxml.tests.test_elementtree.this_dir=lxml.tests.test_elementtree-module.html#this_dir,Variable lxml.tests.test_errors.this_dir=lxml.tests.test_errors-module.html#this_dir,Variable lxml.tests.test_etree.this_dir=lxml.tests.test_etree-module.html#this_dir,Variable lxml.tests.test_htmlparser.this_dir=lxml.tests.test_htmlparser-module.html#this_dir,Variable lxml.tests.test_http_io.this_dir=lxml.tests.test_http_io-module.html#this_dir,Variable lxml.tests.test_incremental_xmlfile.this_dir=lxml.tests.test_incremental_xmlfile-module.html#this_dir,Variable lxml.tests.test_io.this_dir=lxml.tests.test_io-module.html#this_dir,Variable lxml.tests.test_isoschematron.this_dir=lxml.tests.test_isoschematron-module.html#this_dir,Variable lxml.tests.test_nsclasses.this_dir=lxml.tests.test_nsclasses-module.html#this_dir,Variable lxml.tests.test_objectify.this_dir=lxml.tests.test_objectify-module.html#this_dir,Variable lxml.tests.test_pyclasslookup.this_dir=lxml.tests.test_pyclasslookup-module.html#this_dir,Variable lxml.tests.test_relaxng.this_dir=lxml.tests.test_relaxng-module.html#this_dir,Variable lxml.tests.test_sax.this_dir=lxml.tests.test_sax-module.html#this_dir,Variable lxml.tests.test_schematron.this_dir=lxml.tests.test_schematron-module.html#this_dir,Variable lxml.tests.test_threading.this_dir=lxml.tests.test_threading-module.html#this_dir,Variable lxml.tests.test_unicode.this_dir=lxml.tests.test_unicode-module.html#this_dir,Variable lxml.tests.test_xmlschema.this_dir=lxml.tests.test_xmlschema-module.html#this_dir,Variable lxml.tests.test_xpathevaluator.this_dir=lxml.tests.test_xpathevaluator-module.html#this_dir,Variable lxml.tests.test_xslt.this_dir=lxml.tests.test_xslt-module.html#this_dir"><a title="lxml.tests.test_builder.this_dir
lxml.tests.test_classlookup.this_dir
lxml.tests.test_dtd.this_dir
lxml.tests.test_elementtree.this_dir
lxml.tests.test_errors.this_dir
lxml.tests.test_etree.this_dir
lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
lxml.tests.test_incremental_xmlfile.this_dir
lxml.tests.test_io.this_dir
lxml.tests.test_isoschematron.this_dir
lxml.tests.test_errors.this_dir
lxml.tests.test_etree.this_dir
lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
lxml.tests.test_incremental_xmlfile.this_dir
lxml.tests.test_io.this_dir
lxml.tests.test_isoschematron.this_dir
lxml.tests.test_errors.this_dir
lxml.tests.test_etree.this_dir
lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
lxml.tests.test_incremental_xmlfile.this_dir
lxml.tests.test_io.this_dir
lxml.tests.test_isoschematron.this_dir
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:38 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:14 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"> </tt>
<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">unittest</tt><tt class="py-op">,</tt> <tt class="py-name">sys</tt><tt class="py-op">,</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-0" class="py-name" targets="Variable lxml.etree.XPath.path=lxml.etree.XPath-class.html#path"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-0', 'path', 'link-0');">path</a></tt> </tt>
<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"> </tt>
-<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt id="link-1" class="py-name" targets="Variable lxml.tests.test_builder.this_dir=lxml.tests.test_builder-module.html#this_dir,Variable lxml.tests.test_classlookup.this_dir=lxml.tests.test_classlookup-module.html#this_dir,Variable lxml.tests.test_dtd.this_dir=lxml.tests.test_dtd-module.html#this_dir,Variable lxml.tests.test_elementtree.this_dir=lxml.tests.test_elementtree-module.html#this_dir,Variable lxml.tests.test_errors.this_dir=lxml.tests.test_errors-module.html#this_dir,Variable lxml.tests.test_etree.this_dir=lxml.tests.test_etree-module.html#this_dir,Variable lxml.tests.test_htmlparser.this_dir=lxml.tests.test_htmlparser-module.html#this_dir,Variable lxml.tests.test_incremental_xmlfile.this_dir=lxml.tests.test_incremental_xmlfile-module.html#this_dir,Variable lxml.tests.test_io.this_dir=lxml.tests.test_io-module.html#this_dir,Variable lxml.tests.test_isoschematron.this_dir=lxml.tests.test_isoschematron-module.html#this_dir,Variable lxml.tests.test_nsclasses.this_dir=lxml.tests.test_nsclasses-module.html#this_dir,Variable lxml.tests.test_objectify.this_dir=lxml.tests.test_objectify-module.html#this_dir,Variable lxml.tests.test_pyclasslookup.this_dir=lxml.tests.test_pyclasslookup-module.html#this_dir,Variable lxml.tests.test_relaxng.this_dir=lxml.tests.test_relaxng-module.html#this_dir,Variable lxml.tests.test_sax.this_dir=lxml.tests.test_sax-module.html#this_dir,Variable lxml.tests.test_schematron.this_dir=lxml.tests.test_schematron-module.html#this_dir,Variable lxml.tests.test_threading.this_dir=lxml.tests.test_threading-module.html#this_dir,Variable lxml.tests.test_unicode.this_dir=lxml.tests.test_unicode-module.html#this_dir,Variable lxml.tests.test_xmlschema.this_dir=lxml.tests.test_xmlschema-module.html#this_dir,Variable lxml.tests.test_xpathevaluator.this_dir=lxml.tests.test_xpathevaluator-module.html#this_dir,Variable lxml.tests.test_xslt.this_dir=lxml.tests.test_xslt-module.html#this_dir"><a title="lxml.tests.test_builder.this_dir
+<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt id="link-1" class="py-name" targets="Variable lxml.tests.test_builder.this_dir=lxml.tests.test_builder-module.html#this_dir,Variable lxml.tests.test_classlookup.this_dir=lxml.tests.test_classlookup-module.html#this_dir,Variable lxml.tests.test_dtd.this_dir=lxml.tests.test_dtd-module.html#this_dir,Variable lxml.tests.test_elementtree.this_dir=lxml.tests.test_elementtree-module.html#this_dir,Variable lxml.tests.test_errors.this_dir=lxml.tests.test_errors-module.html#this_dir,Variable lxml.tests.test_etree.this_dir=lxml.tests.test_etree-module.html#this_dir,Variable lxml.tests.test_htmlparser.this_dir=lxml.tests.test_htmlparser-module.html#this_dir,Variable lxml.tests.test_http_io.this_dir=lxml.tests.test_http_io-module.html#this_dir,Variable lxml.tests.test_incremental_xmlfile.this_dir=lxml.tests.test_incremental_xmlfile-module.html#this_dir,Variable lxml.tests.test_io.this_dir=lxml.tests.test_io-module.html#this_dir,Variable lxml.tests.test_isoschematron.this_dir=lxml.tests.test_isoschematron-module.html#this_dir,Variable lxml.tests.test_nsclasses.this_dir=lxml.tests.test_nsclasses-module.html#this_dir,Variable lxml.tests.test_objectify.this_dir=lxml.tests.test_objectify-module.html#this_dir,Variable lxml.tests.test_pyclasslookup.this_dir=lxml.tests.test_pyclasslookup-module.html#this_dir,Variable lxml.tests.test_relaxng.this_dir=lxml.tests.test_relaxng-module.html#this_dir,Variable lxml.tests.test_sax.this_dir=lxml.tests.test_sax-module.html#this_dir,Variable lxml.tests.test_schematron.this_dir=lxml.tests.test_schematron-module.html#this_dir,Variable lxml.tests.test_threading.this_dir=lxml.tests.test_threading-module.html#this_dir,Variable lxml.tests.test_unicode.this_dir=lxml.tests.test_unicode-module.html#this_dir,Variable lxml.tests.test_xmlschema.this_dir=lxml.tests.test_xmlschema-module.html#this_dir,Variable lxml.tests.test_xpathevaluator.this_dir=lxml.tests.test_xpathevaluator-module.html#this_dir,Variable lxml.tests.test_xslt.this_dir=lxml.tests.test_xslt-module.html#this_dir"><a title="lxml.tests.test_builder.this_dir
lxml.tests.test_classlookup.this_dir
lxml.tests.test_dtd.this_dir
lxml.tests.test_elementtree.this_dir
lxml.tests.test_errors.this_dir
lxml.tests.test_etree.this_dir
lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
lxml.tests.test_incremental_xmlfile.this_dir
lxml.tests.test_io.this_dir
lxml.tests.test_isoschematron.this_dir
lxml.tests.test_errors.this_dir
lxml.tests.test_etree.this_dir
lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
lxml.tests.test_incremental_xmlfile.this_dir
lxml.tests.test_io.this_dir
lxml.tests.test_isoschematron.this_dir
lxml.tests.test_errors.this_dir
lxml.tests.test_etree.this_dir
lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
lxml.tests.test_incremental_xmlfile.this_dir
lxml.tests.test_io.this_dir
lxml.tests.test_isoschematron.this_dir
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:38 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:13 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</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="v"></a><span class="summary-name">v</span> = <code title="'boolean'"><code class="variable-quote">'</code><code class="variable-string">boolean</code><code class="variable-quote">'</code></code>
+ <a name="v"></a><span class="summary-name">v</span> = <code title="'positiveInteger'"><code class="variable-quote">'</code><code class="variable-string">positiveInteger</code><code class="variable-quote">'</code></code>
</td>
</tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"> </tt>
<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">unittest</tt><tt class="py-op">,</tt> <tt class="py-name">operator</tt><tt class="py-op">,</tt> <tt class="py-name">sys</tt><tt class="py-op">,</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-0" class="py-name" targets="Variable lxml.etree.XPath.path=lxml.etree.XPath-class.html#path"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-0', 'path', 'link-0');">path</a></tt> </tt>
<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"> </tt>
-<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt id="link-1" class="py-name" targets="Variable lxml.tests.test_builder.this_dir=lxml.tests.test_builder-module.html#this_dir,Variable lxml.tests.test_classlookup.this_dir=lxml.tests.test_classlookup-module.html#this_dir,Variable lxml.tests.test_dtd.this_dir=lxml.tests.test_dtd-module.html#this_dir,Variable lxml.tests.test_elementtree.this_dir=lxml.tests.test_elementtree-module.html#this_dir,Variable lxml.tests.test_errors.this_dir=lxml.tests.test_errors-module.html#this_dir,Variable lxml.tests.test_etree.this_dir=lxml.tests.test_etree-module.html#this_dir,Variable lxml.tests.test_htmlparser.this_dir=lxml.tests.test_htmlparser-module.html#this_dir,Variable lxml.tests.test_incremental_xmlfile.this_dir=lxml.tests.test_incremental_xmlfile-module.html#this_dir,Variable lxml.tests.test_io.this_dir=lxml.tests.test_io-module.html#this_dir,Variable lxml.tests.test_isoschematron.this_dir=lxml.tests.test_isoschematron-module.html#this_dir,Variable lxml.tests.test_nsclasses.this_dir=lxml.tests.test_nsclasses-module.html#this_dir,Variable lxml.tests.test_objectify.this_dir=lxml.tests.test_objectify-module.html#this_dir,Variable lxml.tests.test_pyclasslookup.this_dir=lxml.tests.test_pyclasslookup-module.html#this_dir,Variable lxml.tests.test_relaxng.this_dir=lxml.tests.test_relaxng-module.html#this_dir,Variable lxml.tests.test_sax.this_dir=lxml.tests.test_sax-module.html#this_dir,Variable lxml.tests.test_schematron.this_dir=lxml.tests.test_schematron-module.html#this_dir,Variable lxml.tests.test_threading.this_dir=lxml.tests.test_threading-module.html#this_dir,Variable lxml.tests.test_unicode.this_dir=lxml.tests.test_unicode-module.html#this_dir,Variable lxml.tests.test_xmlschema.this_dir=lxml.tests.test_xmlschema-module.html#this_dir,Variable lxml.tests.test_xpathevaluator.this_dir=lxml.tests.test_xpathevaluator-module.html#this_dir,Variable lxml.tests.test_xslt.this_dir=lxml.tests.test_xslt-module.html#this_dir"><a title="lxml.tests.test_builder.this_dir
+<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt id="link-1" class="py-name" targets="Variable lxml.tests.test_builder.this_dir=lxml.tests.test_builder-module.html#this_dir,Variable lxml.tests.test_classlookup.this_dir=lxml.tests.test_classlookup-module.html#this_dir,Variable lxml.tests.test_dtd.this_dir=lxml.tests.test_dtd-module.html#this_dir,Variable lxml.tests.test_elementtree.this_dir=lxml.tests.test_elementtree-module.html#this_dir,Variable lxml.tests.test_errors.this_dir=lxml.tests.test_errors-module.html#this_dir,Variable lxml.tests.test_etree.this_dir=lxml.tests.test_etree-module.html#this_dir,Variable lxml.tests.test_htmlparser.this_dir=lxml.tests.test_htmlparser-module.html#this_dir,Variable lxml.tests.test_http_io.this_dir=lxml.tests.test_http_io-module.html#this_dir,Variable lxml.tests.test_incremental_xmlfile.this_dir=lxml.tests.test_incremental_xmlfile-module.html#this_dir,Variable lxml.tests.test_io.this_dir=lxml.tests.test_io-module.html#this_dir,Variable lxml.tests.test_isoschematron.this_dir=lxml.tests.test_isoschematron-module.html#this_dir,Variable lxml.tests.test_nsclasses.this_dir=lxml.tests.test_nsclasses-module.html#this_dir,Variable lxml.tests.test_objectify.this_dir=lxml.tests.test_objectify-module.html#this_dir,Variable lxml.tests.test_pyclasslookup.this_dir=lxml.tests.test_pyclasslookup-module.html#this_dir,Variable lxml.tests.test_relaxng.this_dir=lxml.tests.test_relaxng-module.html#this_dir,Variable lxml.tests.test_sax.this_dir=lxml.tests.test_sax-module.html#this_dir,Variable lxml.tests.test_schematron.this_dir=lxml.tests.test_schematron-module.html#this_dir,Variable lxml.tests.test_threading.this_dir=lxml.tests.test_threading-module.html#this_dir,Variable lxml.tests.test_unicode.this_dir=lxml.tests.test_unicode-module.html#this_dir,Variable lxml.tests.test_xmlschema.this_dir=lxml.tests.test_xmlschema-module.html#this_dir,Variable lxml.tests.test_xpathevaluator.this_dir=lxml.tests.test_xpathevaluator-module.html#this_dir,Variable lxml.tests.test_xslt.this_dir=lxml.tests.test_xslt-module.html#this_dir"><a title="lxml.tests.test_builder.this_dir
lxml.tests.test_classlookup.this_dir
lxml.tests.test_dtd.this_dir
lxml.tests.test_elementtree.this_dir
lxml.tests.test_errors.this_dir
lxml.tests.test_etree.this_dir
lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
lxml.tests.test_incremental_xmlfile.this_dir
lxml.tests.test_io.this_dir
lxml.tests.test_isoschematron.this_dir
lxml.tests.test_errors.this_dir
lxml.tests.test_etree.this_dir
lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
lxml.tests.test_incremental_xmlfile.this_dir
lxml.tests.test_io.this_dir
lxml.tests.test_isoschematron.this_dir
lxml.tests.test_errors.this_dir
lxml.tests.test_etree.this_dir
lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
lxml.tests.test_incremental_xmlfile.this_dir
lxml.tests.test_io.this_dir
lxml.tests.test_isoschematron.this_dir
<a name="ObjectifyTestCase.test_efactory_subtype"></a><div id="ObjectifyTestCase.test_efactory_subtype-def"><a name="L2479"></a><tt class="py-lineno">2479</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_efactory_subtype-toggle" onclick="return toggle('ObjectifyTestCase.test_efactory_subtype');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_subtype">test_efactory_subtype</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="ObjectifyTestCase.test_efactory_subtype-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_efactory_subtype-expanded"><a name="L2480"></a><tt class="py-lineno">2480</tt> <tt class="py-line"> <tt class="py-keyword">class</tt> <tt class="py-def-name">Attribute</tt><tt class="py-op">(</tt><tt class="py-base-class">objectify</tt><tt class="py-op">.</tt><tt class="py-base-class">ObjectifiedDataElement</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L2481"></a><tt class="py-lineno">2481</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="L2482"></a><tt class="py-lineno">2482</tt> <tt class="py-line"> <tt id="link-2661" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2661', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2662" class="py-name"><a title="lxml.objectify.ObjectifiedDataElement" class="py-name" href="#" onclick="return doclink('link-2662', 'ObjectifiedDataElement', 'link-309');">ObjectifiedDataElement</a></tt><tt class="py-op">.</tt><tt id="link-2663" class="py-name" targets="Method lxml.builder.ElementMaker.__init__()=lxml.builder.ElementMaker-class.html#__init__,Method lxml.cssselect.CSSSelector.__init__()=lxml.cssselect.CSSSelector-class.html#__init__,Method lxml.doctestcompare._RestoreChecker.__init__()=lxml.doctestcompare._RestoreChecker-class.html#__init__,Method lxml.etree.AttributeBasedElementClassLookup.__init__()=lxml.etree.AttributeBasedElementClassLookup-class.html#__init__,Method lxml.etree.CommentBase.__init__()=lxml.etree.CommentBase-class.html#__init__,Method lxml.etree.DTD.__init__()=lxml.etree.DTD-class.html#__init__,Method lxml.etree.ETCompatXMLParser.__init__()=lxml.etree.ETCompatXMLParser-class.html#__init__,Method lxml.etree.ETXPath.__init__()=lxml.etree.ETXPath-class.html#__init__,Method lxml.etree.ElementBase.__init__()=lxml.etree.ElementBase-class.html#__init__,Method lxml.etree.ElementDefaultClassLookup.__init__()=lxml.etree.ElementDefaultClassLookup-class.html#__init__,Method lxml.etree.ElementNamespaceClassLookup.__init__()=lxml.etree.ElementNamespaceClassLookup-class.html#__init__,Method lxml.etree.EntityBase.__init__()=lxml.etree.EntityBase-class.html#__init__,Method lxml.etree.FallbackElementClassLookup.__init__()=lxml.etree.FallbackElementClassLookup-class.html#__init__,Method lxml.etree.HTMLParser.__init__()=lxml.etree.HTMLParser-class.html#__init__,Method lxml.etree.LxmlError.__init__()=lxml.etree.LxmlError-class.html#__init__,Method lxml.etree.PIBase.__init__()=lxml.etree.PIBase-class.html#__init__,Method lxml.etree.ParseError.__init__()=lxml.etree.ParseError-class.html#__init__,Method lxml.etree.PyErrorLog.__init__()=lxml.etree.PyErrorLog-class.html#__init__,Method lxml.etree.QName.__init__()=lxml.etree.QName-class.html#__init__,Method lxml.etree.RelaxNG.__init__()=lxml.etree.RelaxNG-class.html#__init__,Method lxml.etree.Schematron.__init__()=lxml.etree.Schematron-class.html#__init__,Method lxml.etree.TreeBuilder.__init__()=lxml.etree.TreeBuilder-class.html#__init__,Method lxml.etree.XInclude.__init__()=lxml.etree.XInclude-class.html#__init__,Method lxml.etree.XMLParser.__init__()=lxml.etree.XMLParser-class.html#__init__,Method lxml.etree.XMLSchema.__init__()=lxml.etree.XMLSchema-class.html#__init__,Method lxml.etree.XPath.__init__()=lxml.etree.XPath-class.html#__init__,Method lxml.etree.XPathDocumentEvaluator.__init__()=lxml.etree.XPathDocumentEvaluator-class.html#__init__,Method lxml.etree.XPathElementEvaluator.__init__()=lxml.etree.XPathElementEvaluator-class.html#__init__,Method lxml.etree.XSLT.__init__()=lxml.etree.XSLT-class.html#__init__,Method lxml.etree.XSLTAccessControl.__init__()=lxml.etree.XSLTAccessControl-class.html#__init__,Method lxml.etree._BaseErrorLog.__init__()=lxml.etree._BaseErrorLog-class.html#__init__,Method lxml.etree._DomainErrorLog.__init__()=lxml.etree._DomainErrorLog-class.html#__init__,Method lxml.etree._ErrorLog.__init__()=lxml.etree._ErrorLog-class.html#__init__,Method lxml.etree._ListErrorLog.__init__()=lxml.etree._ListErrorLog-class.html#__init__,Method lxml.etree._RotatingErrorLog.__init__()=lxml.etree._RotatingErrorLog-class.html#__init__,Method lxml.etree._TargetParserResult.__init__()=lxml.etree._TargetParserResult-class.html#__init__,Method lxml.etree._XPathEvaluatorBase.__init__()=lxml.etree._XPathEvaluatorBase-class.html#__init__,Method lxml.etree.iterparse.__init__()=lxml.etree.iterparse-class.html#__init__,Method lxml.etree.iterwalk.__init__()=lxml.etree.iterwalk-class.html#__init__,Method lxml.etree.xmlfile.__init__()=lxml.etree.xmlfile-class.html#__init__,Method lxml.html.CheckboxValues.__init__()=lxml.html.CheckboxValues-class.html#__init__,Method lxml.html.FieldsDict.__init__()=lxml.html.FieldsDict-class.html#__init__,Method lxml.html.HTMLParser.__init__()=lxml.html.HTMLParser-class.html#__init__,Method lxml.html.HtmlElementClassLookup.__init__()=lxml.html.HtmlElementClassLookup-class.html#__init__,Method lxml.html.InputGetter.__init__()=lxml.html.InputGetter-class.html#__init__,Method lxml.html.MultipleSelectOptions.__init__()=lxml.html.MultipleSelectOptions-class.html#__init__,Method lxml.html.XHTMLParser.__init__()=lxml.html.XHTMLParser-class.html#__init__,Method lxml.html._MethodFunc.__init__()=lxml.html._MethodFunc-class.html#__init__,Method lxml.html.clean.Cleaner.__init__()=lxml.html.clean.Cleaner-class.html#__init__,Method lxml.html.formfill.DefaultErrorCreator.__init__()=lxml.html.formfill.DefaultErrorCreator-class.html#__init__,Method lxml.html.html5parser.HTMLParser.__init__()=lxml.html.html5parser.HTMLParser-class.html#__init__,Method lxml.html.html5parser.XHTMLParser.__init__()=lxml.html.html5parser.XHTMLParser-class.html#__init__,Method lxml.isoschematron.Schematron.__init__()=lxml.isoschematron.Schematron-class.html#__init__,Method lxml.objectify.ElementMaker.__init__()=lxml.objectify.ElementMaker-class.html#__init__,Method lxml.objectify.ObjectPath.__init__()=lxml.objectify.ObjectPath-class.html#__init__,Method lxml.objectify.ObjectifyElementClassLookup.__init__()=lxml.objectify.ObjectifyElementClassLookup-class.html#__init__,Method lxml.objectify.PyType.__init__()=lxml.objectify.PyType-class.html#__init__,Method lxml.sax.ElementTreeContentHandler.__init__()=lxml.sax.ElementTreeContentHandler-class.html#__init__,Method lxml.sax.ElementTreeProducer.__init__()=lxml.sax.ElementTreeProducer-class.html#__init__,Method lxml.tests.common_imports.LargeFileLike.__init__()=lxml.tests.common_imports.LargeFileLike-class.html#__init__,Method lxml.tests.common_imports.LargeFileLikeUnicode.__init__()=lxml.tests.common_imports.LargeFileLikeUnicode-class.html#__init__,Method lxml.tests.common_imports.SillyFileLike.__init__()=lxml.tests.common_imports.SillyFileLike-class.html#__init__,Method lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.__init__()=lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike-class.html#__init__,Method lxml.tests.test_threading.ThreadPipelineTestCase.Worker.__init__()=lxml.tests.test_threading.ThreadPipelineTestCase.Worker-class.html#__init__,Method lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver.__init__()=lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver-class.html#__init__"><a title="lxml.builder.ElementMaker.__init__
+<a name="L2482"></a><tt class="py-lineno">2482</tt> <tt class="py-line"> <tt id="link-2661" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2661', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2662" class="py-name"><a title="lxml.objectify.ObjectifiedDataElement" class="py-name" href="#" onclick="return doclink('link-2662', 'ObjectifiedDataElement', 'link-309');">ObjectifiedDataElement</a></tt><tt class="py-op">.</tt><tt id="link-2663" class="py-name" targets="Method lxml.builder.ElementMaker.__init__()=lxml.builder.ElementMaker-class.html#__init__,Method lxml.cssselect.CSSSelector.__init__()=lxml.cssselect.CSSSelector-class.html#__init__,Method lxml.doctestcompare._RestoreChecker.__init__()=lxml.doctestcompare._RestoreChecker-class.html#__init__,Method lxml.etree.AttributeBasedElementClassLookup.__init__()=lxml.etree.AttributeBasedElementClassLookup-class.html#__init__,Method lxml.etree.CommentBase.__init__()=lxml.etree.CommentBase-class.html#__init__,Method lxml.etree.DTD.__init__()=lxml.etree.DTD-class.html#__init__,Method lxml.etree.ETCompatXMLParser.__init__()=lxml.etree.ETCompatXMLParser-class.html#__init__,Method lxml.etree.ETXPath.__init__()=lxml.etree.ETXPath-class.html#__init__,Method lxml.etree.ElementBase.__init__()=lxml.etree.ElementBase-class.html#__init__,Method lxml.etree.ElementDefaultClassLookup.__init__()=lxml.etree.ElementDefaultClassLookup-class.html#__init__,Method lxml.etree.ElementNamespaceClassLookup.__init__()=lxml.etree.ElementNamespaceClassLookup-class.html#__init__,Method lxml.etree.EntityBase.__init__()=lxml.etree.EntityBase-class.html#__init__,Method lxml.etree.FallbackElementClassLookup.__init__()=lxml.etree.FallbackElementClassLookup-class.html#__init__,Method lxml.etree.HTMLParser.__init__()=lxml.etree.HTMLParser-class.html#__init__,Method lxml.etree.LxmlError.__init__()=lxml.etree.LxmlError-class.html#__init__,Method lxml.etree.PIBase.__init__()=lxml.etree.PIBase-class.html#__init__,Method lxml.etree.ParseError.__init__()=lxml.etree.ParseError-class.html#__init__,Method lxml.etree.PyErrorLog.__init__()=lxml.etree.PyErrorLog-class.html#__init__,Method lxml.etree.QName.__init__()=lxml.etree.QName-class.html#__init__,Method lxml.etree.RelaxNG.__init__()=lxml.etree.RelaxNG-class.html#__init__,Method lxml.etree.Schematron.__init__()=lxml.etree.Schematron-class.html#__init__,Method lxml.etree.TreeBuilder.__init__()=lxml.etree.TreeBuilder-class.html#__init__,Method lxml.etree.XInclude.__init__()=lxml.etree.XInclude-class.html#__init__,Method lxml.etree.XMLParser.__init__()=lxml.etree.XMLParser-class.html#__init__,Method lxml.etree.XMLSchema.__init__()=lxml.etree.XMLSchema-class.html#__init__,Method lxml.etree.XPath.__init__()=lxml.etree.XPath-class.html#__init__,Method lxml.etree.XPathDocumentEvaluator.__init__()=lxml.etree.XPathDocumentEvaluator-class.html#__init__,Method lxml.etree.XPathElementEvaluator.__init__()=lxml.etree.XPathElementEvaluator-class.html#__init__,Method lxml.etree.XSLT.__init__()=lxml.etree.XSLT-class.html#__init__,Method lxml.etree.XSLTAccessControl.__init__()=lxml.etree.XSLTAccessControl-class.html#__init__,Method lxml.etree._BaseErrorLog.__init__()=lxml.etree._BaseErrorLog-class.html#__init__,Method lxml.etree._DomainErrorLog.__init__()=lxml.etree._DomainErrorLog-class.html#__init__,Method lxml.etree._ErrorLog.__init__()=lxml.etree._ErrorLog-class.html#__init__,Method lxml.etree._ListErrorLog.__init__()=lxml.etree._ListErrorLog-class.html#__init__,Method lxml.etree._RotatingErrorLog.__init__()=lxml.etree._RotatingErrorLog-class.html#__init__,Method lxml.etree._TargetParserResult.__init__()=lxml.etree._TargetParserResult-class.html#__init__,Method lxml.etree._XPathEvaluatorBase.__init__()=lxml.etree._XPathEvaluatorBase-class.html#__init__,Method lxml.etree.iterparse.__init__()=lxml.etree.iterparse-class.html#__init__,Method lxml.etree.iterwalk.__init__()=lxml.etree.iterwalk-class.html#__init__,Method lxml.etree.xmlfile.__init__()=lxml.etree.xmlfile-class.html#__init__,Method lxml.html.CheckboxValues.__init__()=lxml.html.CheckboxValues-class.html#__init__,Method lxml.html.FieldsDict.__init__()=lxml.html.FieldsDict-class.html#__init__,Method lxml.html.HTMLParser.__init__()=lxml.html.HTMLParser-class.html#__init__,Method lxml.html.HtmlElementClassLookup.__init__()=lxml.html.HtmlElementClassLookup-class.html#__init__,Method lxml.html.InputGetter.__init__()=lxml.html.InputGetter-class.html#__init__,Method lxml.html.MultipleSelectOptions.__init__()=lxml.html.MultipleSelectOptions-class.html#__init__,Method lxml.html.XHTMLParser.__init__()=lxml.html.XHTMLParser-class.html#__init__,Method lxml.html._MethodFunc.__init__()=lxml.html._MethodFunc-class.html#__init__,Method lxml.html.clean.Cleaner.__init__()=lxml.html.clean.Cleaner-class.html#__init__,Method lxml.html.formfill.DefaultErrorCreator.__init__()=lxml.html.formfill.DefaultErrorCreator-class.html#__init__,Method lxml.html.html5parser.HTMLParser.__init__()=lxml.html.html5parser.HTMLParser-class.html#__init__,Method lxml.html.html5parser.XHTMLParser.__init__()=lxml.html.html5parser.XHTMLParser-class.html#__init__,Method lxml.isoschematron.Schematron.__init__()=lxml.isoschematron.Schematron-class.html#__init__,Method lxml.objectify.ElementMaker.__init__()=lxml.objectify.ElementMaker-class.html#__init__,Method lxml.objectify.ObjectPath.__init__()=lxml.objectify.ObjectPath-class.html#__init__,Method lxml.objectify.ObjectifyElementClassLookup.__init__()=lxml.objectify.ObjectifyElementClassLookup-class.html#__init__,Method lxml.objectify.PyType.__init__()=lxml.objectify.PyType-class.html#__init__,Method lxml.sax.ElementTreeContentHandler.__init__()=lxml.sax.ElementTreeContentHandler-class.html#__init__,Method lxml.sax.ElementTreeProducer.__init__()=lxml.sax.ElementTreeProducer-class.html#__init__,Method lxml.tests.common_imports.LargeFileLike.__init__()=lxml.tests.common_imports.LargeFileLike-class.html#__init__,Method lxml.tests.common_imports.LargeFileLikeUnicode.__init__()=lxml.tests.common_imports.LargeFileLikeUnicode-class.html#__init__,Method lxml.tests.common_imports.SillyFileLike.__init__()=lxml.tests.common_imports.SillyFileLike-class.html#__init__,Method lxml.tests.dummy_http_server.HTTPRequestCollector.__init__()=lxml.tests.dummy_http_server.HTTPRequestCollector-class.html#__init__,Method lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.__init__()=lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike-class.html#__init__,Method lxml.tests.test_threading.ThreadPipelineTestCase.Worker.__init__()=lxml.tests.test_threading.ThreadPipelineTestCase.Worker-class.html#__init__,Method lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver.__init__()=lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver-class.html#__init__"><a title="lxml.builder.ElementMaker.__init__
lxml.cssselect.CSSSelector.__init__
lxml.doctestcompare._RestoreChecker.__init__
lxml.etree.AttributeBasedElementClassLookup.__init__
lxml.tests.common_imports.LargeFileLike.__init__
lxml.tests.common_imports.LargeFileLikeUnicode.__init__
lxml.tests.common_imports.SillyFileLike.__init__
+lxml.tests.dummy_http_server.HTTPRequestCollector.__init__
lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.__init__
lxml.tests.test_threading.ThreadPipelineTestCase.Worker.__init__
lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver.__init__" class="py-name" href="#" onclick="return doclink('link-2663', '__init__', 'link-2663');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:36 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:13 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<span class="summary-type"> </span>
</td><td class="summary">
<a href="lxml.etree-module.html" class="summary-name">etree</a><br />
- The <tt class="rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-docutils literal rst-rst-rst-docutils literal rst-rst-docutils literal rst-docutils literal">lxml.etree</tt> module implements the extended ElementTree API
+ The <tt class="rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-docutils literal rst-rst-rst-docutils literal rst-rst-docutils literal rst-docutils literal">lxml.etree</tt> module implements the extended ElementTree API
for XML.
</td>
</tr>
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
<h3 class="epydoc">etree</h3>
- The <tt class="rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-docutils literal rst-rst-rst-docutils literal rst-rst-docutils literal rst-docutils literal">lxml.etree</tt> module implements the extended ElementTree API
+ The <tt class="rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-docutils literal rst-rst-rst-docutils literal rst-rst-docutils literal rst-docutils literal">lxml.etree</tt> module implements the extended ElementTree API
for XML.
<dl class="fields">
</dl>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"> </tt>
<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">unittest</tt><tt class="py-op">,</tt> <tt class="py-name">operator</tt><tt class="py-op">,</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-0" class="py-name" targets="Variable lxml.etree.XPath.path=lxml.etree.XPath-class.html#path"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-0', 'path', 'link-0');">path</a></tt><tt class="py-op">,</tt> <tt class="py-name">sys</tt> </tt>
<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"> </tt>
-<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt id="link-1" class="py-name" targets="Variable lxml.tests.test_builder.this_dir=lxml.tests.test_builder-module.html#this_dir,Variable lxml.tests.test_classlookup.this_dir=lxml.tests.test_classlookup-module.html#this_dir,Variable lxml.tests.test_dtd.this_dir=lxml.tests.test_dtd-module.html#this_dir,Variable lxml.tests.test_elementtree.this_dir=lxml.tests.test_elementtree-module.html#this_dir,Variable lxml.tests.test_errors.this_dir=lxml.tests.test_errors-module.html#this_dir,Variable lxml.tests.test_etree.this_dir=lxml.tests.test_etree-module.html#this_dir,Variable lxml.tests.test_htmlparser.this_dir=lxml.tests.test_htmlparser-module.html#this_dir,Variable lxml.tests.test_incremental_xmlfile.this_dir=lxml.tests.test_incremental_xmlfile-module.html#this_dir,Variable lxml.tests.test_io.this_dir=lxml.tests.test_io-module.html#this_dir,Variable lxml.tests.test_isoschematron.this_dir=lxml.tests.test_isoschematron-module.html#this_dir,Variable lxml.tests.test_nsclasses.this_dir=lxml.tests.test_nsclasses-module.html#this_dir,Variable lxml.tests.test_objectify.this_dir=lxml.tests.test_objectify-module.html#this_dir,Variable lxml.tests.test_pyclasslookup.this_dir=lxml.tests.test_pyclasslookup-module.html#this_dir,Variable lxml.tests.test_relaxng.this_dir=lxml.tests.test_relaxng-module.html#this_dir,Variable lxml.tests.test_sax.this_dir=lxml.tests.test_sax-module.html#this_dir,Variable lxml.tests.test_schematron.this_dir=lxml.tests.test_schematron-module.html#this_dir,Variable lxml.tests.test_threading.this_dir=lxml.tests.test_threading-module.html#this_dir,Variable lxml.tests.test_unicode.this_dir=lxml.tests.test_unicode-module.html#this_dir,Variable lxml.tests.test_xmlschema.this_dir=lxml.tests.test_xmlschema-module.html#this_dir,Variable lxml.tests.test_xpathevaluator.this_dir=lxml.tests.test_xpathevaluator-module.html#this_dir,Variable lxml.tests.test_xslt.this_dir=lxml.tests.test_xslt-module.html#this_dir"><a title="lxml.tests.test_builder.this_dir
+<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt id="link-1" class="py-name" targets="Variable lxml.tests.test_builder.this_dir=lxml.tests.test_builder-module.html#this_dir,Variable lxml.tests.test_classlookup.this_dir=lxml.tests.test_classlookup-module.html#this_dir,Variable lxml.tests.test_dtd.this_dir=lxml.tests.test_dtd-module.html#this_dir,Variable lxml.tests.test_elementtree.this_dir=lxml.tests.test_elementtree-module.html#this_dir,Variable lxml.tests.test_errors.this_dir=lxml.tests.test_errors-module.html#this_dir,Variable lxml.tests.test_etree.this_dir=lxml.tests.test_etree-module.html#this_dir,Variable lxml.tests.test_htmlparser.this_dir=lxml.tests.test_htmlparser-module.html#this_dir,Variable lxml.tests.test_http_io.this_dir=lxml.tests.test_http_io-module.html#this_dir,Variable lxml.tests.test_incremental_xmlfile.this_dir=lxml.tests.test_incremental_xmlfile-module.html#this_dir,Variable lxml.tests.test_io.this_dir=lxml.tests.test_io-module.html#this_dir,Variable lxml.tests.test_isoschematron.this_dir=lxml.tests.test_isoschematron-module.html#this_dir,Variable lxml.tests.test_nsclasses.this_dir=lxml.tests.test_nsclasses-module.html#this_dir,Variable lxml.tests.test_objectify.this_dir=lxml.tests.test_objectify-module.html#this_dir,Variable lxml.tests.test_pyclasslookup.this_dir=lxml.tests.test_pyclasslookup-module.html#this_dir,Variable lxml.tests.test_relaxng.this_dir=lxml.tests.test_relaxng-module.html#this_dir,Variable lxml.tests.test_sax.this_dir=lxml.tests.test_sax-module.html#this_dir,Variable lxml.tests.test_schematron.this_dir=lxml.tests.test_schematron-module.html#this_dir,Variable lxml.tests.test_threading.this_dir=lxml.tests.test_threading-module.html#this_dir,Variable lxml.tests.test_unicode.this_dir=lxml.tests.test_unicode-module.html#this_dir,Variable lxml.tests.test_xmlschema.this_dir=lxml.tests.test_xmlschema-module.html#this_dir,Variable lxml.tests.test_xpathevaluator.this_dir=lxml.tests.test_xpathevaluator-module.html#this_dir,Variable lxml.tests.test_xslt.this_dir=lxml.tests.test_xslt-module.html#this_dir"><a title="lxml.tests.test_builder.this_dir
lxml.tests.test_classlookup.this_dir
lxml.tests.test_dtd.this_dir
lxml.tests.test_elementtree.this_dir
lxml.tests.test_errors.this_dir
lxml.tests.test_etree.this_dir
lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
lxml.tests.test_incremental_xmlfile.this_dir
lxml.tests.test_io.this_dir
lxml.tests.test_isoschematron.this_dir
lxml.tests.test_errors.this_dir
lxml.tests.test_etree.this_dir
lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
lxml.tests.test_incremental_xmlfile.this_dir
lxml.tests.test_io.this_dir
lxml.tests.test_isoschematron.this_dir
lxml.tests.test_errors.this_dir
lxml.tests.test_etree.this_dir
lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
lxml.tests.test_incremental_xmlfile.this_dir
lxml.tests.test_io.this_dir
lxml.tests.test_isoschematron.this_dir
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:36 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:13 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<span class="summary-type"> </span>
</td><td class="summary">
<a href="lxml.etree-module.html" class="summary-name">etree</a><br />
- The <tt class="rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-docutils literal rst-rst-rst-docutils literal rst-rst-docutils literal rst-docutils literal">lxml.etree</tt> module implements the extended ElementTree API
+ The <tt class="rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-docutils literal rst-rst-rst-docutils literal rst-rst-docutils literal rst-docutils literal">lxml.etree</tt> module implements the extended ElementTree API
for XML.
</td>
</tr>
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
<h3 class="epydoc">etree</h3>
- The <tt class="rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-docutils literal rst-rst-rst-docutils literal rst-rst-docutils literal rst-docutils literal">lxml.etree</tt> module implements the extended ElementTree API
+ The <tt class="rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-docutils literal rst-rst-rst-docutils literal rst-rst-docutils literal rst-docutils literal">lxml.etree</tt> module implements the extended ElementTree API
for XML.
<dl class="fields">
</dl>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"> </tt>
<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">unittest</tt><tt class="py-op">,</tt> <tt class="py-name">sys</tt><tt class="py-op">,</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-0" class="py-name" targets="Variable lxml.etree.XPath.path=lxml.etree.XPath-class.html#path"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-0', 'path', 'link-0');">path</a></tt> </tt>
<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"> </tt>
-<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt id="link-1" class="py-name" targets="Variable lxml.tests.test_builder.this_dir=lxml.tests.test_builder-module.html#this_dir,Variable lxml.tests.test_classlookup.this_dir=lxml.tests.test_classlookup-module.html#this_dir,Variable lxml.tests.test_dtd.this_dir=lxml.tests.test_dtd-module.html#this_dir,Variable lxml.tests.test_elementtree.this_dir=lxml.tests.test_elementtree-module.html#this_dir,Variable lxml.tests.test_errors.this_dir=lxml.tests.test_errors-module.html#this_dir,Variable lxml.tests.test_etree.this_dir=lxml.tests.test_etree-module.html#this_dir,Variable lxml.tests.test_htmlparser.this_dir=lxml.tests.test_htmlparser-module.html#this_dir,Variable lxml.tests.test_incremental_xmlfile.this_dir=lxml.tests.test_incremental_xmlfile-module.html#this_dir,Variable lxml.tests.test_io.this_dir=lxml.tests.test_io-module.html#this_dir,Variable lxml.tests.test_isoschematron.this_dir=lxml.tests.test_isoschematron-module.html#this_dir,Variable lxml.tests.test_nsclasses.this_dir=lxml.tests.test_nsclasses-module.html#this_dir,Variable lxml.tests.test_objectify.this_dir=lxml.tests.test_objectify-module.html#this_dir,Variable lxml.tests.test_pyclasslookup.this_dir=lxml.tests.test_pyclasslookup-module.html#this_dir,Variable lxml.tests.test_relaxng.this_dir=lxml.tests.test_relaxng-module.html#this_dir,Variable lxml.tests.test_sax.this_dir=lxml.tests.test_sax-module.html#this_dir,Variable lxml.tests.test_schematron.this_dir=lxml.tests.test_schematron-module.html#this_dir,Variable lxml.tests.test_threading.this_dir=lxml.tests.test_threading-module.html#this_dir,Variable lxml.tests.test_unicode.this_dir=lxml.tests.test_unicode-module.html#this_dir,Variable lxml.tests.test_xmlschema.this_dir=lxml.tests.test_xmlschema-module.html#this_dir,Variable lxml.tests.test_xpathevaluator.this_dir=lxml.tests.test_xpathevaluator-module.html#this_dir,Variable lxml.tests.test_xslt.this_dir=lxml.tests.test_xslt-module.html#this_dir"><a title="lxml.tests.test_builder.this_dir
+<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt id="link-1" class="py-name" targets="Variable lxml.tests.test_builder.this_dir=lxml.tests.test_builder-module.html#this_dir,Variable lxml.tests.test_classlookup.this_dir=lxml.tests.test_classlookup-module.html#this_dir,Variable lxml.tests.test_dtd.this_dir=lxml.tests.test_dtd-module.html#this_dir,Variable lxml.tests.test_elementtree.this_dir=lxml.tests.test_elementtree-module.html#this_dir,Variable lxml.tests.test_errors.this_dir=lxml.tests.test_errors-module.html#this_dir,Variable lxml.tests.test_etree.this_dir=lxml.tests.test_etree-module.html#this_dir,Variable lxml.tests.test_htmlparser.this_dir=lxml.tests.test_htmlparser-module.html#this_dir,Variable lxml.tests.test_http_io.this_dir=lxml.tests.test_http_io-module.html#this_dir,Variable lxml.tests.test_incremental_xmlfile.this_dir=lxml.tests.test_incremental_xmlfile-module.html#this_dir,Variable lxml.tests.test_io.this_dir=lxml.tests.test_io-module.html#this_dir,Variable lxml.tests.test_isoschematron.this_dir=lxml.tests.test_isoschematron-module.html#this_dir,Variable lxml.tests.test_nsclasses.this_dir=lxml.tests.test_nsclasses-module.html#this_dir,Variable lxml.tests.test_objectify.this_dir=lxml.tests.test_objectify-module.html#this_dir,Variable lxml.tests.test_pyclasslookup.this_dir=lxml.tests.test_pyclasslookup-module.html#this_dir,Variable lxml.tests.test_relaxng.this_dir=lxml.tests.test_relaxng-module.html#this_dir,Variable lxml.tests.test_sax.this_dir=lxml.tests.test_sax-module.html#this_dir,Variable lxml.tests.test_schematron.this_dir=lxml.tests.test_schematron-module.html#this_dir,Variable lxml.tests.test_threading.this_dir=lxml.tests.test_threading-module.html#this_dir,Variable lxml.tests.test_unicode.this_dir=lxml.tests.test_unicode-module.html#this_dir,Variable lxml.tests.test_xmlschema.this_dir=lxml.tests.test_xmlschema-module.html#this_dir,Variable lxml.tests.test_xpathevaluator.this_dir=lxml.tests.test_xpathevaluator-module.html#this_dir,Variable lxml.tests.test_xslt.this_dir=lxml.tests.test_xslt-module.html#this_dir"><a title="lxml.tests.test_builder.this_dir
lxml.tests.test_classlookup.this_dir
lxml.tests.test_dtd.this_dir
lxml.tests.test_elementtree.this_dir
lxml.tests.test_errors.this_dir
lxml.tests.test_etree.this_dir
lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
lxml.tests.test_incremental_xmlfile.this_dir
lxml.tests.test_io.this_dir
lxml.tests.test_isoschematron.this_dir
lxml.tests.test_errors.this_dir
lxml.tests.test_etree.this_dir
lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
lxml.tests.test_incremental_xmlfile.this_dir
lxml.tests.test_io.this_dir
lxml.tests.test_isoschematron.this_dir
lxml.tests.test_errors.this_dir
lxml.tests.test_etree.this_dir
lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
lxml.tests.test_incremental_xmlfile.this_dir
lxml.tests.test_io.this_dir
lxml.tests.test_isoschematron.this_dir
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:36 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:12 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"> </tt>
<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">unittest</tt><tt class="py-op">,</tt> <tt class="py-name">sys</tt><tt class="py-op">,</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-0" class="py-name" targets="Variable lxml.etree.XPath.path=lxml.etree.XPath-class.html#path"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-0', 'path', 'link-0');">path</a></tt> </tt>
<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"> </tt>
-<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt id="link-1" class="py-name" targets="Variable lxml.tests.test_builder.this_dir=lxml.tests.test_builder-module.html#this_dir,Variable lxml.tests.test_classlookup.this_dir=lxml.tests.test_classlookup-module.html#this_dir,Variable lxml.tests.test_dtd.this_dir=lxml.tests.test_dtd-module.html#this_dir,Variable lxml.tests.test_elementtree.this_dir=lxml.tests.test_elementtree-module.html#this_dir,Variable lxml.tests.test_errors.this_dir=lxml.tests.test_errors-module.html#this_dir,Variable lxml.tests.test_etree.this_dir=lxml.tests.test_etree-module.html#this_dir,Variable lxml.tests.test_htmlparser.this_dir=lxml.tests.test_htmlparser-module.html#this_dir,Variable lxml.tests.test_incremental_xmlfile.this_dir=lxml.tests.test_incremental_xmlfile-module.html#this_dir,Variable lxml.tests.test_io.this_dir=lxml.tests.test_io-module.html#this_dir,Variable lxml.tests.test_isoschematron.this_dir=lxml.tests.test_isoschematron-module.html#this_dir,Variable lxml.tests.test_nsclasses.this_dir=lxml.tests.test_nsclasses-module.html#this_dir,Variable lxml.tests.test_objectify.this_dir=lxml.tests.test_objectify-module.html#this_dir,Variable lxml.tests.test_pyclasslookup.this_dir=lxml.tests.test_pyclasslookup-module.html#this_dir,Variable lxml.tests.test_relaxng.this_dir=lxml.tests.test_relaxng-module.html#this_dir,Variable lxml.tests.test_sax.this_dir=lxml.tests.test_sax-module.html#this_dir,Variable lxml.tests.test_schematron.this_dir=lxml.tests.test_schematron-module.html#this_dir,Variable lxml.tests.test_threading.this_dir=lxml.tests.test_threading-module.html#this_dir,Variable lxml.tests.test_unicode.this_dir=lxml.tests.test_unicode-module.html#this_dir,Variable lxml.tests.test_xmlschema.this_dir=lxml.tests.test_xmlschema-module.html#this_dir,Variable lxml.tests.test_xpathevaluator.this_dir=lxml.tests.test_xpathevaluator-module.html#this_dir,Variable lxml.tests.test_xslt.this_dir=lxml.tests.test_xslt-module.html#this_dir"><a title="lxml.tests.test_builder.this_dir
+<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt id="link-1" class="py-name" targets="Variable lxml.tests.test_builder.this_dir=lxml.tests.test_builder-module.html#this_dir,Variable lxml.tests.test_classlookup.this_dir=lxml.tests.test_classlookup-module.html#this_dir,Variable lxml.tests.test_dtd.this_dir=lxml.tests.test_dtd-module.html#this_dir,Variable lxml.tests.test_elementtree.this_dir=lxml.tests.test_elementtree-module.html#this_dir,Variable lxml.tests.test_errors.this_dir=lxml.tests.test_errors-module.html#this_dir,Variable lxml.tests.test_etree.this_dir=lxml.tests.test_etree-module.html#this_dir,Variable lxml.tests.test_htmlparser.this_dir=lxml.tests.test_htmlparser-module.html#this_dir,Variable lxml.tests.test_http_io.this_dir=lxml.tests.test_http_io-module.html#this_dir,Variable lxml.tests.test_incremental_xmlfile.this_dir=lxml.tests.test_incremental_xmlfile-module.html#this_dir,Variable lxml.tests.test_io.this_dir=lxml.tests.test_io-module.html#this_dir,Variable lxml.tests.test_isoschematron.this_dir=lxml.tests.test_isoschematron-module.html#this_dir,Variable lxml.tests.test_nsclasses.this_dir=lxml.tests.test_nsclasses-module.html#this_dir,Variable lxml.tests.test_objectify.this_dir=lxml.tests.test_objectify-module.html#this_dir,Variable lxml.tests.test_pyclasslookup.this_dir=lxml.tests.test_pyclasslookup-module.html#this_dir,Variable lxml.tests.test_relaxng.this_dir=lxml.tests.test_relaxng-module.html#this_dir,Variable lxml.tests.test_sax.this_dir=lxml.tests.test_sax-module.html#this_dir,Variable lxml.tests.test_schematron.this_dir=lxml.tests.test_schematron-module.html#this_dir,Variable lxml.tests.test_threading.this_dir=lxml.tests.test_threading-module.html#this_dir,Variable lxml.tests.test_unicode.this_dir=lxml.tests.test_unicode-module.html#this_dir,Variable lxml.tests.test_xmlschema.this_dir=lxml.tests.test_xmlschema-module.html#this_dir,Variable lxml.tests.test_xpathevaluator.this_dir=lxml.tests.test_xpathevaluator-module.html#this_dir,Variable lxml.tests.test_xslt.this_dir=lxml.tests.test_xslt-module.html#this_dir"><a title="lxml.tests.test_builder.this_dir
lxml.tests.test_classlookup.this_dir
lxml.tests.test_dtd.this_dir
lxml.tests.test_elementtree.this_dir
lxml.tests.test_errors.this_dir
lxml.tests.test_etree.this_dir
lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
lxml.tests.test_incremental_xmlfile.this_dir
lxml.tests.test_io.this_dir
lxml.tests.test_isoschematron.this_dir
lxml.tests.test_errors.this_dir
lxml.tests.test_etree.this_dir
lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
lxml.tests.test_incremental_xmlfile.this_dir
lxml.tests.test_io.this_dir
lxml.tests.test_isoschematron.this_dir
lxml.tests.test_errors.this_dir
lxml.tests.test_etree.this_dir
lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
lxml.tests.test_incremental_xmlfile.this_dir
lxml.tests.test_io.this_dir
lxml.tests.test_isoschematron.this_dir
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:38 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:13 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"> </tt>
<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">unittest</tt><tt class="py-op">,</tt> <tt class="py-name">sys</tt><tt class="py-op">,</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-0" class="py-name" targets="Variable lxml.etree.XPath.path=lxml.etree.XPath-class.html#path"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-0', 'path', 'link-0');">path</a></tt> </tt>
<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"> </tt>
-<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt id="link-1" class="py-name" targets="Variable lxml.tests.test_builder.this_dir=lxml.tests.test_builder-module.html#this_dir,Variable lxml.tests.test_classlookup.this_dir=lxml.tests.test_classlookup-module.html#this_dir,Variable lxml.tests.test_dtd.this_dir=lxml.tests.test_dtd-module.html#this_dir,Variable lxml.tests.test_elementtree.this_dir=lxml.tests.test_elementtree-module.html#this_dir,Variable lxml.tests.test_errors.this_dir=lxml.tests.test_errors-module.html#this_dir,Variable lxml.tests.test_etree.this_dir=lxml.tests.test_etree-module.html#this_dir,Variable lxml.tests.test_htmlparser.this_dir=lxml.tests.test_htmlparser-module.html#this_dir,Variable lxml.tests.test_incremental_xmlfile.this_dir=lxml.tests.test_incremental_xmlfile-module.html#this_dir,Variable lxml.tests.test_io.this_dir=lxml.tests.test_io-module.html#this_dir,Variable lxml.tests.test_isoschematron.this_dir=lxml.tests.test_isoschematron-module.html#this_dir,Variable lxml.tests.test_nsclasses.this_dir=lxml.tests.test_nsclasses-module.html#this_dir,Variable lxml.tests.test_objectify.this_dir=lxml.tests.test_objectify-module.html#this_dir,Variable lxml.tests.test_pyclasslookup.this_dir=lxml.tests.test_pyclasslookup-module.html#this_dir,Variable lxml.tests.test_relaxng.this_dir=lxml.tests.test_relaxng-module.html#this_dir,Variable lxml.tests.test_sax.this_dir=lxml.tests.test_sax-module.html#this_dir,Variable lxml.tests.test_schematron.this_dir=lxml.tests.test_schematron-module.html#this_dir,Variable lxml.tests.test_threading.this_dir=lxml.tests.test_threading-module.html#this_dir,Variable lxml.tests.test_unicode.this_dir=lxml.tests.test_unicode-module.html#this_dir,Variable lxml.tests.test_xmlschema.this_dir=lxml.tests.test_xmlschema-module.html#this_dir,Variable lxml.tests.test_xpathevaluator.this_dir=lxml.tests.test_xpathevaluator-module.html#this_dir,Variable lxml.tests.test_xslt.this_dir=lxml.tests.test_xslt-module.html#this_dir"><a title="lxml.tests.test_builder.this_dir
+<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt id="link-1" class="py-name" targets="Variable lxml.tests.test_builder.this_dir=lxml.tests.test_builder-module.html#this_dir,Variable lxml.tests.test_classlookup.this_dir=lxml.tests.test_classlookup-module.html#this_dir,Variable lxml.tests.test_dtd.this_dir=lxml.tests.test_dtd-module.html#this_dir,Variable lxml.tests.test_elementtree.this_dir=lxml.tests.test_elementtree-module.html#this_dir,Variable lxml.tests.test_errors.this_dir=lxml.tests.test_errors-module.html#this_dir,Variable lxml.tests.test_etree.this_dir=lxml.tests.test_etree-module.html#this_dir,Variable lxml.tests.test_htmlparser.this_dir=lxml.tests.test_htmlparser-module.html#this_dir,Variable lxml.tests.test_http_io.this_dir=lxml.tests.test_http_io-module.html#this_dir,Variable lxml.tests.test_incremental_xmlfile.this_dir=lxml.tests.test_incremental_xmlfile-module.html#this_dir,Variable lxml.tests.test_io.this_dir=lxml.tests.test_io-module.html#this_dir,Variable lxml.tests.test_isoschematron.this_dir=lxml.tests.test_isoschematron-module.html#this_dir,Variable lxml.tests.test_nsclasses.this_dir=lxml.tests.test_nsclasses-module.html#this_dir,Variable lxml.tests.test_objectify.this_dir=lxml.tests.test_objectify-module.html#this_dir,Variable lxml.tests.test_pyclasslookup.this_dir=lxml.tests.test_pyclasslookup-module.html#this_dir,Variable lxml.tests.test_relaxng.this_dir=lxml.tests.test_relaxng-module.html#this_dir,Variable lxml.tests.test_sax.this_dir=lxml.tests.test_sax-module.html#this_dir,Variable lxml.tests.test_schematron.this_dir=lxml.tests.test_schematron-module.html#this_dir,Variable lxml.tests.test_threading.this_dir=lxml.tests.test_threading-module.html#this_dir,Variable lxml.tests.test_unicode.this_dir=lxml.tests.test_unicode-module.html#this_dir,Variable lxml.tests.test_xmlschema.this_dir=lxml.tests.test_xmlschema-module.html#this_dir,Variable lxml.tests.test_xpathevaluator.this_dir=lxml.tests.test_xpathevaluator-module.html#this_dir,Variable lxml.tests.test_xslt.this_dir=lxml.tests.test_xslt-module.html#this_dir"><a title="lxml.tests.test_builder.this_dir
lxml.tests.test_classlookup.this_dir
lxml.tests.test_dtd.this_dir
lxml.tests.test_elementtree.this_dir
lxml.tests.test_errors.this_dir
lxml.tests.test_etree.this_dir
lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
lxml.tests.test_incremental_xmlfile.this_dir
lxml.tests.test_io.this_dir
lxml.tests.test_isoschematron.this_dir
lxml.tests.test_errors.this_dir
lxml.tests.test_etree.this_dir
lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
lxml.tests.test_incremental_xmlfile.this_dir
lxml.tests.test_io.this_dir
lxml.tests.test_isoschematron.this_dir
lxml.tests.test_errors.this_dir
lxml.tests.test_etree.this_dir
lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
lxml.tests.test_incremental_xmlfile.this_dir
lxml.tests.test_io.this_dir
lxml.tests.test_isoschematron.this_dir
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:38 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:12 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"> </tt>
<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">unittest</tt><tt class="py-op">,</tt> <tt class="py-name">threading</tt><tt class="py-op">,</tt> <tt class="py-name">sys</tt><tt class="py-op">,</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-0" class="py-name" targets="Variable lxml.etree.XPath.path=lxml.etree.XPath-class.html#path"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-0', 'path', 'link-0');">path</a></tt> </tt>
<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"> </tt>
-<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt id="link-1" class="py-name" targets="Variable lxml.tests.test_builder.this_dir=lxml.tests.test_builder-module.html#this_dir,Variable lxml.tests.test_classlookup.this_dir=lxml.tests.test_classlookup-module.html#this_dir,Variable lxml.tests.test_dtd.this_dir=lxml.tests.test_dtd-module.html#this_dir,Variable lxml.tests.test_elementtree.this_dir=lxml.tests.test_elementtree-module.html#this_dir,Variable lxml.tests.test_errors.this_dir=lxml.tests.test_errors-module.html#this_dir,Variable lxml.tests.test_etree.this_dir=lxml.tests.test_etree-module.html#this_dir,Variable lxml.tests.test_htmlparser.this_dir=lxml.tests.test_htmlparser-module.html#this_dir,Variable lxml.tests.test_incremental_xmlfile.this_dir=lxml.tests.test_incremental_xmlfile-module.html#this_dir,Variable lxml.tests.test_io.this_dir=lxml.tests.test_io-module.html#this_dir,Variable lxml.tests.test_isoschematron.this_dir=lxml.tests.test_isoschematron-module.html#this_dir,Variable lxml.tests.test_nsclasses.this_dir=lxml.tests.test_nsclasses-module.html#this_dir,Variable lxml.tests.test_objectify.this_dir=lxml.tests.test_objectify-module.html#this_dir,Variable lxml.tests.test_pyclasslookup.this_dir=lxml.tests.test_pyclasslookup-module.html#this_dir,Variable lxml.tests.test_relaxng.this_dir=lxml.tests.test_relaxng-module.html#this_dir,Variable lxml.tests.test_sax.this_dir=lxml.tests.test_sax-module.html#this_dir,Variable lxml.tests.test_schematron.this_dir=lxml.tests.test_schematron-module.html#this_dir,Variable lxml.tests.test_threading.this_dir=lxml.tests.test_threading-module.html#this_dir,Variable lxml.tests.test_unicode.this_dir=lxml.tests.test_unicode-module.html#this_dir,Variable lxml.tests.test_xmlschema.this_dir=lxml.tests.test_xmlschema-module.html#this_dir,Variable lxml.tests.test_xpathevaluator.this_dir=lxml.tests.test_xpathevaluator-module.html#this_dir,Variable lxml.tests.test_xslt.this_dir=lxml.tests.test_xslt-module.html#this_dir"><a title="lxml.tests.test_builder.this_dir
+<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt id="link-1" class="py-name" targets="Variable lxml.tests.test_builder.this_dir=lxml.tests.test_builder-module.html#this_dir,Variable lxml.tests.test_classlookup.this_dir=lxml.tests.test_classlookup-module.html#this_dir,Variable lxml.tests.test_dtd.this_dir=lxml.tests.test_dtd-module.html#this_dir,Variable lxml.tests.test_elementtree.this_dir=lxml.tests.test_elementtree-module.html#this_dir,Variable lxml.tests.test_errors.this_dir=lxml.tests.test_errors-module.html#this_dir,Variable lxml.tests.test_etree.this_dir=lxml.tests.test_etree-module.html#this_dir,Variable lxml.tests.test_htmlparser.this_dir=lxml.tests.test_htmlparser-module.html#this_dir,Variable lxml.tests.test_http_io.this_dir=lxml.tests.test_http_io-module.html#this_dir,Variable lxml.tests.test_incremental_xmlfile.this_dir=lxml.tests.test_incremental_xmlfile-module.html#this_dir,Variable lxml.tests.test_io.this_dir=lxml.tests.test_io-module.html#this_dir,Variable lxml.tests.test_isoschematron.this_dir=lxml.tests.test_isoschematron-module.html#this_dir,Variable lxml.tests.test_nsclasses.this_dir=lxml.tests.test_nsclasses-module.html#this_dir,Variable lxml.tests.test_objectify.this_dir=lxml.tests.test_objectify-module.html#this_dir,Variable lxml.tests.test_pyclasslookup.this_dir=lxml.tests.test_pyclasslookup-module.html#this_dir,Variable lxml.tests.test_relaxng.this_dir=lxml.tests.test_relaxng-module.html#this_dir,Variable lxml.tests.test_sax.this_dir=lxml.tests.test_sax-module.html#this_dir,Variable lxml.tests.test_schematron.this_dir=lxml.tests.test_schematron-module.html#this_dir,Variable lxml.tests.test_threading.this_dir=lxml.tests.test_threading-module.html#this_dir,Variable lxml.tests.test_unicode.this_dir=lxml.tests.test_unicode-module.html#this_dir,Variable lxml.tests.test_xmlschema.this_dir=lxml.tests.test_xmlschema-module.html#this_dir,Variable lxml.tests.test_xpathevaluator.this_dir=lxml.tests.test_xpathevaluator-module.html#this_dir,Variable lxml.tests.test_xslt.this_dir=lxml.tests.test_xslt-module.html#this_dir"><a title="lxml.tests.test_builder.this_dir
lxml.tests.test_classlookup.this_dir
lxml.tests.test_dtd.this_dir
lxml.tests.test_elementtree.this_dir
lxml.tests.test_errors.this_dir
lxml.tests.test_etree.this_dir
lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
lxml.tests.test_incremental_xmlfile.this_dir
lxml.tests.test_io.this_dir
lxml.tests.test_isoschematron.this_dir
lxml.tests.test_errors.this_dir
lxml.tests.test_etree.this_dir
lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
lxml.tests.test_incremental_xmlfile.this_dir
lxml.tests.test_io.this_dir
lxml.tests.test_isoschematron.this_dir
lxml.tests.test_errors.this_dir
lxml.tests.test_etree.this_dir
lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
lxml.tests.test_incremental_xmlfile.this_dir
lxml.tests.test_io.this_dir
lxml.tests.test_isoschematron.this_dir
<a name="L295"></a><tt class="py-lineno">295</tt> <tt class="py-line"> </tt>
<a name="ThreadPipelineTestCase.Worker"></a><div id="ThreadPipelineTestCase.Worker-def"><a name="L296"></a><tt class="py-lineno">296</tt> <a class="py-toggle" href="#" id="ThreadPipelineTestCase.Worker-toggle" onclick="return toggle('ThreadPipelineTestCase.Worker');">-</a><tt class="py-line"> <tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_threading.ThreadPipelineTestCase.Worker-class.html">Worker</a><tt class="py-op">(</tt><tt class="py-base-class">threading</tt><tt class="py-op">.</tt><tt class="py-base-class">Thread</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="ThreadPipelineTestCase.Worker-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="ThreadPipelineTestCase.Worker-expanded"><a name="ThreadPipelineTestCase.Worker.__init__"></a><div id="ThreadPipelineTestCase.Worker.__init__-def"><a name="L297"></a><tt class="py-lineno">297</tt> <a class="py-toggle" href="#" id="ThreadPipelineTestCase.Worker.__init__-toggle" onclick="return toggle('ThreadPipelineTestCase.Worker.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_threading.ThreadPipelineTestCase.Worker-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">in_queue</tt><tt class="py-op">,</tt> <tt class="py-param">in_count</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-param">kwargs</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ThreadPipelineTestCase.Worker.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++++++++++"></div><div id="ThreadPipelineTestCase.Worker.__init__-expanded"><a name="L298"></a><tt class="py-lineno">298</tt> <tt class="py-line"> <tt class="py-name">threading</tt><tt class="py-op">.</tt><tt class="py-name">Thread</tt><tt class="py-op">.</tt><tt id="link-232" class="py-name" targets="Method lxml.builder.ElementMaker.__init__()=lxml.builder.ElementMaker-class.html#__init__,Method lxml.cssselect.CSSSelector.__init__()=lxml.cssselect.CSSSelector-class.html#__init__,Method lxml.doctestcompare._RestoreChecker.__init__()=lxml.doctestcompare._RestoreChecker-class.html#__init__,Method lxml.etree.AttributeBasedElementClassLookup.__init__()=lxml.etree.AttributeBasedElementClassLookup-class.html#__init__,Method lxml.etree.CommentBase.__init__()=lxml.etree.CommentBase-class.html#__init__,Method lxml.etree.DTD.__init__()=lxml.etree.DTD-class.html#__init__,Method lxml.etree.ETCompatXMLParser.__init__()=lxml.etree.ETCompatXMLParser-class.html#__init__,Method lxml.etree.ETXPath.__init__()=lxml.etree.ETXPath-class.html#__init__,Method lxml.etree.ElementBase.__init__()=lxml.etree.ElementBase-class.html#__init__,Method lxml.etree.ElementDefaultClassLookup.__init__()=lxml.etree.ElementDefaultClassLookup-class.html#__init__,Method lxml.etree.ElementNamespaceClassLookup.__init__()=lxml.etree.ElementNamespaceClassLookup-class.html#__init__,Method lxml.etree.EntityBase.__init__()=lxml.etree.EntityBase-class.html#__init__,Method lxml.etree.FallbackElementClassLookup.__init__()=lxml.etree.FallbackElementClassLookup-class.html#__init__,Method lxml.etree.HTMLParser.__init__()=lxml.etree.HTMLParser-class.html#__init__,Method lxml.etree.LxmlError.__init__()=lxml.etree.LxmlError-class.html#__init__,Method lxml.etree.PIBase.__init__()=lxml.etree.PIBase-class.html#__init__,Method lxml.etree.ParseError.__init__()=lxml.etree.ParseError-class.html#__init__,Method lxml.etree.PyErrorLog.__init__()=lxml.etree.PyErrorLog-class.html#__init__,Method lxml.etree.QName.__init__()=lxml.etree.QName-class.html#__init__,Method lxml.etree.RelaxNG.__init__()=lxml.etree.RelaxNG-class.html#__init__,Method lxml.etree.Schematron.__init__()=lxml.etree.Schematron-class.html#__init__,Method lxml.etree.TreeBuilder.__init__()=lxml.etree.TreeBuilder-class.html#__init__,Method lxml.etree.XInclude.__init__()=lxml.etree.XInclude-class.html#__init__,Method lxml.etree.XMLParser.__init__()=lxml.etree.XMLParser-class.html#__init__,Method lxml.etree.XMLSchema.__init__()=lxml.etree.XMLSchema-class.html#__init__,Method lxml.etree.XPath.__init__()=lxml.etree.XPath-class.html#__init__,Method lxml.etree.XPathDocumentEvaluator.__init__()=lxml.etree.XPathDocumentEvaluator-class.html#__init__,Method lxml.etree.XPathElementEvaluator.__init__()=lxml.etree.XPathElementEvaluator-class.html#__init__,Method lxml.etree.XSLT.__init__()=lxml.etree.XSLT-class.html#__init__,Method lxml.etree.XSLTAccessControl.__init__()=lxml.etree.XSLTAccessControl-class.html#__init__,Method lxml.etree._BaseErrorLog.__init__()=lxml.etree._BaseErrorLog-class.html#__init__,Method lxml.etree._DomainErrorLog.__init__()=lxml.etree._DomainErrorLog-class.html#__init__,Method lxml.etree._ErrorLog.__init__()=lxml.etree._ErrorLog-class.html#__init__,Method lxml.etree._ListErrorLog.__init__()=lxml.etree._ListErrorLog-class.html#__init__,Method lxml.etree._RotatingErrorLog.__init__()=lxml.etree._RotatingErrorLog-class.html#__init__,Method lxml.etree._TargetParserResult.__init__()=lxml.etree._TargetParserResult-class.html#__init__,Method lxml.etree._XPathEvaluatorBase.__init__()=lxml.etree._XPathEvaluatorBase-class.html#__init__,Method lxml.etree.iterparse.__init__()=lxml.etree.iterparse-class.html#__init__,Method lxml.etree.iterwalk.__init__()=lxml.etree.iterwalk-class.html#__init__,Method lxml.etree.xmlfile.__init__()=lxml.etree.xmlfile-class.html#__init__,Method lxml.html.CheckboxValues.__init__()=lxml.html.CheckboxValues-class.html#__init__,Method lxml.html.FieldsDict.__init__()=lxml.html.FieldsDict-class.html#__init__,Method lxml.html.HTMLParser.__init__()=lxml.html.HTMLParser-class.html#__init__,Method lxml.html.HtmlElementClassLookup.__init__()=lxml.html.HtmlElementClassLookup-class.html#__init__,Method lxml.html.InputGetter.__init__()=lxml.html.InputGetter-class.html#__init__,Method lxml.html.MultipleSelectOptions.__init__()=lxml.html.MultipleSelectOptions-class.html#__init__,Method lxml.html.XHTMLParser.__init__()=lxml.html.XHTMLParser-class.html#__init__,Method lxml.html._MethodFunc.__init__()=lxml.html._MethodFunc-class.html#__init__,Method lxml.html.clean.Cleaner.__init__()=lxml.html.clean.Cleaner-class.html#__init__,Method lxml.html.formfill.DefaultErrorCreator.__init__()=lxml.html.formfill.DefaultErrorCreator-class.html#__init__,Method lxml.html.html5parser.HTMLParser.__init__()=lxml.html.html5parser.HTMLParser-class.html#__init__,Method lxml.html.html5parser.XHTMLParser.__init__()=lxml.html.html5parser.XHTMLParser-class.html#__init__,Method lxml.isoschematron.Schematron.__init__()=lxml.isoschematron.Schematron-class.html#__init__,Method lxml.objectify.ElementMaker.__init__()=lxml.objectify.ElementMaker-class.html#__init__,Method lxml.objectify.ObjectPath.__init__()=lxml.objectify.ObjectPath-class.html#__init__,Method lxml.objectify.ObjectifyElementClassLookup.__init__()=lxml.objectify.ObjectifyElementClassLookup-class.html#__init__,Method lxml.objectify.PyType.__init__()=lxml.objectify.PyType-class.html#__init__,Method lxml.sax.ElementTreeContentHandler.__init__()=lxml.sax.ElementTreeContentHandler-class.html#__init__,Method lxml.sax.ElementTreeProducer.__init__()=lxml.sax.ElementTreeProducer-class.html#__init__,Method lxml.tests.common_imports.LargeFileLike.__init__()=lxml.tests.common_imports.LargeFileLike-class.html#__init__,Method lxml.tests.common_imports.LargeFileLikeUnicode.__init__()=lxml.tests.common_imports.LargeFileLikeUnicode-class.html#__init__,Method lxml.tests.common_imports.SillyFileLike.__init__()=lxml.tests.common_imports.SillyFileLike-class.html#__init__,Method lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.__init__()=lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike-class.html#__init__,Method lxml.tests.test_threading.ThreadPipelineTestCase.Worker.__init__()=lxml.tests.test_threading.ThreadPipelineTestCase.Worker-class.html#__init__,Method lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver.__init__()=lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver-class.html#__init__"><a title="lxml.builder.ElementMaker.__init__
+</div><div id="ThreadPipelineTestCase.Worker.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++++++++++"></div><div id="ThreadPipelineTestCase.Worker.__init__-expanded"><a name="L298"></a><tt class="py-lineno">298</tt> <tt class="py-line"> <tt class="py-name">threading</tt><tt class="py-op">.</tt><tt class="py-name">Thread</tt><tt class="py-op">.</tt><tt id="link-232" class="py-name" targets="Method lxml.builder.ElementMaker.__init__()=lxml.builder.ElementMaker-class.html#__init__,Method lxml.cssselect.CSSSelector.__init__()=lxml.cssselect.CSSSelector-class.html#__init__,Method lxml.doctestcompare._RestoreChecker.__init__()=lxml.doctestcompare._RestoreChecker-class.html#__init__,Method lxml.etree.AttributeBasedElementClassLookup.__init__()=lxml.etree.AttributeBasedElementClassLookup-class.html#__init__,Method lxml.etree.CommentBase.__init__()=lxml.etree.CommentBase-class.html#__init__,Method lxml.etree.DTD.__init__()=lxml.etree.DTD-class.html#__init__,Method lxml.etree.ETCompatXMLParser.__init__()=lxml.etree.ETCompatXMLParser-class.html#__init__,Method lxml.etree.ETXPath.__init__()=lxml.etree.ETXPath-class.html#__init__,Method lxml.etree.ElementBase.__init__()=lxml.etree.ElementBase-class.html#__init__,Method lxml.etree.ElementDefaultClassLookup.__init__()=lxml.etree.ElementDefaultClassLookup-class.html#__init__,Method lxml.etree.ElementNamespaceClassLookup.__init__()=lxml.etree.ElementNamespaceClassLookup-class.html#__init__,Method lxml.etree.EntityBase.__init__()=lxml.etree.EntityBase-class.html#__init__,Method lxml.etree.FallbackElementClassLookup.__init__()=lxml.etree.FallbackElementClassLookup-class.html#__init__,Method lxml.etree.HTMLParser.__init__()=lxml.etree.HTMLParser-class.html#__init__,Method lxml.etree.LxmlError.__init__()=lxml.etree.LxmlError-class.html#__init__,Method lxml.etree.PIBase.__init__()=lxml.etree.PIBase-class.html#__init__,Method lxml.etree.ParseError.__init__()=lxml.etree.ParseError-class.html#__init__,Method lxml.etree.PyErrorLog.__init__()=lxml.etree.PyErrorLog-class.html#__init__,Method lxml.etree.QName.__init__()=lxml.etree.QName-class.html#__init__,Method lxml.etree.RelaxNG.__init__()=lxml.etree.RelaxNG-class.html#__init__,Method lxml.etree.Schematron.__init__()=lxml.etree.Schematron-class.html#__init__,Method lxml.etree.TreeBuilder.__init__()=lxml.etree.TreeBuilder-class.html#__init__,Method lxml.etree.XInclude.__init__()=lxml.etree.XInclude-class.html#__init__,Method lxml.etree.XMLParser.__init__()=lxml.etree.XMLParser-class.html#__init__,Method lxml.etree.XMLSchema.__init__()=lxml.etree.XMLSchema-class.html#__init__,Method lxml.etree.XPath.__init__()=lxml.etree.XPath-class.html#__init__,Method lxml.etree.XPathDocumentEvaluator.__init__()=lxml.etree.XPathDocumentEvaluator-class.html#__init__,Method lxml.etree.XPathElementEvaluator.__init__()=lxml.etree.XPathElementEvaluator-class.html#__init__,Method lxml.etree.XSLT.__init__()=lxml.etree.XSLT-class.html#__init__,Method lxml.etree.XSLTAccessControl.__init__()=lxml.etree.XSLTAccessControl-class.html#__init__,Method lxml.etree._BaseErrorLog.__init__()=lxml.etree._BaseErrorLog-class.html#__init__,Method lxml.etree._DomainErrorLog.__init__()=lxml.etree._DomainErrorLog-class.html#__init__,Method lxml.etree._ErrorLog.__init__()=lxml.etree._ErrorLog-class.html#__init__,Method lxml.etree._ListErrorLog.__init__()=lxml.etree._ListErrorLog-class.html#__init__,Method lxml.etree._RotatingErrorLog.__init__()=lxml.etree._RotatingErrorLog-class.html#__init__,Method lxml.etree._TargetParserResult.__init__()=lxml.etree._TargetParserResult-class.html#__init__,Method lxml.etree._XPathEvaluatorBase.__init__()=lxml.etree._XPathEvaluatorBase-class.html#__init__,Method lxml.etree.iterparse.__init__()=lxml.etree.iterparse-class.html#__init__,Method lxml.etree.iterwalk.__init__()=lxml.etree.iterwalk-class.html#__init__,Method lxml.etree.xmlfile.__init__()=lxml.etree.xmlfile-class.html#__init__,Method lxml.html.CheckboxValues.__init__()=lxml.html.CheckboxValues-class.html#__init__,Method lxml.html.FieldsDict.__init__()=lxml.html.FieldsDict-class.html#__init__,Method lxml.html.HTMLParser.__init__()=lxml.html.HTMLParser-class.html#__init__,Method lxml.html.HtmlElementClassLookup.__init__()=lxml.html.HtmlElementClassLookup-class.html#__init__,Method lxml.html.InputGetter.__init__()=lxml.html.InputGetter-class.html#__init__,Method lxml.html.MultipleSelectOptions.__init__()=lxml.html.MultipleSelectOptions-class.html#__init__,Method lxml.html.XHTMLParser.__init__()=lxml.html.XHTMLParser-class.html#__init__,Method lxml.html._MethodFunc.__init__()=lxml.html._MethodFunc-class.html#__init__,Method lxml.html.clean.Cleaner.__init__()=lxml.html.clean.Cleaner-class.html#__init__,Method lxml.html.formfill.DefaultErrorCreator.__init__()=lxml.html.formfill.DefaultErrorCreator-class.html#__init__,Method lxml.html.html5parser.HTMLParser.__init__()=lxml.html.html5parser.HTMLParser-class.html#__init__,Method lxml.html.html5parser.XHTMLParser.__init__()=lxml.html.html5parser.XHTMLParser-class.html#__init__,Method lxml.isoschematron.Schematron.__init__()=lxml.isoschematron.Schematron-class.html#__init__,Method lxml.objectify.ElementMaker.__init__()=lxml.objectify.ElementMaker-class.html#__init__,Method lxml.objectify.ObjectPath.__init__()=lxml.objectify.ObjectPath-class.html#__init__,Method lxml.objectify.ObjectifyElementClassLookup.__init__()=lxml.objectify.ObjectifyElementClassLookup-class.html#__init__,Method lxml.objectify.PyType.__init__()=lxml.objectify.PyType-class.html#__init__,Method lxml.sax.ElementTreeContentHandler.__init__()=lxml.sax.ElementTreeContentHandler-class.html#__init__,Method lxml.sax.ElementTreeProducer.__init__()=lxml.sax.ElementTreeProducer-class.html#__init__,Method lxml.tests.common_imports.LargeFileLike.__init__()=lxml.tests.common_imports.LargeFileLike-class.html#__init__,Method lxml.tests.common_imports.LargeFileLikeUnicode.__init__()=lxml.tests.common_imports.LargeFileLikeUnicode-class.html#__init__,Method lxml.tests.common_imports.SillyFileLike.__init__()=lxml.tests.common_imports.SillyFileLike-class.html#__init__,Method lxml.tests.dummy_http_server.HTTPRequestCollector.__init__()=lxml.tests.dummy_http_server.HTTPRequestCollector-class.html#__init__,Method lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.__init__()=lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike-class.html#__init__,Method lxml.tests.test_threading.ThreadPipelineTestCase.Worker.__init__()=lxml.tests.test_threading.ThreadPipelineTestCase.Worker-class.html#__init__,Method lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver.__init__()=lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver-class.html#__init__"><a title="lxml.builder.ElementMaker.__init__
lxml.cssselect.CSSSelector.__init__
lxml.doctestcompare._RestoreChecker.__init__
lxml.etree.AttributeBasedElementClassLookup.__init__
lxml.tests.common_imports.LargeFileLike.__init__
lxml.tests.common_imports.LargeFileLikeUnicode.__init__
lxml.tests.common_imports.SillyFileLike.__init__
+lxml.tests.dummy_http_server.HTTPRequestCollector.__init__
lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.__init__
lxml.tests.test_threading.ThreadPipelineTestCase.Worker.__init__
lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver.__init__" class="py-name" href="#" onclick="return doclink('link-232', '__init__', 'link-232');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:38 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:14 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<span class="summary-type"> </span>
</td><td class="summary">
<a href="lxml.etree-module.html" class="summary-name">etree</a><br />
- The <tt class="rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-docutils literal rst-rst-rst-docutils literal rst-rst-docutils literal rst-docutils literal">lxml.etree</tt> module implements the extended ElementTree API
+ The <tt class="rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-docutils literal rst-rst-rst-docutils literal rst-rst-docutils literal rst-docutils literal">lxml.etree</tt> module implements the extended ElementTree API
for XML.
</td>
</tr>
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
<h3 class="epydoc">etree</h3>
- The <tt class="rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-docutils literal rst-rst-rst-docutils literal rst-rst-docutils literal rst-docutils literal">lxml.etree</tt> module implements the extended ElementTree API
+ The <tt class="rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-docutils literal rst-rst-rst-docutils literal rst-rst-docutils literal rst-docutils literal">lxml.etree</tt> module implements the extended ElementTree API
for XML.
<dl class="fields">
</dl>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<span class="summary-type"> </span>
</td><td class="summary">
<a href="lxml.etree-module.html" class="summary-name">etree</a><br />
- The <tt class="rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-docutils literal rst-rst-rst-docutils literal rst-rst-docutils literal rst-docutils literal">lxml.etree</tt> module implements the extended ElementTree API
+ The <tt class="rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-docutils literal rst-rst-rst-docutils literal rst-rst-docutils literal rst-docutils literal">lxml.etree</tt> module implements the extended ElementTree API
for XML.
</td>
</tr>
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
<h3 class="epydoc">etree</h3>
- The <tt class="rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-docutils literal rst-rst-rst-docutils literal rst-rst-docutils literal rst-docutils literal">lxml.etree</tt> module implements the extended ElementTree API
+ The <tt class="rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-rst-docutils literal rst-rst-rst-rst-docutils literal rst-rst-rst-docutils literal rst-rst-docutils literal rst-docutils literal">lxml.etree</tt> module implements the extended ElementTree API
for XML.
<dl class="fields">
</dl>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># -*- coding: utf-8 -*-</tt> </tt>
<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">unittest</tt><tt class="py-op">,</tt> <tt class="py-name">doctest</tt><tt class="py-op">,</tt> <tt class="py-name">sys</tt><tt class="py-op">,</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-0" class="py-name" targets="Variable lxml.etree.XPath.path=lxml.etree.XPath-class.html#path"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-0', 'path', 'link-0');">path</a></tt> </tt>
<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"> </tt>
-<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt id="link-1" class="py-name" targets="Variable lxml.tests.test_builder.this_dir=lxml.tests.test_builder-module.html#this_dir,Variable lxml.tests.test_classlookup.this_dir=lxml.tests.test_classlookup-module.html#this_dir,Variable lxml.tests.test_dtd.this_dir=lxml.tests.test_dtd-module.html#this_dir,Variable lxml.tests.test_elementtree.this_dir=lxml.tests.test_elementtree-module.html#this_dir,Variable lxml.tests.test_errors.this_dir=lxml.tests.test_errors-module.html#this_dir,Variable lxml.tests.test_etree.this_dir=lxml.tests.test_etree-module.html#this_dir,Variable lxml.tests.test_htmlparser.this_dir=lxml.tests.test_htmlparser-module.html#this_dir,Variable lxml.tests.test_incremental_xmlfile.this_dir=lxml.tests.test_incremental_xmlfile-module.html#this_dir,Variable lxml.tests.test_io.this_dir=lxml.tests.test_io-module.html#this_dir,Variable lxml.tests.test_isoschematron.this_dir=lxml.tests.test_isoschematron-module.html#this_dir,Variable lxml.tests.test_nsclasses.this_dir=lxml.tests.test_nsclasses-module.html#this_dir,Variable lxml.tests.test_objectify.this_dir=lxml.tests.test_objectify-module.html#this_dir,Variable lxml.tests.test_pyclasslookup.this_dir=lxml.tests.test_pyclasslookup-module.html#this_dir,Variable lxml.tests.test_relaxng.this_dir=lxml.tests.test_relaxng-module.html#this_dir,Variable lxml.tests.test_sax.this_dir=lxml.tests.test_sax-module.html#this_dir,Variable lxml.tests.test_schematron.this_dir=lxml.tests.test_schematron-module.html#this_dir,Variable lxml.tests.test_threading.this_dir=lxml.tests.test_threading-module.html#this_dir,Variable lxml.tests.test_unicode.this_dir=lxml.tests.test_unicode-module.html#this_dir,Variable lxml.tests.test_xmlschema.this_dir=lxml.tests.test_xmlschema-module.html#this_dir,Variable lxml.tests.test_xpathevaluator.this_dir=lxml.tests.test_xpathevaluator-module.html#this_dir,Variable lxml.tests.test_xslt.this_dir=lxml.tests.test_xslt-module.html#this_dir"><a title="lxml.tests.test_builder.this_dir
+<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt id="link-1" class="py-name" targets="Variable lxml.tests.test_builder.this_dir=lxml.tests.test_builder-module.html#this_dir,Variable lxml.tests.test_classlookup.this_dir=lxml.tests.test_classlookup-module.html#this_dir,Variable lxml.tests.test_dtd.this_dir=lxml.tests.test_dtd-module.html#this_dir,Variable lxml.tests.test_elementtree.this_dir=lxml.tests.test_elementtree-module.html#this_dir,Variable lxml.tests.test_errors.this_dir=lxml.tests.test_errors-module.html#this_dir,Variable lxml.tests.test_etree.this_dir=lxml.tests.test_etree-module.html#this_dir,Variable lxml.tests.test_htmlparser.this_dir=lxml.tests.test_htmlparser-module.html#this_dir,Variable lxml.tests.test_http_io.this_dir=lxml.tests.test_http_io-module.html#this_dir,Variable lxml.tests.test_incremental_xmlfile.this_dir=lxml.tests.test_incremental_xmlfile-module.html#this_dir,Variable lxml.tests.test_io.this_dir=lxml.tests.test_io-module.html#this_dir,Variable lxml.tests.test_isoschematron.this_dir=lxml.tests.test_isoschematron-module.html#this_dir,Variable lxml.tests.test_nsclasses.this_dir=lxml.tests.test_nsclasses-module.html#this_dir,Variable lxml.tests.test_objectify.this_dir=lxml.tests.test_objectify-module.html#this_dir,Variable lxml.tests.test_pyclasslookup.this_dir=lxml.tests.test_pyclasslookup-module.html#this_dir,Variable lxml.tests.test_relaxng.this_dir=lxml.tests.test_relaxng-module.html#this_dir,Variable lxml.tests.test_sax.this_dir=lxml.tests.test_sax-module.html#this_dir,Variable lxml.tests.test_schematron.this_dir=lxml.tests.test_schematron-module.html#this_dir,Variable lxml.tests.test_threading.this_dir=lxml.tests.test_threading-module.html#this_dir,Variable lxml.tests.test_unicode.this_dir=lxml.tests.test_unicode-module.html#this_dir,Variable lxml.tests.test_xmlschema.this_dir=lxml.tests.test_xmlschema-module.html#this_dir,Variable lxml.tests.test_xpathevaluator.this_dir=lxml.tests.test_xpathevaluator-module.html#this_dir,Variable lxml.tests.test_xslt.this_dir=lxml.tests.test_xslt-module.html#this_dir"><a title="lxml.tests.test_builder.this_dir
lxml.tests.test_classlookup.this_dir
lxml.tests.test_dtd.this_dir
lxml.tests.test_elementtree.this_dir
lxml.tests.test_errors.this_dir
lxml.tests.test_etree.this_dir
lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
lxml.tests.test_incremental_xmlfile.this_dir
lxml.tests.test_io.this_dir
lxml.tests.test_isoschematron.this_dir
lxml.tests.test_errors.this_dir
lxml.tests.test_etree.this_dir
lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
lxml.tests.test_incremental_xmlfile.this_dir
lxml.tests.test_io.this_dir
lxml.tests.test_isoschematron.this_dir
lxml.tests.test_errors.this_dir
lxml.tests.test_etree.this_dir
lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
lxml.tests.test_incremental_xmlfile.this_dir
lxml.tests.test_io.this_dir
lxml.tests.test_isoschematron.this_dir
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:38 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:14 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"> </tt>
<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">unittest</tt><tt class="py-op">,</tt> <tt class="py-name">sys</tt><tt class="py-op">,</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-0" class="py-name" targets="Variable lxml.etree.XPath.path=lxml.etree.XPath-class.html#path"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-0', 'path', 'link-0');">path</a></tt> </tt>
<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"> </tt>
-<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt id="link-1" class="py-name" targets="Variable lxml.tests.test_builder.this_dir=lxml.tests.test_builder-module.html#this_dir,Variable lxml.tests.test_classlookup.this_dir=lxml.tests.test_classlookup-module.html#this_dir,Variable lxml.tests.test_dtd.this_dir=lxml.tests.test_dtd-module.html#this_dir,Variable lxml.tests.test_elementtree.this_dir=lxml.tests.test_elementtree-module.html#this_dir,Variable lxml.tests.test_errors.this_dir=lxml.tests.test_errors-module.html#this_dir,Variable lxml.tests.test_etree.this_dir=lxml.tests.test_etree-module.html#this_dir,Variable lxml.tests.test_htmlparser.this_dir=lxml.tests.test_htmlparser-module.html#this_dir,Variable lxml.tests.test_incremental_xmlfile.this_dir=lxml.tests.test_incremental_xmlfile-module.html#this_dir,Variable lxml.tests.test_io.this_dir=lxml.tests.test_io-module.html#this_dir,Variable lxml.tests.test_isoschematron.this_dir=lxml.tests.test_isoschematron-module.html#this_dir,Variable lxml.tests.test_nsclasses.this_dir=lxml.tests.test_nsclasses-module.html#this_dir,Variable lxml.tests.test_objectify.this_dir=lxml.tests.test_objectify-module.html#this_dir,Variable lxml.tests.test_pyclasslookup.this_dir=lxml.tests.test_pyclasslookup-module.html#this_dir,Variable lxml.tests.test_relaxng.this_dir=lxml.tests.test_relaxng-module.html#this_dir,Variable lxml.tests.test_sax.this_dir=lxml.tests.test_sax-module.html#this_dir,Variable lxml.tests.test_schematron.this_dir=lxml.tests.test_schematron-module.html#this_dir,Variable lxml.tests.test_threading.this_dir=lxml.tests.test_threading-module.html#this_dir,Variable lxml.tests.test_unicode.this_dir=lxml.tests.test_unicode-module.html#this_dir,Variable lxml.tests.test_xmlschema.this_dir=lxml.tests.test_xmlschema-module.html#this_dir,Variable lxml.tests.test_xpathevaluator.this_dir=lxml.tests.test_xpathevaluator-module.html#this_dir,Variable lxml.tests.test_xslt.this_dir=lxml.tests.test_xslt-module.html#this_dir"><a title="lxml.tests.test_builder.this_dir
+<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt id="link-1" class="py-name" targets="Variable lxml.tests.test_builder.this_dir=lxml.tests.test_builder-module.html#this_dir,Variable lxml.tests.test_classlookup.this_dir=lxml.tests.test_classlookup-module.html#this_dir,Variable lxml.tests.test_dtd.this_dir=lxml.tests.test_dtd-module.html#this_dir,Variable lxml.tests.test_elementtree.this_dir=lxml.tests.test_elementtree-module.html#this_dir,Variable lxml.tests.test_errors.this_dir=lxml.tests.test_errors-module.html#this_dir,Variable lxml.tests.test_etree.this_dir=lxml.tests.test_etree-module.html#this_dir,Variable lxml.tests.test_htmlparser.this_dir=lxml.tests.test_htmlparser-module.html#this_dir,Variable lxml.tests.test_http_io.this_dir=lxml.tests.test_http_io-module.html#this_dir,Variable lxml.tests.test_incremental_xmlfile.this_dir=lxml.tests.test_incremental_xmlfile-module.html#this_dir,Variable lxml.tests.test_io.this_dir=lxml.tests.test_io-module.html#this_dir,Variable lxml.tests.test_isoschematron.this_dir=lxml.tests.test_isoschematron-module.html#this_dir,Variable lxml.tests.test_nsclasses.this_dir=lxml.tests.test_nsclasses-module.html#this_dir,Variable lxml.tests.test_objectify.this_dir=lxml.tests.test_objectify-module.html#this_dir,Variable lxml.tests.test_pyclasslookup.this_dir=lxml.tests.test_pyclasslookup-module.html#this_dir,Variable lxml.tests.test_relaxng.this_dir=lxml.tests.test_relaxng-module.html#this_dir,Variable lxml.tests.test_sax.this_dir=lxml.tests.test_sax-module.html#this_dir,Variable lxml.tests.test_schematron.this_dir=lxml.tests.test_schematron-module.html#this_dir,Variable lxml.tests.test_threading.this_dir=lxml.tests.test_threading-module.html#this_dir,Variable lxml.tests.test_unicode.this_dir=lxml.tests.test_unicode-module.html#this_dir,Variable lxml.tests.test_xmlschema.this_dir=lxml.tests.test_xmlschema-module.html#this_dir,Variable lxml.tests.test_xpathevaluator.this_dir=lxml.tests.test_xpathevaluator-module.html#this_dir,Variable lxml.tests.test_xslt.this_dir=lxml.tests.test_xslt-module.html#this_dir"><a title="lxml.tests.test_builder.this_dir
lxml.tests.test_classlookup.this_dir
lxml.tests.test_dtd.this_dir
lxml.tests.test_elementtree.this_dir
lxml.tests.test_errors.this_dir
lxml.tests.test_etree.this_dir
lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
lxml.tests.test_incremental_xmlfile.this_dir
lxml.tests.test_io.this_dir
lxml.tests.test_isoschematron.this_dir
lxml.tests.test_errors.this_dir
lxml.tests.test_etree.this_dir
lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
lxml.tests.test_incremental_xmlfile.this_dir
lxml.tests.test_io.this_dir
lxml.tests.test_isoschematron.this_dir
lxml.tests.test_errors.this_dir
lxml.tests.test_etree.this_dir
lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
lxml.tests.test_incremental_xmlfile.this_dir
lxml.tests.test_io.this_dir
lxml.tests.test_isoschematron.this_dir
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:38 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:13 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
est, (None, 'setTest'): setTest, (None, 'setTest2'): setTest2, (None, \
'argsTest1'): argsTest1, (None, 'argsTest2'): argsTest2, (None, 'resul\
tTypesTest'): resultTypesTest, (None, 'resultTypesTest2'): resultTypes\
-Test2,}"><code class="variable-group">{</code><code class="variable-group">(</code>None<code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">argsTest1</code><code class="variable-quote">'</code><code class="variable-group">)</code><code class="variable-op">: </code><function argsTest1 at 0x2f7<code class="variable-ellipsis">...</code></code>
+Test2,}"><code class="variable-group">{</code><code class="variable-group">(</code>None<code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">argsTest1</code><code class="variable-quote">'</code><code class="variable-group">)</code><code class="variable-op">: </code><function argsTest1 at 0x48b<code class="variable-ellipsis">...</code></code>
</td>
</tr>
<tr>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"> </tt>
<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">unittest</tt><tt class="py-op">,</tt> <tt class="py-name">sys</tt><tt class="py-op">,</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-0" class="py-name" targets="Variable lxml.etree.XPath.path=lxml.etree.XPath-class.html#path"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-0', 'path', 'link-0');">path</a></tt> </tt>
<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"> </tt>
-<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt id="link-1" class="py-name" targets="Variable lxml.tests.test_builder.this_dir=lxml.tests.test_builder-module.html#this_dir,Variable lxml.tests.test_classlookup.this_dir=lxml.tests.test_classlookup-module.html#this_dir,Variable lxml.tests.test_dtd.this_dir=lxml.tests.test_dtd-module.html#this_dir,Variable lxml.tests.test_elementtree.this_dir=lxml.tests.test_elementtree-module.html#this_dir,Variable lxml.tests.test_errors.this_dir=lxml.tests.test_errors-module.html#this_dir,Variable lxml.tests.test_etree.this_dir=lxml.tests.test_etree-module.html#this_dir,Variable lxml.tests.test_htmlparser.this_dir=lxml.tests.test_htmlparser-module.html#this_dir,Variable lxml.tests.test_incremental_xmlfile.this_dir=lxml.tests.test_incremental_xmlfile-module.html#this_dir,Variable lxml.tests.test_io.this_dir=lxml.tests.test_io-module.html#this_dir,Variable lxml.tests.test_isoschematron.this_dir=lxml.tests.test_isoschematron-module.html#this_dir,Variable lxml.tests.test_nsclasses.this_dir=lxml.tests.test_nsclasses-module.html#this_dir,Variable lxml.tests.test_objectify.this_dir=lxml.tests.test_objectify-module.html#this_dir,Variable lxml.tests.test_pyclasslookup.this_dir=lxml.tests.test_pyclasslookup-module.html#this_dir,Variable lxml.tests.test_relaxng.this_dir=lxml.tests.test_relaxng-module.html#this_dir,Variable lxml.tests.test_sax.this_dir=lxml.tests.test_sax-module.html#this_dir,Variable lxml.tests.test_schematron.this_dir=lxml.tests.test_schematron-module.html#this_dir,Variable lxml.tests.test_threading.this_dir=lxml.tests.test_threading-module.html#this_dir,Variable lxml.tests.test_unicode.this_dir=lxml.tests.test_unicode-module.html#this_dir,Variable lxml.tests.test_xmlschema.this_dir=lxml.tests.test_xmlschema-module.html#this_dir,Variable lxml.tests.test_xpathevaluator.this_dir=lxml.tests.test_xpathevaluator-module.html#this_dir,Variable lxml.tests.test_xslt.this_dir=lxml.tests.test_xslt-module.html#this_dir"><a title="lxml.tests.test_builder.this_dir
+<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt id="link-1" class="py-name" targets="Variable lxml.tests.test_builder.this_dir=lxml.tests.test_builder-module.html#this_dir,Variable lxml.tests.test_classlookup.this_dir=lxml.tests.test_classlookup-module.html#this_dir,Variable lxml.tests.test_dtd.this_dir=lxml.tests.test_dtd-module.html#this_dir,Variable lxml.tests.test_elementtree.this_dir=lxml.tests.test_elementtree-module.html#this_dir,Variable lxml.tests.test_errors.this_dir=lxml.tests.test_errors-module.html#this_dir,Variable lxml.tests.test_etree.this_dir=lxml.tests.test_etree-module.html#this_dir,Variable lxml.tests.test_htmlparser.this_dir=lxml.tests.test_htmlparser-module.html#this_dir,Variable lxml.tests.test_http_io.this_dir=lxml.tests.test_http_io-module.html#this_dir,Variable lxml.tests.test_incremental_xmlfile.this_dir=lxml.tests.test_incremental_xmlfile-module.html#this_dir,Variable lxml.tests.test_io.this_dir=lxml.tests.test_io-module.html#this_dir,Variable lxml.tests.test_isoschematron.this_dir=lxml.tests.test_isoschematron-module.html#this_dir,Variable lxml.tests.test_nsclasses.this_dir=lxml.tests.test_nsclasses-module.html#this_dir,Variable lxml.tests.test_objectify.this_dir=lxml.tests.test_objectify-module.html#this_dir,Variable lxml.tests.test_pyclasslookup.this_dir=lxml.tests.test_pyclasslookup-module.html#this_dir,Variable lxml.tests.test_relaxng.this_dir=lxml.tests.test_relaxng-module.html#this_dir,Variable lxml.tests.test_sax.this_dir=lxml.tests.test_sax-module.html#this_dir,Variable lxml.tests.test_schematron.this_dir=lxml.tests.test_schematron-module.html#this_dir,Variable lxml.tests.test_threading.this_dir=lxml.tests.test_threading-module.html#this_dir,Variable lxml.tests.test_unicode.this_dir=lxml.tests.test_unicode-module.html#this_dir,Variable lxml.tests.test_xmlschema.this_dir=lxml.tests.test_xmlschema-module.html#this_dir,Variable lxml.tests.test_xpathevaluator.this_dir=lxml.tests.test_xpathevaluator-module.html#this_dir,Variable lxml.tests.test_xslt.this_dir=lxml.tests.test_xslt-module.html#this_dir"><a title="lxml.tests.test_builder.this_dir
lxml.tests.test_classlookup.this_dir
lxml.tests.test_dtd.this_dir
lxml.tests.test_elementtree.this_dir
lxml.tests.test_errors.this_dir
lxml.tests.test_etree.this_dir
lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
lxml.tests.test_incremental_xmlfile.this_dir
lxml.tests.test_io.this_dir
lxml.tests.test_isoschematron.this_dir
lxml.tests.test_errors.this_dir
lxml.tests.test_etree.this_dir
lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
lxml.tests.test_incremental_xmlfile.this_dir
lxml.tests.test_io.this_dir
lxml.tests.test_isoschematron.this_dir
lxml.tests.test_errors.this_dir
lxml.tests.test_etree.this_dir
lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
lxml.tests.test_incremental_xmlfile.this_dir
lxml.tests.test_io.this_dir
lxml.tests.test_isoschematron.this_dir
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:38 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:12 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
lxml.etree._ListErrorLog.copy
lxml.etree.iterparse.copy" class="py-name" href="#" onclick="return doclink('link-0', 'copy', 'link-0');">copy</a></tt><tt class="py-op">,</tt> <tt class="py-name">sys</tt><tt class="py-op">,</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-1" class="py-name" targets="Variable lxml.etree.XPath.path=lxml.etree.XPath-class.html#path"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1', 'path', 'link-1');">path</a></tt> </tt>
<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"> </tt>
-<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt id="link-2" class="py-name" targets="Variable lxml.tests.test_builder.this_dir=lxml.tests.test_builder-module.html#this_dir,Variable lxml.tests.test_classlookup.this_dir=lxml.tests.test_classlookup-module.html#this_dir,Variable lxml.tests.test_dtd.this_dir=lxml.tests.test_dtd-module.html#this_dir,Variable lxml.tests.test_elementtree.this_dir=lxml.tests.test_elementtree-module.html#this_dir,Variable lxml.tests.test_errors.this_dir=lxml.tests.test_errors-module.html#this_dir,Variable lxml.tests.test_etree.this_dir=lxml.tests.test_etree-module.html#this_dir,Variable lxml.tests.test_htmlparser.this_dir=lxml.tests.test_htmlparser-module.html#this_dir,Variable lxml.tests.test_incremental_xmlfile.this_dir=lxml.tests.test_incremental_xmlfile-module.html#this_dir,Variable lxml.tests.test_io.this_dir=lxml.tests.test_io-module.html#this_dir,Variable lxml.tests.test_isoschematron.this_dir=lxml.tests.test_isoschematron-module.html#this_dir,Variable lxml.tests.test_nsclasses.this_dir=lxml.tests.test_nsclasses-module.html#this_dir,Variable lxml.tests.test_objectify.this_dir=lxml.tests.test_objectify-module.html#this_dir,Variable lxml.tests.test_pyclasslookup.this_dir=lxml.tests.test_pyclasslookup-module.html#this_dir,Variable lxml.tests.test_relaxng.this_dir=lxml.tests.test_relaxng-module.html#this_dir,Variable lxml.tests.test_sax.this_dir=lxml.tests.test_sax-module.html#this_dir,Variable lxml.tests.test_schematron.this_dir=lxml.tests.test_schematron-module.html#this_dir,Variable lxml.tests.test_threading.this_dir=lxml.tests.test_threading-module.html#this_dir,Variable lxml.tests.test_unicode.this_dir=lxml.tests.test_unicode-module.html#this_dir,Variable lxml.tests.test_xmlschema.this_dir=lxml.tests.test_xmlschema-module.html#this_dir,Variable lxml.tests.test_xpathevaluator.this_dir=lxml.tests.test_xpathevaluator-module.html#this_dir,Variable lxml.tests.test_xslt.this_dir=lxml.tests.test_xslt-module.html#this_dir"><a title="lxml.tests.test_builder.this_dir
+<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt id="link-2" class="py-name" targets="Variable lxml.tests.test_builder.this_dir=lxml.tests.test_builder-module.html#this_dir,Variable lxml.tests.test_classlookup.this_dir=lxml.tests.test_classlookup-module.html#this_dir,Variable lxml.tests.test_dtd.this_dir=lxml.tests.test_dtd-module.html#this_dir,Variable lxml.tests.test_elementtree.this_dir=lxml.tests.test_elementtree-module.html#this_dir,Variable lxml.tests.test_errors.this_dir=lxml.tests.test_errors-module.html#this_dir,Variable lxml.tests.test_etree.this_dir=lxml.tests.test_etree-module.html#this_dir,Variable lxml.tests.test_htmlparser.this_dir=lxml.tests.test_htmlparser-module.html#this_dir,Variable lxml.tests.test_http_io.this_dir=lxml.tests.test_http_io-module.html#this_dir,Variable lxml.tests.test_incremental_xmlfile.this_dir=lxml.tests.test_incremental_xmlfile-module.html#this_dir,Variable lxml.tests.test_io.this_dir=lxml.tests.test_io-module.html#this_dir,Variable lxml.tests.test_isoschematron.this_dir=lxml.tests.test_isoschematron-module.html#this_dir,Variable lxml.tests.test_nsclasses.this_dir=lxml.tests.test_nsclasses-module.html#this_dir,Variable lxml.tests.test_objectify.this_dir=lxml.tests.test_objectify-module.html#this_dir,Variable lxml.tests.test_pyclasslookup.this_dir=lxml.tests.test_pyclasslookup-module.html#this_dir,Variable lxml.tests.test_relaxng.this_dir=lxml.tests.test_relaxng-module.html#this_dir,Variable lxml.tests.test_sax.this_dir=lxml.tests.test_sax-module.html#this_dir,Variable lxml.tests.test_schematron.this_dir=lxml.tests.test_schematron-module.html#this_dir,Variable lxml.tests.test_threading.this_dir=lxml.tests.test_threading-module.html#this_dir,Variable lxml.tests.test_unicode.this_dir=lxml.tests.test_unicode-module.html#this_dir,Variable lxml.tests.test_xmlschema.this_dir=lxml.tests.test_xmlschema-module.html#this_dir,Variable lxml.tests.test_xpathevaluator.this_dir=lxml.tests.test_xpathevaluator-module.html#this_dir,Variable lxml.tests.test_xslt.this_dir=lxml.tests.test_xslt-module.html#this_dir"><a title="lxml.tests.test_builder.this_dir
lxml.tests.test_classlookup.this_dir
lxml.tests.test_dtd.this_dir
lxml.tests.test_elementtree.this_dir
lxml.tests.test_errors.this_dir
lxml.tests.test_etree.this_dir
lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
lxml.tests.test_incremental_xmlfile.this_dir
lxml.tests.test_io.this_dir
lxml.tests.test_isoschematron.this_dir
lxml.tests.test_errors.this_dir
lxml.tests.test_etree.this_dir
lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
lxml.tests.test_incremental_xmlfile.this_dir
lxml.tests.test_io.this_dir
lxml.tests.test_isoschematron.this_dir
lxml.tests.test_errors.this_dir
lxml.tests.test_etree.this_dir
lxml.tests.test_htmlparser.this_dir
+lxml.tests.test_http_io.this_dir
lxml.tests.test_incremental_xmlfile.this_dir
lxml.tests.test_io.this_dir
lxml.tests.test_isoschematron.this_dir
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:36 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:14 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:12 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:12 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:35 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:12 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:36 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:12 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:38 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:13 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
--- /dev/null
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>mimetools.Message</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+ <!-- Home link -->
+ <th> <a
+ href="lxml-module.html">Home</a> </th>
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ ><a class="navbar" target="_top" href="/">lxml API</a></th>
+ </tr></table></th>
+ </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+ <tr valign="top">
+ <td width="100%">
+ <span class="breadcrumbs">
+ mimetools ::
+ Message ::
+ Class Message
+ </span>
+ </td>
+ <td>
+ <table cellpadding="0" cellspacing="0">
+ <!-- hide/show private -->
+ <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+ onclick="toggle_private();">hide private</a>]</span></td></tr>
+ <tr><td align="right"><span class="options"
+ >[<a href="frames.html" target="_top">frames</a
+ >] | <a href="mimetools.Message-class.html"
+ target="_top">no frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class Message</h1><p class="nomargin-top"></p>
+<pre class="base-tree">
+rfc822.Message --+
+ |
+ <strong class="uidshort">Message</strong>
+</pre>
+
+<hr />
+A derived class of rfc822.Message that knows about MIME headers and
+contains some hooks for decoding encoded and multipart messages.
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Instance Methods</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-InstanceMethods"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</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 href="mimetools.Message-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">fp</span>,
+ <span class="summary-sig-arg">seekable</span>=<span class="summary-sig-default">1</span>)</span><br />
+ Initialize the class instance and read the headers.</td>
+ <td align="right" valign="top">
+
+
+ </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="getencoding"></a><span class="summary-sig-name">getencoding</span>(<span class="summary-sig-arg">self</span>)</span></td>
+ <td align="right" valign="top">
+
+
+ </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="getmaintype"></a><span class="summary-sig-name">getmaintype</span>(<span class="summary-sig-arg">self</span>)</span></td>
+ <td align="right" valign="top">
+
+
+ </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="getparam"></a><span class="summary-sig-name">getparam</span>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">name</span>)</span></td>
+ <td align="right" valign="top">
+
+
+ </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="getparamnames"></a><span class="summary-sig-name">getparamnames</span>(<span class="summary-sig-arg">self</span>)</span></td>
+ <td align="right" valign="top">
+
+
+ </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="getplist"></a><span class="summary-sig-name">getplist</span>(<span class="summary-sig-arg">self</span>)</span></td>
+ <td align="right" valign="top">
+
+
+ </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="getsubtype"></a><span class="summary-sig-name">getsubtype</span>(<span class="summary-sig-arg">self</span>)</span></td>
+ <td align="right" valign="top">
+
+
+ </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="gettype"></a><span class="summary-sig-name">gettype</span>(<span class="summary-sig-arg">self</span>)</span></td>
+ <td align="right" valign="top">
+
+
+ </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="parseplist"></a><span class="summary-sig-name">parseplist</span>(<span class="summary-sig-arg">self</span>)</span></td>
+ <td align="right" valign="top">
+
+
+ </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="parsetype"></a><span class="summary-sig-name">parsetype</span>(<span class="summary-sig-arg">self</span>)</span></td>
+ <td align="right" valign="top">
+
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2" class="summary">
+ <p class="indent-wrapped-lines"><b>Inherited from <code>rfc822.Message</code></b>:
+ <code>__contains__</code>,
+ <code>__delitem__</code>,
+ <code>__getitem__</code>,
+ <code>__iter__</code>,
+ <code>__len__</code>,
+ <code>__setitem__</code>,
+ <code>__str__</code>,
+ <code>get</code>,
+ <code>getaddr</code>,
+ <code>getaddrlist</code>,
+ <code>getallmatchingheaders</code>,
+ <code>getdate</code>,
+ <code>getdate_tz</code>,
+ <code>getfirstmatchingheader</code>,
+ <code>getheader</code>,
+ <code>getheaders</code>,
+ <code>getrawheader</code>,
+ <code>has_key</code>,
+ <code>iscomment</code>,
+ <code>isheader</code>,
+ <code>islast</code>,
+ <code>items</code>,
+ <code>keys</code>,
+ <code>readheaders</code>,
+ <code>rewindbody</code>,
+ <code>setdefault</code>,
+ <code>values</code>
+ </p>
+ </td>
+ </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Method Details</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-MethodDetails"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+</table>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">fp</span>,
+ <span class="sig-arg">seekable</span>=<span class="sig-default">1</span>)</span>
+ <br /><em class="fname">(Constructor)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ >
+ </td>
+ </tr></table>
+
+ Initialize the class instance and read the headers.
+ <dl class="fields">
+ <dt>Overrides:
+ rfc822.Message.__init__
+ <dd><em class="note">(inherited documentation)</em></dd>
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+ <!-- Home link -->
+ <th> <a
+ href="lxml-module.html">Home</a> </th>
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ ><a class="navbar" target="_top" href="/">lxml API</a></th>
+ </tr></table></th>
+ </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+ <tr>
+ <td align="left" class="footer">
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:12 2013
+ </td>
+ <td align="right" class="footer">
+ <a target="mainFrame" href="http://epydoc.sourceforge.net"
+ >http://epydoc.sourceforge.net</a>
+ </td>
+ </tr>
+</table>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>
<li> <strong class="uidlink"><a href="lxml.tests-module.html">lxml.tests</a></strong>: <em class="summary">The lxml test suite for lxml, ElementTree and cElementTree.</em>
<ul>
<li> <strong class="uidlink"><a href="lxml.tests.common_imports-module.html">lxml.tests.common_imports</a></strong> </li>
+ <li> <strong class="uidlink"><a href="lxml.tests.dummy_http_server-module.html">lxml.tests.dummy_http_server</a></strong>: <em class="summary">Simple HTTP request dumper for tests in Python 2.5+.</em> </li>
<li> <strong class="uidlink"><a href="lxml.tests.test_builder-module.html">lxml.tests.test_builder</a></strong> </li>
<li> <strong class="uidlink"><a href="lxml.tests.test_classlookup-module.html">lxml.tests.test_classlookup</a></strong>: <em class="summary">Tests for different Element class lookup mechanisms.</em> </li>
<li> <strong class="uidlink"><a href="lxml.tests.test_css-module.html">lxml.tests.test_css</a></strong> </li>
<li> <strong class="uidlink"><a href="lxml.tests.test_errors-module.html">lxml.tests.test_errors</a></strong> </li>
<li> <strong class="uidlink"><a href="lxml.tests.test_etree-module.html">lxml.tests.test_etree</a></strong>: <em class="summary">Tests specific to the extended etree API</em> </li>
<li> <strong class="uidlink"><a href="lxml.tests.test_htmlparser-module.html">lxml.tests.test_htmlparser</a></strong>: <em class="summary">HTML parser test cases for etree</em> </li>
+ <li> <strong class="uidlink"><a href="lxml.tests.test_http_io-module.html">lxml.tests.test_http_io</a></strong>: <em class="summary">Web IO test cases that need Python 2.5+ (wsgiref)</em> </li>
<li> <strong class="uidlink"><a href="lxml.tests.test_incremental_xmlfile-module.html">lxml.tests.test_incremental_xmlfile</a></strong>: <em class="summary">Tests for the incremental XML serialisation API.</em> </li>
<li> <strong class="uidlink"><a href="lxml.tests.test_io-module.html">lxml.tests.test_io</a></strong>: <em class="summary">IO test cases that apply to both etree and ElementTree</em> </li>
<li> <strong class="uidlink"><a href="lxml.tests.test_isoschematron-module.html">lxml.tests.test_isoschematron</a></strong>: <em class="summary">Test cases related to ISO-Schematron parsing and validation</em> </li>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<body>
<script type="text/javascript">
<!--
-var pages = ["lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike-c", "lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver-c", "lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.default_class-c", "lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker-c", "lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.bluff_class-c", "lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.maeh_class-c", "lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase-c", "lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker-c", "lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker-c", "lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker-c", "lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker-c", "lxml.tests.test_incremental_xmlfile.BytesIOXmlFileTestCase-c", "lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-c", "lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-c", "lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-c", "lxml.tests.test_xpathevaluator.ETreeETXPathClassTestCase-c", "lxml.tests.test_incremental_xmlfile.TempXmlFileTestCase-c", "lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-c", "lxml.tests.test_threading.ThreadPipelineTestCase.Worker-c", "lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-c", "lxml.tests.test_xpathevaluator.ETreeXPathExsltTestCase-c", "lxml.tests.test_pyclasslookup.PyClassLookupTestCase-c", "lxml.tests.test_schematron.ETreeSchematronTestCase-c", "lxml.tests.test_xpathevaluator.ETreeXPathTestCase-c", "lxml.tests.test_elementtree.CElementTreeTestCase-c", "lxml.tests.test_threading.ThreadPipelineTestCase-c", "lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-c", "lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-c", "lxml.tests.test_classlookup.ClassLookupTestCase-c", "lxml.tests.test_elementtree.ElementTreeTestCase-c", "lxml.tests.common_imports.LargeFileLikeUnicode-c", "lxml.tests.test_elementtree._ETreeTestCaseBase-c", "lxml.tests.test_htmlparser.HtmlParserTestCase-c", "lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-c", "lxml.tests.test_etree.ElementIncludeTestCase-c", "lxml.tests.test_relaxng.ETreeRelaxNGTestCase-c", "lxml.etree.AttributeBasedElementClassLookup-c", "lxml.tests.test_etree.ETreeXIncludeTestCase-c", "lxml.tests.test_objectify.ObjectifyTestCase-c", "lxml.tests.test_threading.ThreadingTestCase-c", "lxml.objectify.ObjectifyElementClassLookup-c", "lxml.html.diff.InsensitiveSequenceMatcher-c", "lxml.tests.test_classlookup.ProxyTestCase-c", "lxml.tests.test_elementtree.ETreeTestCase-c", "lxml.etree.ParserBasedElementClassLookup-c", "lxml.tests.common_imports.HelperTestCase-c", "lxml.tests.test_etree.ETreeWriteTestCase-c", "lxml.tests.test_io.ElementTreeIOTestCase-c", "xml.etree.ElementTree._IterParseIterator-c", "xml.etree.ElementTree._SimpleElementPath-c", "lxml.tests.common_imports.LargeFileLike-c", "lxml.tests.common_imports.SillyFileLike-c", "lxml.tests.test_builder.BuilderTestCase-c", "lxml.tests.test_etree.ETreeC14NTestCase-c", "lxml.tests.test_etree.ETreeErrorLogTest-c", "lxml.tests.test_etree.ETreeOnlyTestCase-c", "lxml.tests.test_etree._XIncludeTestCase-c", "lxml.tests.test_unicode.UnicodeTestCase-c", "lxml.tests.test_xslt.ETreeEXSLTTestCase-c", "lxml.doctestcompare.LHTMLOutputChecker-c", "lxml.etree.ElementNamespaceClassLookup-c", "lxml.html.formfill.DefaultErrorCreator-c", "lxml.tests.test_xslt.ETreeXSLTTestCase-c", "lxml.ElementInclude.FatalIncludeError-c", "lxml.doctestcompare.LXMLOutputChecker-c", "lxml.etree.FallbackElementClassLookup-c", "lxml.etree._XSLTProcessingInstruction-c", "lxml.objectify.ObjectifiedDataElement-c", "lxml.etree.ElementDefaultClassLookup-c", "lxml.etree.ElementDepthFirstIterator-c", "lxml.tests.test_dtd.ETreeDtdTestCase-c", "lxml.tests.test_errors.ErrorTestCase-c", "lxml.tests.test_sax.ETreeSaxTestCase-c", "lxml.tests.test_xslt.Py3XSLTTestCase-c", "lxml.tests.test_incremental_xmlfile-m", "lxml.doctestcompare._RestoreChecker-c", "lxml.etree.CustomElementClassLookup-c", "lxml.etree.PythonElementClassLookup-c", "lxml.html.HtmlProcessingInstruction-c", "lxml.etree.SchematronValidateError-c", "lxml.sax.ElementTreeContentHandler-c", "lxml.tests.test_io.ETreeIOTestCase-c", "lxml.tests.test_io._IOTestCaseBase-c", "lxml.cssselect.LxmlHTMLTranslator-c", "lxml.etree.NamespaceRegistryError-c", "lxml.etree.XMLSchemaValidateError-c", "lxml.etree.XPathDocumentEvaluator-c", "lxml.etree._ProcessingInstruction-c", "lxml.html.html5parser.XHTMLParser-c", "lxml.objectify.ObjectifiedElement-c", "xml.etree.ElementTree.ElementTree-c", "xml.etree.ElementTree.TreeBuilder-c", "lxml.etree.XPathElementEvaluator-c", "lxml.etree._ElementMatchIterator-c", "lxml.etree._ElementUnicodeResult-c", "lxml.html.HtmlElementClassLookup-c", "lxml.html.html5parser.HTMLParser-c", "xml.etree.ElementTree.ParseError-c", "lxml.etree.ElementChildIterator-c", "lxml.etree.RelaxNGValidateError-c", "lxml.etree.SchematronParseError-c", "lxml.etree._ElementStringResult-c", "lxml.html.MultipleSelectOptions-c", "lxml.html.formfill.FormNotFound-c", "lxml.tests.test_css.CSSTestCase-c", "xml.etree.ElementTree.XMLParser-c", "lxml.tests.test_xpathevaluator-m", "lxml.etree.ElementTextIterator-c", "lxml.etree.XMLSchemaParseError-c", "lxml.etree._TargetParserResult-c", "lxml.etree._XPathEvaluatorBase-c", "lxml.tests.test_isoschematron-m", "lxml.tests.test_pyclasslookup-m", "lxml.cssselect.LxmlTranslator-c", "lxml.etree.ElementClassLookup-c", "lxml.etree.SerialisationError-c", "lxml.etree.XPathFunctionError-c", "lxml.etree.XSLTExtensionError-c", "lxml.etree._ElementTagMatcher-c", "lxml.isoschematron.Schematron-c", "xml.etree.ElementTree.Element-c", "lxml.etree.AncestorsIterator-c", "lxml.etree.ETCompatXMLParser-c", "lxml.etree.LxmlRegistryError-c", "lxml.etree.RelaxNGErrorTypes-c", "lxml.etree.RelaxNGParseError-c", "lxml.etree.XSLTAccessControl-c", "lxml.etree._RotatingErrorLog-c", "lxml.objectify.NumberElement-c", "lxml.objectify.StringElement-c", "lxml.sax.ElementTreeProducer-c", "lxml.tests.test_classlookup-m", "lxml.tests.test_elementtree-m", "lxml.etree.DTDValidateError-c", "lxml.etree.SiblingsIterator-c", "lxml.etree.XPathResultError-c", "lxml.etree.XPathSyntaxError-c", "lxml.etree._ElementIterator-c", "lxml.etree._SaxParserTarget-c", "lxml.objectify.ElementMaker-c", "lxml.objectify.FloatElement-c", "xml.etree.ElementTree.QName-c", "lxml.tests.test_htmlparser-m", "lxml.tests.test_schematron-m", "lxml.cssselect.CSSSelector-c", "lxml.etree.DocumentInvalid-c", "lxml.etree.LxmlSyntaxError-c", "lxml.etree.SchematronError-c", "lxml.etree._DomainErrorLog-c", "lxml.etree._XSLTResultTree-c", "lxml.objectify.BoolElement-c", "lxml.objectify.LongElement-c", "lxml.objectify.NoneElement-c", "lxml.tests.common_imports-m", "lxml.tests.test_nsclasses-m", "lxml.tests.test_objectify-m", "lxml.tests.test_threading-m", "lxml.tests.test_xmlschema-m", "exceptions.AssertionError-c", "lxml.builder.ElementMaker-c", "lxml.etree.XMLSchemaError-c", "lxml.etree.XMLSyntaxError-c", "lxml.etree.XPathEvalError-c", "lxml.etree.XSLTApplyError-c", "lxml.etree.XSLTParseError-c", "lxml.html.TextareaElement-c", "lxml.html.diff.href_token-c", "lxml.objectify.IntElement-c", "lxml.objectify.ObjectPath-c", "lxml.etree.DTDParseError-c", "lxml.etree.XIncludeError-c", "lxml.etree.XSLTExtension-c", "lxml.etree.XSLTSaveError-c", "lxml.etree._BaseErrorLog-c", "lxml.etree._ListErrorLog-c", "lxml.html.CheckboxValues-c", "lxml.html.diff.DEL_START-c", "lxml.html.diff.NoDeletes-c", "lxml.html.diff.tag_token-c", "lxml.tests.test_builder-m", "lxml.tests.test_relaxng-m", "lxml.tests.test_unicode-m", "lxml.etree.ErrorDomains-c", "lxml.etree.RelaxNGError-c", "lxml.etree._ElementTree-c", "lxml.html.CheckboxGroup-c", "lxml.html.SelectElement-c", "lxml.html.clean.Cleaner-c", "lxml.tests.test_errors-m", "lxml.etree.CommentBase-c", "lxml.etree.ElementBase-c", "lxml.etree.ErrorLevels-c", "lxml.etree.ParserError-c", "lxml.etree.TreeBuilder-c", "lxml.etree._FeedParser-c", "lxml.html.InputElement-c", "lxml.html.LabelElement-c", "lxml.html.diff.DEL_END-c", "lxml.html.ElementSoup-m", "lxml.html.html5parser-m", "lxml.tests.test_etree-m", "xml.etree.ElementTree-m", "lxml.etree.EntityBase-c", "lxml.etree.ErrorTypes-c", "lxml.etree.HTMLParser-c", "lxml.etree.ParseError-c", "lxml.etree.PyErrorLog-c", "lxml.etree.Schematron-c", "lxml.etree.XPathError-c", "lxml.etree._Validator-c", "lxml.html.FormElement-c", "lxml.html.HtmlComment-c", "lxml.html.HtmlElement-c", "lxml.html.InputGetter-c", "lxml.html.XHTMLParser-c", "lxml.html._MethodFunc-c", "lxml.objectify.PyType-c", "lxml.html.soupparser-m", "lxml.html.usedoctest-m", "lxml.tests.test_xslt-m", "lxml.etree.C14NError-c", "lxml.etree.LxmlError-c", "lxml.etree.XMLParser-c", "lxml.etree.XMLSchema-c", "lxml.etree.XSLTError-c", "lxml.etree._Document-c", "lxml.etree._ErrorLog-c", "lxml.etree._LogEntry-c", "lxml.etree.iterparse-c", "lxml.html.FieldsDict-c", "lxml.html.HTMLParser-c", "lxml.html.HtmlEntity-c", "lxml.html.InputMixin-c", "lxml.html.RadioGroup-c", "lxml.html.diff.token-c", "lxml.ElementInclude-m", "lxml.doctestcompare-m", "lxml.tests.test_css-m", "lxml.tests.test_dtd-m", "lxml.tests.test_sax-m", "lxml.etree.DTDError-c", "lxml.etree.Resolver-c", "lxml.etree.XInclude-c", "lxml.etree._Comment-c", "lxml.etree._Element-c", "lxml.etree.iterwalk-c", "lxml.html.HtmlMixin-c", "lxml.html.formfill-m", "lxml.isoschematron-m", "lxml.pyclasslookup-m", "lxml.tests.test_io-m", "lxml.etree.DocInfo-c", "lxml.etree.ETXPath-c", "lxml.etree.RelaxNG-c", "lxml.etree._Attrib-c", "lxml.etree._Entity-c", "lxml.etree._IDDict-c", "lxml.etree.xmlfile-c", "lxml.html.builder-m", "lxml.etree.PIBase-c", "lxml.sax.SaxError-c", "lxml.etree.CDATA-c", "lxml.etree.Error-c", "lxml.etree.QName-c", "lxml.etree.XPath-c", "lxml.html.clean-m", "lxml.usedoctest-m", "lxml.etree.XSLT-c", "lxml.cssselect-m", "lxml.html.defs-m", "lxml.html.diff-m", "lxml.objectify-m", "lxml.etree.DTD-c", "lxml.includes-m", "lxml.builder-m", "abc.ABCMeta-c", "lxml.etree-m", "lxml.tests-m", "lxml.html-m", "lxml.sax-m", "lxml-m", "str-c"];
+var pages = ["lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike-c", "lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver-c", "lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.default_class-c", "lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker-c", "lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.bluff_class-c", "lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.maeh_class-c", "lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase-c", "lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker-c", "lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker-c", "lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker-c", "lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker-c", "lxml.tests.test_incremental_xmlfile.BytesIOXmlFileTestCase-c", "lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-c", "lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-c", "lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-c", "lxml.tests.test_xpathevaluator.ETreeETXPathClassTestCase-c", "lxml.tests.test_incremental_xmlfile.TempXmlFileTestCase-c", "lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-c", "lxml.tests.test_threading.ThreadPipelineTestCase.Worker-c", "lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-c", "lxml.tests.test_xpathevaluator.ETreeXPathExsltTestCase-c", "lxml.tests.test_pyclasslookup.PyClassLookupTestCase-c", "lxml.tests.test_schematron.ETreeSchematronTestCase-c", "lxml.tests.dummy_http_server.HTTPRequestCollector-c", "lxml.tests.test_xpathevaluator.ETreeXPathTestCase-c", "lxml.tests.test_elementtree.CElementTreeTestCase-c", "lxml.tests.test_threading.ThreadPipelineTestCase-c", "lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-c", "lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-c", "lxml.tests.test_classlookup.ClassLookupTestCase-c", "lxml.tests.test_elementtree.ElementTreeTestCase-c", "lxml.tests.common_imports.LargeFileLikeUnicode-c", "lxml.tests.test_elementtree._ETreeTestCaseBase-c", "lxml.tests.test_htmlparser.HtmlParserTestCase-c", "lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-c", "lxml.tests.dummy_http_server._RequestHandler-c", "lxml.tests.test_etree.ElementIncludeTestCase-c", "lxml.tests.test_relaxng.ETreeRelaxNGTestCase-c", "lxml.etree.AttributeBasedElementClassLookup-c", "lxml.tests.test_etree.ETreeXIncludeTestCase-c", "lxml.tests.test_objectify.ObjectifyTestCase-c", "lxml.tests.test_threading.ThreadingTestCase-c", "lxml.objectify.ObjectifyElementClassLookup-c", "lxml.html.diff.InsensitiveSequenceMatcher-c", "lxml.tests.test_classlookup.ProxyTestCase-c", "lxml.tests.test_elementtree.ETreeTestCase-c", "lxml.etree.ParserBasedElementClassLookup-c", "lxml.tests.common_imports.HelperTestCase-c", "lxml.tests.test_etree.ETreeWriteTestCase-c", "lxml.tests.test_io.ElementTreeIOTestCase-c", "xml.etree.ElementTree._IterParseIterator-c", "xml.etree.ElementTree._SimpleElementPath-c", "lxml.tests.common_imports.LargeFileLike-c", "lxml.tests.common_imports.SillyFileLike-c", "lxml.tests.test_builder.BuilderTestCase-c", "lxml.tests.test_etree.ETreeC14NTestCase-c", "lxml.tests.test_etree.ETreeErrorLogTest-c", "lxml.tests.test_etree.ETreeOnlyTestCase-c", "lxml.tests.test_etree._XIncludeTestCase-c", "lxml.tests.test_unicode.UnicodeTestCase-c", "lxml.tests.test_xslt.ETreeEXSLTTestCase-c", "lxml.doctestcompare.LHTMLOutputChecker-c", "lxml.etree.ElementNamespaceClassLookup-c", "lxml.html.formfill.DefaultErrorCreator-c", "lxml.tests.dummy_http_server.WebServer-c", "lxml.tests.test_http_io.HttpIOTestCase-c", "lxml.tests.test_xslt.ETreeXSLTTestCase-c", "lxml.ElementInclude.FatalIncludeError-c", "lxml.doctestcompare.LXMLOutputChecker-c", "lxml.etree.FallbackElementClassLookup-c", "lxml.etree._XSLTProcessingInstruction-c", "lxml.objectify.ObjectifiedDataElement-c", "lxml.etree.ElementDefaultClassLookup-c", "lxml.etree.ElementDepthFirstIterator-c", "lxml.tests.test_dtd.ETreeDtdTestCase-c", "lxml.tests.test_errors.ErrorTestCase-c", "lxml.tests.test_sax.ETreeSaxTestCase-c", "lxml.tests.test_xslt.Py3XSLTTestCase-c", "lxml.tests.test_incremental_xmlfile-m", "lxml.doctestcompare._RestoreChecker-c", "lxml.etree.CustomElementClassLookup-c", "lxml.etree.PythonElementClassLookup-c", "lxml.html.HtmlProcessingInstruction-c", "lxml.etree.SchematronValidateError-c", "lxml.sax.ElementTreeContentHandler-c", "lxml.tests.test_io.ETreeIOTestCase-c", "lxml.tests.test_io._IOTestCaseBase-c", "lxml.cssselect.LxmlHTMLTranslator-c", "lxml.etree.NamespaceRegistryError-c", "lxml.etree.XMLSchemaValidateError-c", "lxml.etree.XPathDocumentEvaluator-c", "lxml.etree._ProcessingInstruction-c", "lxml.html.html5parser.XHTMLParser-c", "lxml.objectify.ObjectifiedElement-c", "xml.etree.ElementTree.ElementTree-c", "xml.etree.ElementTree.TreeBuilder-c", "lxml.etree.XPathElementEvaluator-c", "lxml.etree._ElementMatchIterator-c", "lxml.etree._ElementUnicodeResult-c", "lxml.html.HtmlElementClassLookup-c", "lxml.html.html5parser.HTMLParser-c", "xml.etree.ElementTree.ParseError-c", "lxml.etree.ElementChildIterator-c", "lxml.etree.RelaxNGValidateError-c", "lxml.etree.SchematronParseError-c", "lxml.etree._ElementStringResult-c", "lxml.html.MultipleSelectOptions-c", "lxml.html.formfill.FormNotFound-c", "lxml.tests.test_css.CSSTestCase-c", "xml.etree.ElementTree.XMLParser-c", "lxml.tests.test_xpathevaluator-m", "lxml.etree.ElementTextIterator-c", "lxml.etree.XMLSchemaParseError-c", "lxml.etree._TargetParserResult-c", "lxml.etree._XPathEvaluatorBase-c", "lxml.tests.test_isoschematron-m", "lxml.tests.test_pyclasslookup-m", "lxml.cssselect.LxmlTranslator-c", "lxml.etree.ElementClassLookup-c", "lxml.etree.SerialisationError-c", "lxml.etree.XPathFunctionError-c", "lxml.etree.XSLTExtensionError-c", "lxml.etree._ElementTagMatcher-c", "lxml.isoschematron.Schematron-c", "xml.etree.ElementTree.Element-c", "lxml.tests.dummy_http_server-m", "lxml.etree.AncestorsIterator-c", "lxml.etree.ETCompatXMLParser-c", "lxml.etree.LxmlRegistryError-c", "lxml.etree.RelaxNGErrorTypes-c", "lxml.etree.RelaxNGParseError-c", "lxml.etree.XSLTAccessControl-c", "lxml.etree._RotatingErrorLog-c", "lxml.objectify.NumberElement-c", "lxml.objectify.StringElement-c", "lxml.sax.ElementTreeProducer-c", "lxml.tests.test_classlookup-m", "lxml.tests.test_elementtree-m", "lxml.etree.DTDValidateError-c", "lxml.etree.SiblingsIterator-c", "lxml.etree.XPathResultError-c", "lxml.etree.XPathSyntaxError-c", "lxml.etree._ElementIterator-c", "lxml.etree._SaxParserTarget-c", "lxml.objectify.ElementMaker-c", "lxml.objectify.FloatElement-c", "xml.etree.ElementTree.QName-c", "lxml.tests.test_htmlparser-m", "lxml.tests.test_schematron-m", "lxml.cssselect.CSSSelector-c", "lxml.etree.DocumentInvalid-c", "lxml.etree.LxmlSyntaxError-c", "lxml.etree.SchematronError-c", "lxml.etree._DomainErrorLog-c", "lxml.etree._XSLTResultTree-c", "lxml.objectify.BoolElement-c", "lxml.objectify.LongElement-c", "lxml.objectify.NoneElement-c", "lxml.tests.common_imports-m", "lxml.tests.test_nsclasses-m", "lxml.tests.test_objectify-m", "lxml.tests.test_threading-m", "lxml.tests.test_xmlschema-m", "exceptions.AssertionError-c", "lxml.builder.ElementMaker-c", "lxml.etree.XMLSchemaError-c", "lxml.etree.XMLSyntaxError-c", "lxml.etree.XPathEvalError-c", "lxml.etree.XSLTApplyError-c", "lxml.etree.XSLTParseError-c", "lxml.html.TextareaElement-c", "lxml.html.diff.href_token-c", "lxml.objectify.IntElement-c", "lxml.objectify.ObjectPath-c", "lxml.etree.DTDParseError-c", "lxml.etree.XIncludeError-c", "lxml.etree.XSLTExtension-c", "lxml.etree.XSLTSaveError-c", "lxml.etree._BaseErrorLog-c", "lxml.etree._ListErrorLog-c", "lxml.html.CheckboxValues-c", "lxml.html.diff.DEL_START-c", "lxml.html.diff.NoDeletes-c", "lxml.html.diff.tag_token-c", "lxml.tests.test_builder-m", "lxml.tests.test_http_io-m", "lxml.tests.test_relaxng-m", "lxml.tests.test_unicode-m", "lxml.etree.ErrorDomains-c", "lxml.etree.RelaxNGError-c", "lxml.etree._ElementTree-c", "lxml.html.CheckboxGroup-c", "lxml.html.SelectElement-c", "lxml.html.clean.Cleaner-c", "lxml.tests.test_errors-m", "lxml.etree.CommentBase-c", "lxml.etree.ElementBase-c", "lxml.etree.ErrorLevels-c", "lxml.etree.ParserError-c", "lxml.etree.TreeBuilder-c", "lxml.etree._FeedParser-c", "lxml.html.InputElement-c", "lxml.html.LabelElement-c", "lxml.html.diff.DEL_END-c", "lxml.html.ElementSoup-m", "lxml.html.html5parser-m", "lxml.tests.test_etree-m", "xml.etree.ElementTree-m", "lxml.etree.EntityBase-c", "lxml.etree.ErrorTypes-c", "lxml.etree.HTMLParser-c", "lxml.etree.ParseError-c", "lxml.etree.PyErrorLog-c", "lxml.etree.Schematron-c", "lxml.etree.XPathError-c", "lxml.etree._Validator-c", "lxml.html.FormElement-c", "lxml.html.HtmlComment-c", "lxml.html.HtmlElement-c", "lxml.html.InputGetter-c", "lxml.html.XHTMLParser-c", "lxml.html._MethodFunc-c", "lxml.objectify.PyType-c", "lxml.html.soupparser-m", "lxml.html.usedoctest-m", "lxml.tests.test_xslt-m", "lxml.etree.C14NError-c", "lxml.etree.LxmlError-c", "lxml.etree.XMLParser-c", "lxml.etree.XMLSchema-c", "lxml.etree.XSLTError-c", "lxml.etree._Document-c", "lxml.etree._ErrorLog-c", "lxml.etree._LogEntry-c", "lxml.etree.iterparse-c", "lxml.html.FieldsDict-c", "lxml.html.HTMLParser-c", "lxml.html.HtmlEntity-c", "lxml.html.InputMixin-c", "lxml.html.RadioGroup-c", "lxml.html.diff.token-c", "lxml.ElementInclude-m", "lxml.doctestcompare-m", "lxml.tests.test_css-m", "lxml.tests.test_dtd-m", "lxml.tests.test_sax-m", "lxml.etree.DTDError-c", "lxml.etree.Resolver-c", "lxml.etree.XInclude-c", "lxml.etree._Comment-c", "lxml.etree._Element-c", "lxml.etree.iterwalk-c", "lxml.html.HtmlMixin-c", "lxml.html.formfill-m", "lxml.isoschematron-m", "lxml.pyclasslookup-m", "lxml.tests.test_io-m", "lxml.etree.DocInfo-c", "lxml.etree.ETXPath-c", "lxml.etree.RelaxNG-c", "lxml.etree._Attrib-c", "lxml.etree._Entity-c", "lxml.etree._IDDict-c", "lxml.etree.xmlfile-c", "lxml.html.builder-m", "lxml.etree.PIBase-c", "lxml.sax.SaxError-c", "mimetools.Message-c", "lxml.etree.CDATA-c", "lxml.etree.Error-c", "lxml.etree.QName-c", "lxml.etree.XPath-c", "lxml.html.clean-m", "lxml.usedoctest-m", "lxml.etree.XSLT-c", "lxml.cssselect-m", "lxml.html.defs-m", "lxml.html.diff-m", "lxml.objectify-m", "lxml.etree.DTD-c", "lxml.includes-m", "lxml.builder-m", "abc.ABCMeta-c", "lxml.etree-m", "lxml.tests-m", "lxml.html-m", "lxml.sax-m", "lxml-m", "str-c"];
var dottedName = get_anchor();
if (dottedName) {
var target = redirect_url(dottedName);
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:36 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:12 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
>lxml.tests.common_imports.HelperTestCase</a><br /> <a target="mainFrame" href="lxml.tests.common_imports.LargeFileLike-class.html"
>lxml.tests.common_imports.LargeFileLike</a><br /> <a target="mainFrame" href="lxml.tests.common_imports.LargeFileLikeUnicode-class.html"
>lxml.tests.common_imports.LargeFileLikeUnicode</a><br /> <a target="mainFrame" href="lxml.tests.common_imports.SillyFileLike-class.html"
- >lxml.tests.common_imports.SillyFileLike</a><br /> <a target="mainFrame" href="lxml.tests.test_builder.BuilderTestCase-class.html"
+ >lxml.tests.common_imports.SillyFileLike</a><br /> <a target="mainFrame" href="lxml.tests.dummy_http_server.HTTPRequestCollector-class.html"
+ >lxml.tests.dummy_http_server.HTTPRequestCollector</a><br /> <a target="mainFrame" href="lxml.tests.dummy_http_server.WebServer-class.html"
+ >lxml.tests.dummy_http_server.WebServer</a><br /> <div class="private">
+ <a target="mainFrame" href="lxml.tests.dummy_http_server._RequestHandler-class.html"
+ >lxml.tests.dummy_http_server._RequestHandler</a><br /> </div>
+ <a target="mainFrame" href="lxml.tests.test_builder.BuilderTestCase-class.html"
>lxml.tests.test_builder.BuilderTestCase</a><br /> <a target="mainFrame" href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html"
>lxml.tests.test_classlookup.ClassLookupTestCase</a><br /> <a target="mainFrame" href="lxml.tests.test_classlookup.ProxyTestCase-class.html"
>lxml.tests.test_classlookup.ProxyTestCase</a><br /> <a target="mainFrame" href="lxml.tests.test_css.CSSTestCase-class.html"
<a target="mainFrame" href="lxml.tests.test_etree._XIncludeTestCase-class.html"
>lxml.tests.test_etree._XIncludeTestCase</a><br /> </div>
<a target="mainFrame" href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html"
- >lxml.tests.test_htmlparser.HtmlParserTestCase</a><br /> <a target="mainFrame" href="lxml.tests.test_incremental_xmlfile.BytesIOXmlFileTestCase-class.html"
+ >lxml.tests.test_htmlparser.HtmlParserTestCase</a><br /> <a target="mainFrame" href="lxml.tests.test_http_io.HttpIOTestCase-class.html"
+ >lxml.tests.test_http_io.HttpIOTestCase</a><br /> <a target="mainFrame" href="lxml.tests.test_incremental_xmlfile.BytesIOXmlFileTestCase-class.html"
>lxml.tests.test_incremental_xmlfile.BytesIOXmlFileTestCase</a><br /> <a target="mainFrame" href="lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase-class.html"
>lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase</a><br /> <a target="mainFrame" href="lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike-class.html"
>lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike</a><br /> <a target="mainFrame" href="lxml.tests.test_incremental_xmlfile.TempXmlFileTestCase-class.html"
>lxml.tests.test_xslt.ETreeXSLTExtElementTestCase</a><br /> <a target="mainFrame" href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html"
>lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase</a><br /> <a target="mainFrame" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html"
>lxml.tests.test_xslt.ETreeXSLTTestCase</a><br /> <a target="mainFrame" href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html"
- >lxml.tests.test_xslt.Py3XSLTTestCase</a><br /> <a target="mainFrame" href="str-class.html"
+ >lxml.tests.test_xslt.Py3XSLTTestCase</a><br /> <a target="mainFrame" href="mimetools.Message-class.html"
+ >mimetools.Message</a><br /> <a target="mainFrame" href="str-class.html"
>str</a><br /> <a target="mainFrame" href="xml.etree.ElementTree.Element-class.html"
>xml.etree.ElementTree.Element</a><br /> <a target="mainFrame" href="xml.etree.ElementTree.ElementTree-class.html"
>xml.etree.ElementTree.ElementTree</a><br /> <a target="mainFrame" href="xml.etree.ElementTree.ParseError-class.html"
>lxml.tests.common_imports.readFileInTestDir</a><br /> <a target="mainFrame" href="lxml.tests.common_imports-module.html#read_file"
>lxml.tests.common_imports.read_file</a><br /> <a target="mainFrame" href="lxml.tests.common_imports-module.html#unentitify"
>lxml.tests.common_imports.unentitify</a><br /> <a target="mainFrame" href="lxml.tests.common_imports-module.html#write_to_file"
- >lxml.tests.common_imports.write_to_file</a><br /> <a target="mainFrame" href="lxml.tests.test_builder-module.html#test_suite"
+ >lxml.tests.common_imports.write_to_file</a><br /> <a target="mainFrame" href="lxml.tests.dummy_http_server-module.html#build_web_server"
+ >lxml.tests.dummy_http_server.build_web_server</a><br /> <a target="mainFrame" href="lxml.tests.dummy_http_server-module.html#webserver"
+ >lxml.tests.dummy_http_server.webserver</a><br /> <a target="mainFrame" href="lxml.tests.test_builder-module.html#test_suite"
>lxml.tests.test_builder.test_suite</a><br /> <a target="mainFrame" href="lxml.tests.test_classlookup-module.html#test_suite"
>lxml.tests.test_classlookup.test_suite</a><br /> <a target="mainFrame" href="lxml.tests.test_css-module.html#test_suite"
>lxml.tests.test_css.test_suite</a><br /> <a target="mainFrame" href="lxml.tests.test_dtd-module.html#test_suite"
>lxml.tests.test_elementtree.test_suite</a><br /> <a target="mainFrame" href="lxml.tests.test_errors-module.html#test_suite"
>lxml.tests.test_errors.test_suite</a><br /> <a target="mainFrame" href="lxml.tests.test_etree-module.html#test_suite"
>lxml.tests.test_etree.test_suite</a><br /> <a target="mainFrame" href="lxml.tests.test_htmlparser-module.html#test_suite"
- >lxml.tests.test_htmlparser.test_suite</a><br /> <a target="mainFrame" href="lxml.tests.test_incremental_xmlfile-module.html#test_suite"
+ >lxml.tests.test_htmlparser.test_suite</a><br /> <a target="mainFrame" href="lxml.tests.test_http_io-module.html#test_suite"
+ >lxml.tests.test_http_io.test_suite</a><br /> <a target="mainFrame" href="lxml.tests.test_incremental_xmlfile-module.html#test_suite"
>lxml.tests.test_incremental_xmlfile.test_suite</a><br /> <a target="mainFrame" href="lxml.tests.test_io-module.html#test_suite"
>lxml.tests.test_io.test_suite</a><br /> <a target="mainFrame" href="lxml.tests.test_isoschematron-module.html#test_suite"
>lxml.tests.test_isoschematron.test_suite</a><br /> <a target="mainFrame" href="lxml.tests.test_nsclasses-module.html#test_suite"
>lxml.tests.common_imports._fix_unicode</a><br /> </div>
<a target="mainFrame" href="lxml.tests.common_imports-module.html#doctest_parser"
>lxml.tests.common_imports.doctest_parser</a><br /> <a target="mainFrame" href="lxml.tests.common_imports-module.html#skipif"
- >lxml.tests.common_imports.skipif</a><br /> <a target="mainFrame" href="lxml.tests.test_builder-module.html#__package__"
+ >lxml.tests.common_imports.skipif</a><br /> <a target="mainFrame" href="lxml.tests.dummy_http_server-module.html#__package__"
+ >lxml.tests.dummy_http_server.__package__</a><br /> <a target="mainFrame" href="lxml.tests.test_builder-module.html#__package__"
>lxml.tests.test_builder.__package__</a><br /> <a target="mainFrame" href="lxml.tests.test_builder-module.html#this_dir"
>lxml.tests.test_builder.this_dir</a><br /> <a target="mainFrame" href="lxml.tests.test_classlookup-module.html#__package__"
>lxml.tests.test_classlookup.__package__</a><br /> <a target="mainFrame" href="lxml.tests.test_classlookup-module.html#this_dir"
>lxml.tests.test_etree.__package__</a><br /> <a target="mainFrame" href="lxml.tests.test_etree-module.html#this_dir"
>lxml.tests.test_etree.this_dir</a><br /> <a target="mainFrame" href="lxml.tests.test_htmlparser-module.html#__package__"
>lxml.tests.test_htmlparser.__package__</a><br /> <a target="mainFrame" href="lxml.tests.test_htmlparser-module.html#this_dir"
- >lxml.tests.test_htmlparser.this_dir</a><br /> <a target="mainFrame" href="lxml.tests.test_incremental_xmlfile-module.html#__package__"
+ >lxml.tests.test_htmlparser.this_dir</a><br /> <a target="mainFrame" href="lxml.tests.test_http_io-module.html#__package__"
+ >lxml.tests.test_http_io.__package__</a><br /> <a target="mainFrame" href="lxml.tests.test_http_io-module.html#this_dir"
+ >lxml.tests.test_http_io.this_dir</a><br /> <a target="mainFrame" href="lxml.tests.test_incremental_xmlfile-module.html#__package__"
>lxml.tests.test_incremental_xmlfile.__package__</a><br /> <a target="mainFrame" href="lxml.tests.test_incremental_xmlfile-module.html#this_dir"
>lxml.tests.test_incremental_xmlfile.this_dir</a><br /> <a target="mainFrame" href="lxml.tests.test_io-module.html#__package__"
>lxml.tests.test_io.__package__</a><br /> <a target="mainFrame" href="lxml.tests.test_io-module.html#this_dir"
<div class="private">
<a target="mainFrame" href="lxml.html-module.html#_element_name"
>_element_name</a><br /> </div>
+ <div class="private">
+ <a target="mainFrame" href="lxml.html-module.html#_looks_like_full_html_bytes"
+ >_looks_like_full_html_bytes</a><br /> </div>
+ <div class="private">
+ <a target="mainFrame" href="lxml.html-module.html#_looks_like_full_html_unicode"
+ >_looks_like_full_html_unicode</a><br /> </div>
<div class="private">
<a target="mainFrame" href="lxml.html-module.html#_nons"
>_nons</a><br /> </div>
--- /dev/null
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>dummy_http_server</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<h1 class="toc">Module dummy_http_server</h1>
+<hr />
+ <h2 class="toc">Classes</h2>
+ <a target="mainFrame" href="lxml.tests.dummy_http_server.HTTPRequestCollector-class.html"
+ >HTTPRequestCollector</a><br /> <a target="mainFrame" href="lxml.tests.dummy_http_server.WebServer-class.html"
+ >WebServer</a><br /> <div class="private">
+ <a target="mainFrame" href="lxml.tests.dummy_http_server._RequestHandler-class.html"
+ >_RequestHandler</a><br /> </div>
+ <h2 class="toc">Functions</h2>
+ <a target="mainFrame" href="lxml.tests.dummy_http_server-module.html#build_web_server"
+ >build_web_server</a><br /> <a target="mainFrame" href="lxml.tests.dummy_http_server-module.html#webserver"
+ >webserver</a><br /> <h2 class="toc">Variables</h2>
+ <a target="mainFrame" href="lxml.tests.dummy_http_server-module.html#__package__"
+ >__package__</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+ onclick="toggle_private();">hide private</a>]</span>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>
--- /dev/null
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>test_http_io</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<h1 class="toc">Module test_http_io</h1>
+<hr />
+ <h2 class="toc">Classes</h2>
+ <a target="mainFrame" href="lxml.tests.test_http_io.HttpIOTestCase-class.html"
+ >HttpIOTestCase</a><br /> <h2 class="toc">Functions</h2>
+ <a target="mainFrame" href="lxml.tests.test_http_io-module.html#test_suite"
+ >test_suite</a><br /> <h2 class="toc">Variables</h2>
+ <a target="mainFrame" href="lxml.tests.test_http_io-module.html#__package__"
+ >__package__</a><br /> <a target="mainFrame" href="lxml.tests.test_http_io-module.html#this_dir"
+ >this_dir</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+ onclick="toggle_private();">hide private</a>]</span>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>
onclick="setFrame('toc-lxml.pyclasslookup-module.html','lxml.pyclasslookup-module.html');" >lxml.pyclasslookup</a><br /> <a target="moduleFrame" href="toc-lxml.sax-module.html"
onclick="setFrame('toc-lxml.sax-module.html','lxml.sax-module.html');" >lxml.sax</a><br /> <a target="moduleFrame" href="toc-lxml.tests-module.html"
onclick="setFrame('toc-lxml.tests-module.html','lxml.tests-module.html');" >lxml.tests</a><br /> <a target="moduleFrame" href="toc-lxml.tests.common_imports-module.html"
- onclick="setFrame('toc-lxml.tests.common_imports-module.html','lxml.tests.common_imports-module.html');" >lxml.tests.common_imports</a><br /> <a target="moduleFrame" href="toc-lxml.tests.test_builder-module.html"
+ onclick="setFrame('toc-lxml.tests.common_imports-module.html','lxml.tests.common_imports-module.html');" >lxml.tests.common_imports</a><br /> <a target="moduleFrame" href="toc-lxml.tests.dummy_http_server-module.html"
+ onclick="setFrame('toc-lxml.tests.dummy_http_server-module.html','lxml.tests.dummy_http_server-module.html');" >lxml.tests.dummy_http_server</a><br /> <a target="moduleFrame" href="toc-lxml.tests.test_builder-module.html"
onclick="setFrame('toc-lxml.tests.test_builder-module.html','lxml.tests.test_builder-module.html');" >lxml.tests.test_builder</a><br /> <a target="moduleFrame" href="toc-lxml.tests.test_classlookup-module.html"
onclick="setFrame('toc-lxml.tests.test_classlookup-module.html','lxml.tests.test_classlookup-module.html');" >lxml.tests.test_classlookup</a><br /> <a target="moduleFrame" href="toc-lxml.tests.test_css-module.html"
onclick="setFrame('toc-lxml.tests.test_css-module.html','lxml.tests.test_css-module.html');" >lxml.tests.test_css</a><br /> <a target="moduleFrame" href="toc-lxml.tests.test_dtd-module.html"
onclick="setFrame('toc-lxml.tests.test_elementtree-module.html','lxml.tests.test_elementtree-module.html');" >lxml.tests.test_elementtree</a><br /> <a target="moduleFrame" href="toc-lxml.tests.test_errors-module.html"
onclick="setFrame('toc-lxml.tests.test_errors-module.html','lxml.tests.test_errors-module.html');" >lxml.tests.test_errors</a><br /> <a target="moduleFrame" href="toc-lxml.tests.test_etree-module.html"
onclick="setFrame('toc-lxml.tests.test_etree-module.html','lxml.tests.test_etree-module.html');" >lxml.tests.test_etree</a><br /> <a target="moduleFrame" href="toc-lxml.tests.test_htmlparser-module.html"
- onclick="setFrame('toc-lxml.tests.test_htmlparser-module.html','lxml.tests.test_htmlparser-module.html');" >lxml.tests.test_htmlparser</a><br /> <a target="moduleFrame" href="toc-lxml.tests.test_incremental_xmlfile-module.html"
+ onclick="setFrame('toc-lxml.tests.test_htmlparser-module.html','lxml.tests.test_htmlparser-module.html');" >lxml.tests.test_htmlparser</a><br /> <a target="moduleFrame" href="toc-lxml.tests.test_http_io-module.html"
+ onclick="setFrame('toc-lxml.tests.test_http_io-module.html','lxml.tests.test_http_io-module.html');" >lxml.tests.test_http_io</a><br /> <a target="moduleFrame" href="toc-lxml.tests.test_incremental_xmlfile-module.html"
onclick="setFrame('toc-lxml.tests.test_incremental_xmlfile-module.html','lxml.tests.test_incremental_xmlfile-module.html');" >lxml.tests.test_incremental_xmlfile</a><br /> <a target="moduleFrame" href="toc-lxml.tests.test_io-module.html"
onclick="setFrame('toc-lxml.tests.test_io-module.html','lxml.tests.test_io-module.html');" >lxml.tests.test_io</a><br /> <a target="moduleFrame" href="toc-lxml.tests.test_isoschematron-module.html"
onclick="setFrame('toc-lxml.tests.test_isoschematron-module.html','lxml.tests.test_isoschematron-module.html');" >lxml.tests.test_isoschematron</a><br /> <a target="moduleFrame" href="toc-lxml.tests.test_nsclasses-module.html"
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type"> </span>
</td><td class="summary">
- <a href="xml.etree.ElementTree-module.html#_serialize" class="summary-name" onclick="show_private();">_serialize</a> = <code title="{'html': <function _serialize_html at 0x25e5398>,
- 'text': <function _serialize_text at 0x25e5410>,
- 'xml': <function _serialize_xml at 0x25e5320>}"><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">html</code><code class="variable-quote">'</code><code class="variable-op">: </code><function _serialize_html at 0x25e5398><code class="variable-op">,</code><code class="variable-ellipsis">...</code></code>
+ <a href="xml.etree.ElementTree-module.html#_serialize" class="summary-name" onclick="show_private();">_serialize</a> = <code title="{'html': <function _serialize_html at 0x3d68410>,
+ 'text': <function _serialize_text at 0x3d68488>,
+ 'xml': <function _serialize_xml at 0x3d68398>}"><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">html</code><code class="variable-quote">'</code><code class="variable-op">: </code><function _serialize_html at 0x3d68410><code class="variable-op">,</code><code class="variable-ellipsis">...</code></code>
</td>
</tr>
</table>
<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">html</code><code class="variable-quote">'</code><code class="variable-op">: </code><function _serialize_html at 0x25e5398><code class="variable-op">,</code>
- <code class="variable-quote">'</code><code class="variable-string">text</code><code class="variable-quote">'</code><code class="variable-op">: </code><function _serialize_text at 0x25e5410><code class="variable-op">,</code>
- <code class="variable-quote">'</code><code class="variable-string">xml</code><code class="variable-quote">'</code><code class="variable-op">: </code><function _serialize_xml at 0x25e5320><code class="variable-group">}</code>
+<code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">html</code><code class="variable-quote">'</code><code class="variable-op">: </code><function _serialize_html at 0x3d68410><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">text</code><code class="variable-quote">'</code><code class="variable-op">: </code><function _serialize_text at 0x3d68488><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">xml</code><code class="variable-quote">'</code><code class="variable-op">: </code><function _serialize_xml at 0x3d68398><code class="variable-group">}</code>
</pre></td></tr></table>
</dd>
</dl>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:34 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:10 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:38 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:13 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:36 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:12 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:36 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:12 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:36 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:12 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:36 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:12 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:36 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:12 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:36 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:12 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:36 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:12 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Fri Apr 12 07:18:36 2013
+ Generated by Epydoc 3.0.1 on Sun Apr 28 21:00:12 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
</head>
<body>
<div class="document" id="how-to-build-lxml-from-source">
-<div class="sidemenu"><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#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-sources">Building lxml from 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#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">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#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#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">Building an egg</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 3 1 2-menu"><li class="menu title"><a href="changes-3.1.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="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">How to build lxml from source</h1>
+<div class="sidemenu"><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#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-sources">Building lxml from 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#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">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#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#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">Building an egg</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 3 2 0-menu"><li class="menu title"><a href="changes-3.2.0.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="http://lxml.de/sitemap.html">Sitemap</a></li></ul></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: 2013-04-12.
+Generated on: 2013-04-28.
</div>
</body>
</head>
<body>
<div class="document" id="the-public-c-api-of-lxml-etree">
-<div class="sidemenu"><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#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-sources">Building lxml from 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#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">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#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#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">Building an egg</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 3 1 2-menu"><li class="menu title"><a href="changes-3.1.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="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">The public C-API of lxml.etree</h1>
+<div class="sidemenu"><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#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-sources">Building lxml from 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#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">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#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#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">Building an egg</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 3 2 0-menu"><li class="menu title"><a href="changes-3.2.0.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="http://lxml.de/sitemap.html">Sitemap</a></li></ul></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: 2013-04-12.
+Generated on: 2013-04-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.10: 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>3.1.2 (2013-04-12)</h1>
-<div class="section" id="features-added">
-<h2>Features added</h2>
-</div>
-<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/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="other-changes">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id2">
-<h1>3.1.1 (2013-03-29)</h1>
-<div class="section" id="id3">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id4">
-<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="id5">
-<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="id6">
-<h1>3.1.0 (2013-02-10)</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/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="id8">
-<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="id9">
-<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="id10">
-<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="id11">
-<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="id12">
-<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="id13">
-<h1>3.0.2 (2012-12-14)</h1>
-<div class="section" id="id14">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id15">
-<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="id16">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id17">
-<h1>3.0.1 (2012-10-14)</h1>
-<div class="section" id="id18">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id19">
-<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="id20">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id21">
-<h1>3.0 (2012-10-08)</h1>
-<div class="section" id="id22">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id23">
-<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="id24">
-<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="id25">
-<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="id26">
-<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="id27">
-<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="id28">
-<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="id29">
-<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="id30">
-<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="id31">
-<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="id32">
-<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="id33">
-<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="id34">
-<h1>2.3.6 (2012-09-28)</h1>
-<div class="section" id="id35">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id36">
-<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="id37">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id38">
-<h1>2.3.5 (2012-07-31)</h1>
-<div class="section" id="id39">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id40">
-<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="id41">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id42">
-<h1>2.3.4 (2012-03-26)</h1>
-<div class="section" id="id43">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id44">
-<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="id45">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id46">
-<h1>2.3.3 (2012-01-04)</h1>
-<div class="section" id="id47">
-<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="id48">
-<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="id49">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id50">
-<h1>2.3.2 (2011-11-11)</h1>
-<div class="section" id="id51">
-<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="id52">
-<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 is 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="id53">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id54">
-<h1>2.3.1 (2011-09-25)</h1>
-<div class="section" id="id55">
-<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="id56">
-<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="id57">
-<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="id58">
-<h1>2.3 (2011-02-06)</h1>
-<div class="section" id="id59">
-<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="id60">
-<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 severly 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="id61">
-<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="id62">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id63">
-<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="id64">
-<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="id65">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id66">
-<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="id67">
-<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="id68">
-<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="id69">
-<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="id70">
-<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="id71">
-<h1>2.2.8 (2010-09-02)</h1>
-<div class="section" id="id72">
-<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="id73">
-<h1>2.2.7 (2010-07-24)</h1>
-<div class="section" id="id74">
-<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="id75">
-<h1>2.2.6 (2010-03-02)</h1>
-<div class="section" id="id76">
-<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="id77">
-<h1>2.2.5 (2010-02-28)</h1>
-<div class="section" id="id78">
-<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="id79">
-<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="id80">
-<h1>2.2.4 (2009-11-11)</h1>
-<div class="section" id="id81">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Static build of libxml2/libxslt was broken.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id82">
-<h1>2.2.3 (2009-10-30)</h1>
-<div class="section" id="id83">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id84">
-<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 honout 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="id85">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id86">
-<h1>2.2.2 (2009-06-21)</h1>
-<div class="section" id="id87">
-<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="id88">
-<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="id89">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id90">
-<h1>2.2.1 (2009-06-02)</h1>
-<div class="section" id="id91">
-<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="id92">
-<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="id93">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id94">
-<h1>2.2 (2009-03-21)</h1>
-<div class="section" id="id95">
-<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="id96">
-<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="id97">
-<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="id98">
-<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="id99">
-<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="id100">
-<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="id101">
-<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="id102">
-<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="id103">
-<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="id104">
-<h1>2.1.5 (2009-01-06)</h1>
-<div class="section" id="id105">
-<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="id106">
-<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="id107">
-<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="id108">
-<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="id109">
-<h1>2.1.4 (2008-12-12)</h1>
-<div class="section" id="id110">
-<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="id111">
-<h1>2.0.11 (2008-12-12)</h1>
-<div class="section" id="id112">
-<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="id113">
-<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="id114">
-<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="id115">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id116">
-<h1>2.1.3 (2008-11-17)</h1>
-<div class="section" id="id117">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id118">
-<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="id119">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id120">
-<h1>2.0.10 (2008-11-17)</h1>
-<div class="section" id="id121">
-<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="id122">
-<h1>2.1.2 (2008-09-05)</h1>
-<div class="section" id="id123">
-<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="id124">
-<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="id125">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id126">
-<h1>2.0.9 (2008-09-05)</h1>
-<div class="section" id="id127">
-<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="id128">
-<h1>2.1.1 (2008-07-24)</h1>
-<div class="section" id="id129">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id130">
-<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="id131">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id132">
-<h1>2.0.8 (2008-07-24)</h1>
-<div class="section" id="id133">
-<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="id134">
-<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="id135">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id136">
-<h1>2.1 (2008-07-09)</h1>
-<div class="section" id="id137">
-<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="id138">
-<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="id139">
-<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="id140">
-<h1>2.0.7 (2008-06-20)</h1>
-<div class="section" id="id141">
-<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="id142">
-<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="id143">
-<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="id144">
-<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="id145">
-<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="id146">
-<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="id147">
-<h1>2.0.6 (2008-05-31)</h1>
-<div class="section" id="id148">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id149">
-<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="id150">
-<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="id151">
-<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="id152">
-<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="id153">
-<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="id154">
-<h1>2.0.5 (2008-05-01)</h1>
-<div class="section" id="id155">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id156">
-<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="id157">
-<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="id158">
-<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="id159">
-<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="id160">
-<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="id161">
-<h1>2.0.4 (2008-04-13)</h1>
-<div class="section" id="id162">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id163">
-<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="id164">
-<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="id165">
-<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="id166">
-<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="id167">
-<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="id168">
-<h1>2.0.3 (2008-03-26)</h1>
-<div class="section" id="id169">
-<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="id170">
-<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="id171">
-<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="id172">
-<h1>2.0.2 (2008-02-22)</h1>
-<div class="section" id="id173">
-<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="id174">
-<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="id175">
-<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="id176">
-<h1>2.0.1 (2008-02-13)</h1>
-<div class="section" id="id177">
-<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="id178">
-<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="id179">
-<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="id180">
-<h1>2.0 (2008-02-01)</h1>
-<div class="section" id="id181">
-<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="id182">
-<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="id183">
-<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 loosing 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="id184">
-<h1>1.3.6 (2007-10-29)</h1>
-<div class="section" id="id185">
-<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="id186">
-<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="id187">
-<h1>1.3.5 (2007-10-22)</h1>
-<div class="section" id="id188">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id189">
-<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="id190">
-<h1>1.3.4 (2007-08-30)</h1>
-<div class="section" id="id191">
-<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="id192">
-<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="id193">
-<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="id194">
-<h1>1.3.3 (2007-07-26)</h1>
-<div class="section" id="id195">
-<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="id196">
-<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="id197">
-<h1>1.3.2 (2007-07-03)</h1>
-<div class="section" id="id198">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id199">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>"deallocating None" crash bug</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id200">
-<h1>1.3.1 (2007-07-02)</h1>
-<div class="section" id="id201">
-<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="id202">
-<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="id203">
-<h1>1.3 (2007-06-24)</h1>
-<div class="section" id="id204">
-<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 pickeling <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="id205">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Removing Elements from a tree could make them loose 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="id206">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>major restructuring in the documentation</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id207">
-<h1>1.2.1 (2007-02-27)</h1>
-<div class="section" id="id208">
-<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="id209">
-<h1>1.2 (2007-02-20)</h1>
-<div class="section" id="id210">
-<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="id211">
-<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="id212">
-<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 compatibiliy of the public C-API</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id213">
-<h1>1.1.2 (2006-10-30)</h1>
-<div class="section" id="id214">
-<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="id215">
-<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="id216">
-<h1>1.1.1 (2006-09-21)</h1>
-<div class="section" id="id217">
-<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="id218">
-<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="id219">
-<h1>1.1 (2006-09-13)</h1>
-<div class="section" id="id220">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Comments and processing instructions return '<!-- coment -->' 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="id221">
-<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="id222">
-<h1>1.0.4 (2006-09-09)</h1>
-<div class="section" id="id223">
-<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="id224">
-<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="id225">
-<h1>1.0.3 (2006-08-08)</h1>
-<div class="section" id="id226">
-<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="id227">
-<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="id228">
-<h1>1.0.2 (2006-06-27)</h1>
-<div class="section" id="id229">
-<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="id230">
-<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="id231">
-<h1>1.0.1 (2006-06-09)</h1>
-<div class="section" id="id232">
-<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="id233">
-<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 loose 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="id234">
-<h1>1.0 (2006-06-01)</h1>
-<div class="section" id="id235">
-<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="id236">
-<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="id237">
-<h1>0.9.2 (2006-05-10)</h1>
-<div class="section" id="id238">
-<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="id239">
-<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="id240">
-<h1>0.9.1 (2006-03-30)</h1>
-<div class="section" id="id241">
-<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="id242">
-<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="id243">
-<h1>0.9 (2006-03-20)</h1>
-<div class="section" id="id244">
-<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="id245">
-<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="id246">
-<h1>0.8 (2005-11-03)</h1>
-<div class="section" id="id247">
-<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="id248">
-<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="id249">
-<h1>0.7 (2005-06-15)</h1>
-<div class="section" id="id250">
-<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="id251">
-<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="id252">
-<h1>0.6 (2005-05-14)</h1>
-<div class="section" id="id253">
-<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="id254">
-<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="id255">
-<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="id256">
-<h1>0.5 (2005-04-08)</h1>
-<p>Initial public release.</p>
-</div>
-</div>
-<div class="footer">
-<hr class="footer" />
-Generated on: 2013-04-12.
-
-</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.10: 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>3.2.0 (2013-04-28)</h1>
+<div class="section" id="features-added">
+<h2>Features added</h2>
+</div>
+<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/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="other-changes">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id2">
+<h1>3.1.2 (2013-04-12)</h1>
+<div class="section" id="id3">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id4">
+<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="id5">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id6">
+<h1>3.1.1 (2013-03-29)</h1>
+<div class="section" id="id7">
+<h2>Features added</h2>
+</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/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="id9">
+<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="id10">
+<h1>3.1.0 (2013-02-10)</h1>
+<div class="section" id="id11">
+<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="id12">
+<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="id13">
+<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="id14">
+<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="id15">
+<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="id16">
+<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="id17">
+<h1>3.0.2 (2012-12-14)</h1>
+<div class="section" id="id18">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id19">
+<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="id20">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id21">
+<h1>3.0.1 (2012-10-14)</h1>
+<div class="section" id="id22">
+<h2>Features added</h2>
+</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/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="id24">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id25">
+<h1>3.0 (2012-10-08)</h1>
+<div class="section" id="id26">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id27">
+<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="id28">
+<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="id29">
+<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="id30">
+<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="id31">
+<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="id32">
+<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="id33">
+<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="id34">
+<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="id35">
+<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="id36">
+<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="id37">
+<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="id38">
+<h1>2.3.6 (2012-09-28)</h1>
+<div class="section" id="id39">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id40">
+<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="id41">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id42">
+<h1>2.3.5 (2012-07-31)</h1>
+<div class="section" id="id43">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id44">
+<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="id45">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id46">
+<h1>2.3.4 (2012-03-26)</h1>
+<div class="section" id="id47">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id48">
+<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="id49">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id50">
+<h1>2.3.3 (2012-01-04)</h1>
+<div class="section" id="id51">
+<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="id52">
+<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="id53">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id54">
+<h1>2.3.2 (2011-11-11)</h1>
+<div class="section" id="id55">
+<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="id56">
+<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 is 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="id57">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id58">
+<h1>2.3.1 (2011-09-25)</h1>
+<div class="section" id="id59">
+<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="id60">
+<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="id61">
+<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="id62">
+<h1>2.3 (2011-02-06)</h1>
+<div class="section" id="id63">
+<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="id64">
+<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 severly 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="id65">
+<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="id66">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id67">
+<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="id68">
+<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="id69">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id70">
+<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="id71">
+<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="id72">
+<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="id73">
+<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="id74">
+<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="id75">
+<h1>2.2.8 (2010-09-02)</h1>
+<div class="section" id="id76">
+<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="id77">
+<h1>2.2.7 (2010-07-24)</h1>
+<div class="section" id="id78">
+<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="id79">
+<h1>2.2.6 (2010-03-02)</h1>
+<div class="section" id="id80">
+<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="id81">
+<h1>2.2.5 (2010-02-28)</h1>
+<div class="section" id="id82">
+<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="id83">
+<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="id84">
+<h1>2.2.4 (2009-11-11)</h1>
+<div class="section" id="id85">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Static build of libxml2/libxslt was broken.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id86">
+<h1>2.2.3 (2009-10-30)</h1>
+<div class="section" id="id87">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id88">
+<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 honout 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="id89">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id90">
+<h1>2.2.2 (2009-06-21)</h1>
+<div class="section" id="id91">
+<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="id92">
+<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="id93">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id94">
+<h1>2.2.1 (2009-06-02)</h1>
+<div class="section" id="id95">
+<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="id96">
+<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="id97">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id98">
+<h1>2.2 (2009-03-21)</h1>
+<div class="section" id="id99">
+<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="id100">
+<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="id101">
+<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="id102">
+<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="id103">
+<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="id104">
+<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="id105">
+<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="id106">
+<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="id107">
+<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="id108">
+<h1>2.1.5 (2009-01-06)</h1>
+<div class="section" id="id109">
+<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="id110">
+<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="id111">
+<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="id112">
+<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="id113">
+<h1>2.1.4 (2008-12-12)</h1>
+<div class="section" id="id114">
+<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="id115">
+<h1>2.0.11 (2008-12-12)</h1>
+<div class="section" id="id116">
+<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="id117">
+<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="id118">
+<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="id119">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id120">
+<h1>2.1.3 (2008-11-17)</h1>
+<div class="section" id="id121">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id122">
+<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="id123">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id124">
+<h1>2.0.10 (2008-11-17)</h1>
+<div class="section" id="id125">
+<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="id126">
+<h1>2.1.2 (2008-09-05)</h1>
+<div class="section" id="id127">
+<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="id128">
+<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="id129">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id130">
+<h1>2.0.9 (2008-09-05)</h1>
+<div class="section" id="id131">
+<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="id132">
+<h1>2.1.1 (2008-07-24)</h1>
+<div class="section" id="id133">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id134">
+<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="id135">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id136">
+<h1>2.0.8 (2008-07-24)</h1>
+<div class="section" id="id137">
+<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="id138">
+<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="id139">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id140">
+<h1>2.1 (2008-07-09)</h1>
+<div class="section" id="id141">
+<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="id142">
+<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="id143">
+<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="id144">
+<h1>2.0.7 (2008-06-20)</h1>
+<div class="section" id="id145">
+<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="id146">
+<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="id147">
+<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="id148">
+<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="id149">
+<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="id150">
+<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="id151">
+<h1>2.0.6 (2008-05-31)</h1>
+<div class="section" id="id152">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id153">
+<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="id154">
+<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="id155">
+<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="id156">
+<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="id157">
+<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="id158">
+<h1>2.0.5 (2008-05-01)</h1>
+<div class="section" id="id159">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id160">
+<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="id161">
+<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="id162">
+<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="id163">
+<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="id164">
+<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="id165">
+<h1>2.0.4 (2008-04-13)</h1>
+<div class="section" id="id166">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id167">
+<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="id168">
+<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="id169">
+<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="id170">
+<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="id171">
+<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="id172">
+<h1>2.0.3 (2008-03-26)</h1>
+<div class="section" id="id173">
+<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="id174">
+<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="id175">
+<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="id176">
+<h1>2.0.2 (2008-02-22)</h1>
+<div class="section" id="id177">
+<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="id178">
+<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="id179">
+<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="id180">
+<h1>2.0.1 (2008-02-13)</h1>
+<div class="section" id="id181">
+<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="id182">
+<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="id183">
+<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="id184">
+<h1>2.0 (2008-02-01)</h1>
+<div class="section" id="id185">
+<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="id186">
+<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="id187">
+<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 loosing 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="id188">
+<h1>1.3.6 (2007-10-29)</h1>
+<div class="section" id="id189">
+<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="id190">
+<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="id191">
+<h1>1.3.5 (2007-10-22)</h1>
+<div class="section" id="id192">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id193">
+<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="id194">
+<h1>1.3.4 (2007-08-30)</h1>
+<div class="section" id="id195">
+<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="id196">
+<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="id197">
+<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="id198">
+<h1>1.3.3 (2007-07-26)</h1>
+<div class="section" id="id199">
+<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="id200">
+<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="id201">
+<h1>1.3.2 (2007-07-03)</h1>
+<div class="section" id="id202">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id203">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>"deallocating None" crash bug</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id204">
+<h1>1.3.1 (2007-07-02)</h1>
+<div class="section" id="id205">
+<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="id206">
+<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="id207">
+<h1>1.3 (2007-06-24)</h1>
+<div class="section" id="id208">
+<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 pickeling <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="id209">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Removing Elements from a tree could make them loose 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="id210">
+<h2>Other changes</h2>
+<ul class="simple">
+<li>major restructuring in the documentation</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id211">
+<h1>1.2.1 (2007-02-27)</h1>
+<div class="section" id="id212">
+<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="id213">
+<h1>1.2 (2007-02-20)</h1>
+<div class="section" id="id214">
+<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="id215">
+<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="id216">
+<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 compatibiliy of the public C-API</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id217">
+<h1>1.1.2 (2006-10-30)</h1>
+<div class="section" id="id218">
+<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="id219">
+<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="id220">
+<h1>1.1.1 (2006-09-21)</h1>
+<div class="section" id="id221">
+<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="id222">
+<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="id223">
+<h1>1.1 (2006-09-13)</h1>
+<div class="section" id="id224">
+<h2>Features added</h2>
+<ul class="simple">
+<li>Comments and processing instructions return '<!-- coment -->' 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="id225">
+<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="id226">
+<h1>1.0.4 (2006-09-09)</h1>
+<div class="section" id="id227">
+<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="id228">
+<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="id229">
+<h1>1.0.3 (2006-08-08)</h1>
+<div class="section" id="id230">
+<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="id231">
+<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="id232">
+<h1>1.0.2 (2006-06-27)</h1>
+<div class="section" id="id233">
+<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="id234">
+<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="id235">
+<h1>1.0.1 (2006-06-09)</h1>
+<div class="section" id="id236">
+<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="id237">
+<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 loose 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="id238">
+<h1>1.0 (2006-06-01)</h1>
+<div class="section" id="id239">
+<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="id240">
+<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="id241">
+<h1>0.9.2 (2006-05-10)</h1>
+<div class="section" id="id242">
+<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="id243">
+<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="id244">
+<h1>0.9.1 (2006-03-30)</h1>
+<div class="section" id="id245">
+<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="id246">
+<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="id247">
+<h1>0.9 (2006-03-20)</h1>
+<div class="section" id="id248">
+<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="id249">
+<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="id250">
+<h1>0.8 (2005-11-03)</h1>
+<div class="section" id="id251">
+<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="id252">
+<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="id253">
+<h1>0.7 (2005-06-15)</h1>
+<div class="section" id="id254">
+<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="id255">
+<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="id256">
+<h1>0.6 (2005-05-14)</h1>
+<div class="section" id="id257">
+<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="id258">
+<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="id259">
+<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="id260">
+<h1>0.5 (2005-04-08)</h1>
+<p>Initial public release.</p>
+</div>
+</div>
+<div class="footer">
+<hr class="footer" />
+Generated on: 2013-04-28.
+
+</div>
+</body>
+</html>
</head>
<body>
<div class="document" id="elementtree-compatibility-of-lxml-etree">
-<div class="sidemenu"><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#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-sources">Building lxml from 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#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">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#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#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">Building an egg</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 3 1 2-menu"><li class="menu title"><a href="changes-3.1.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="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">ElementTree compatibility of lxml.etree</h1>
+<div class="sidemenu"><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#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-sources">Building lxml from 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#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">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#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#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">Building an egg</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 3 2 0-menu"><li class="menu title"><a href="changes-3.2.0.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="http://lxml.de/sitemap.html">Sitemap</a></li></ul></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: 2013-04-12.
+Generated on: 2013-04-28.
</div>
</body>
</head>
<body>
<div class="document" id="credits">
-<div class="sidemenu"><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#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-sources">Building lxml from 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#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">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#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#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">Building an egg</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 3 1 2-menu"><li class="menu title"><a href="changes-3.1.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="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">Credits</h1>
+<div class="sidemenu"><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#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-sources">Building lxml from 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#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">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#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#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">Building an egg</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 3 2 0-menu"><li class="menu title"><a href="changes-3.2.0.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="http://lxml.de/sitemap.html">Sitemap</a></li></ul></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: 2013-04-12.
+Generated on: 2013-04-28.
</div>
</body>
</head>
<body>
<div class="document" id="lxml-cssselect">
-<div class="sidemenu"><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#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-sources">Building lxml from 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#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">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#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#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">Building an egg</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 3 1 2-menu"><li class="menu title"><a href="changes-3.1.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="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">lxml.cssselect</h1>
+<div class="sidemenu"><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#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-sources">Building lxml from 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#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">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#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#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">Building an egg</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 3 2 0-menu"><li class="menu title"><a href="changes-3.2.0.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="http://lxml.de/sitemap.html">Sitemap</a></li></ul></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: 2013-04-12.
+Generated on: 2013-04-28.
</div>
</body>
</head>
<body>
<div class="document" id="using-custom-element-classes-in-lxml">
-<div class="sidemenu"><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#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-sources">Building lxml from 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#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">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#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#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">Building an egg</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 3 1 2-menu"><li class="menu title"><a href="changes-3.1.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="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">Using custom Element classes in lxml</h1>
+<div class="sidemenu"><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#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-sources">Building lxml from 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#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">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#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#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">Building an egg</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 3 2 0-menu"><li class="menu title"><a href="changes-3.2.0.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="http://lxml.de/sitemap.html">Sitemap</a></li></ul></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: 2013-04-12.
+Generated on: 2013-04-28.
</div>
</body>
</head>
<body>
<div class="document" id="beautifulsoup-parser">
-<div class="sidemenu"><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#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-sources">Building lxml from 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#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">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#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#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">Building an egg</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 3 1 2-menu"><li class="menu title"><a href="changes-3.1.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="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">BeautifulSoup Parser</h1>
+<div class="sidemenu"><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#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-sources">Building lxml from 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#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">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#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#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">Building an egg</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 3 2 0-menu"><li class="menu title"><a href="changes-3.2.0.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="http://lxml.de/sitemap.html">Sitemap</a></li></ul></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 that parses broken HTML, just like
lxml supports it based on the parser of libxml2. BeautifulSoup uses a
</div>
<div class="footer">
<hr class="footer" />
-Generated on: 2013-04-12.
+Generated on: 2013-04-28.
</div>
</body>
</head>
<body>
<div class="document" id="python-extensions-for-xpath-and-xslt">
-<div class="sidemenu"><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#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-sources">Building lxml from 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#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">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#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#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">Building an egg</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 3 1 2-menu"><li class="menu title"><a href="changes-3.1.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="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">Python extensions for XPath and XSLT</h1>
+<div class="sidemenu"><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#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-sources">Building lxml from 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#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">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#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#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">Building an egg</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 3 2 0-menu"><li class="menu title"><a href="changes-3.2.0.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="http://lxml.de/sitemap.html">Sitemap</a></li></ul></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: 2013-04-12.
+Generated on: 2013-04-28.
</div>
</body>
</head>
<body>
<div class="document" id="html5lib-parser">
-<div class="sidemenu"><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#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-sources">Building lxml from 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#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">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#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#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">Building an egg</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 3 1 2-menu"><li class="menu title"><a href="changes-3.1.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="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">html5lib Parser</h1>
+<div class="sidemenu"><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#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-sources">Building lxml from 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#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">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#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#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">Building an egg</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 3 2 0-menu"><li class="menu title"><a href="changes-3.2.0.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="http://lxml.de/sitemap.html">Sitemap</a></li></ul></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: 2013-04-12.
+Generated on: 2013-04-28.
</div>
</body>
</head>
<body>
<div class="document" id="lxml">
-<div class="sidemenu"><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#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-sources">Building lxml from 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#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">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#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#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">Building an egg</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 3 1 2-menu"><li class="menu title"><a href="changes-3.1.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="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">lxml - XML and HTML with Python</h1>
+<div class="sidemenu"><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#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-sources">Building lxml from 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#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">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#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#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">Building an egg</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 3 2 0-menu"><li class="menu title"><a href="changes-3.2.0.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="http://lxml.de/sitemap.html">Sitemap</a></li></ul></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>
answered in the <a class="reference external" href="FAQ.html">FAQ</a>.</p>
<div class="section" id="support-the-project">
<h1>Support the project</h1>
-<p>lxml has been downloaded from the Python Package Index
-more than five million times and is also available directly
-in many package distributions e.g. for Linux or MacOS-X.</p>
+<p>lxml has been downloaded from the <a class="reference external" href="https://pypi.python.org/pypi/lxml">Python Package Index</a> more than
+two million times and is also available directly in many package
+distributions, e.g. for Linux or MacOS-X.</p>
<p>Most people who use lxml do so because they like using it.
-If you want to show us that you like it, please blog about
-your experience with it, link to the project website,
-or send us a flattr.</p>
-<p class="center"><a class="reference external" href="https://flattr.com/thing/268156/lxml-The-Python-XML-Toolkit"><img alt="Flattr the lxml project" src="https://github.com/lxml/lxml/raw/master/doc/html/flattr-badge-large.png" style="width: 93px; height: 20px;" /></a></p>
-<p>However, if you are using lxml for your work and feel like giving a bit
-of your own benefit back to support the project, consider sending us
+You can show us that you like it by blogging about your experience
+with it and linking to the project website.</p>
+<p>If you are using lxml for your work and feel like giving a bit of
+your own benefit back to support the project, consider sending us
money through PayPal that we can use for fixing bugs in the software
and improving its features and documentation. Please read the Legal
Notice below, at the bottom of this page. Thank you for your support.</p>
<p class="center"><a class="reference external" href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=R56JE3VCPDA9N"><img alt="Donate to the lxml project" src="https://github.com/lxml/lxml/raw/master/doc/html/paypal_btn_donateCC_LG.gif" style="width: 160px; height: 47px;" /></a></p>
-<p>Note that Flattr keeps 10% of the money for itself, so do not send
-any larger amounts through Flattr. Use PayPal for donations instead,
-or <a class="reference external" href="http://consulting.behnel.de/">contact Stefan Behnel</a> for other ways to support the lxml project,
-as well as commercial consulting, customisations and trainings on lxml
-and fast Python XML processing.</p>
+<p>Alternatively, if you prefer expressing your appreciation in a monthy
+dose of pennies rather than a dedicated donation, you can also use
+Flattr to do so.</p>
+<p class="center"><a class="reference external" href="https://flattr.com/thing/268156/lxml-The-Python-XML-Toolkit"><img alt="Flattr the lxml project" src="https://github.com/lxml/lxml/raw/master/doc/html/flattr-badge-large.png" style="width: 93px; height: 20px;" /></a></p>
+<p>Note that Flattr keeps 10% of the transactions for itself, which is money
+you pay that will not reach us. Do not send any larger amounts through
+Flattr. Use PayPal for donations instead, or <a class="reference external" href="http://consulting.behnel.de/">contact Stefan Behnel</a> for
+other ways to support the lxml project, as well as commercial consulting,
+customisations and trainings on lxml and fast Python XML processing.</p>
</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-3.1.2.pdf">PDF
+<p>The complete lxml documentation is available for download as <a class="reference external" href="lxmldoc-3.2.0.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">
<p>The best way to download lxml is to visit <a class="reference external" href="http://pypi.python.org/pypi/lxml/">lxml at the Python Package
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>. Binary builds are not available from
-PyPI due to the increased maintenance overhead.</p>
-<p>The latest version is <a class="reference external" href="/files/lxml-3.1.2.tgz">lxml 3.1.2</a>, released 2013-04-12
-(<a class="reference external" href="/changes-3.1.2.html">changes for 3.1.2</a>). <a class="reference external" href="#old-versions">Older versions</a>
+with <a class="reference external" href="pubkey.asc">this key</a>.</p>
+<p>The latest version is <a class="reference external" href="/files/lxml-3.2.0.tgz">lxml 3.2.0</a>, released 2013-04-28
+(<a class="reference external" href="/changes-3.2.0.html">changes for 3.2.0</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-3.1.2.pdf">PDF documentation</a>.</p>
+<a class="reference external" href="lxmldoc-3.2.0.pdf">PDF documentation</a>.</p>
<p>The latest installable developer sources should usually be available from the
<a class="reference external" href="http://lxml.de/build/">build server</a>. 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/2.2/">2.2</a>
<a class="reference external" href="http://lxml.de/2.3/">2.3</a>
<a class="reference external" href="http://lxml.de/3.0/">3.0</a>
+<a class="reference external" href="http://lxml.de/3.1/">3.1</a>
and the <a class="reference external" href="http://lxml.de/dev/">latest in-development version</a>.</p>
<ul class="simple">
+<li><a class="reference external" href="/files/lxml-3.1.2.tgz">lxml 3.1.2</a>, released 2013-04-28 (<a class="reference external" href="/changes-3.1.2.html">changes for 3.1.2</a>)</li>
<li><a class="reference external" href="/files/lxml-3.1.1.tgz">lxml 3.1.1</a>, released 2013-03-29 (<a class="reference external" href="/changes-3.1.1.html">changes for 3.1.1</a>)</li>
<li><a class="reference external" href="/files/lxml-3.1.0.tgz">lxml 3.1.0</a>, released 2013-02-10 (<a class="reference external" href="/changes-3.1.0.html">changes for 3.1.0</a>)</li>
<li><a class="reference external" href="/files/lxml-3.1beta1.tgz">lxml 3.1beta1</a>, released 2012-12-21 (<a class="reference external" href="/changes-3.1beta1.html">changes for 3.1beta1</a>)</li>
</div>
<div class="footer">
<hr class="footer" />
-Generated on: 2013-04-12.
+Generated on: 2013-04-28.
</div>
</body>
</head>
<body>
<div class="document" id="installing-lxml">
-<div class="sidemenu"><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#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-sources">Building lxml from 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#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">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#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#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">Building an egg</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 3 1 2-menu"><li class="menu title"><a href="changes-3.1.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="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">Installing lxml</h1>
+<div class="sidemenu"><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#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-sources">Building lxml from 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#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">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#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#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">Building an egg</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 3 2 0-menu"><li class="menu title"><a href="changes-3.2.0.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="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">Installing lxml</h1>
<p>For special installation instructions regarding MS Windows and
MacOS-X, see the specific sections below.</p>
</div>
<div class="footer">
<hr class="footer" />
-Generated on: 2013-04-12.
+Generated on: 2013-04-28.
</div>
</body>
</head>
<body>
<div class="document" id="why-lxml">
-<div class="sidemenu"><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#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-sources">Building lxml from 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#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">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#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#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">Building an egg</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 3 1 2-menu"><li class="menu title"><a href="changes-3.1.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="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">Why lxml?</h1>
+<div class="sidemenu"><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#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-sources">Building lxml from 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#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">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#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#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">Building an egg</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 3 2 0-menu"><li class="menu title"><a href="changes-3.2.0.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="http://lxml.de/sitemap.html">Sitemap</a></li></ul></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: 2013-04-12.
+Generated on: 2013-04-28.
</div>
</body>
</head>
<body>
<div class="document" id="how-to-read-the-source-of-lxml">
-<div class="sidemenu"><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#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-sources">Building lxml from 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#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">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#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#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">Building an egg</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 3 1 2-menu"><li class="menu title"><a href="changes-3.1.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="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">How to read the source of lxml</h1>
+<div class="sidemenu"><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#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-sources">Building lxml from 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#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">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#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#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">Building an egg</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 3 2 0-menu"><li class="menu title"><a href="changes-3.2.0.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="http://lxml.de/sitemap.html">Sitemap</a></li></ul></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: 2013-04-12.
+Generated on: 2013-04-28.
</div>
</body>
</head>
<body>
<div class="document" id="lxml-html">
-<div class="sidemenu"><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#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-sources">Building lxml from 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#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">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#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#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">Building an egg</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 3 1 2-menu"><li class="menu title"><a href="changes-3.1.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="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">lxml.html</h1>
+<div class="sidemenu"><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#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-sources">Building lxml from 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#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">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#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#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">Building an egg</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 3 2 0-menu"><li class="menu title"><a href="changes-3.2.0.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="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">lxml.html</h1>
<table class="docinfo" frame="void" rules="none">
<col class="docinfo-name" />
<col class="docinfo-content" />
<p>To remove the all suspicious content from this unparsed document, use the
<tt class="docutils literal">clean_html</tt> function:</p>
<div class="syntax"><pre><span class="gp">>>> </span><span class="kn">from</span> <span class="nn">lxml.html.clean</span> <span class="kn">import</span> <span class="n">clean_html</span>
-
<span class="gp">>>> </span><span class="k">print</span> <span class="n">clean_html</span><span class="p">(</span><span class="n">html</span><span class="p">)</span>
-<span class="go"><html></span>
-<span class="go"> <body></span>
-<span class="go"> <div></span>
-<span class="go"> <style>/* deleted */</style></span>
-<span class="go"> <a href="">a link</a></span>
-<span class="go"> <a href="#">another link</a></span>
-<span class="go"> <p>a paragraph</p></span>
-<span class="go"> <div>secret EVIL!</div></span>
-<span class="go"> of EVIL!</span>
-<span class="go"> Password:</span>
-<span class="go"> annoying EVIL!</span>
-<span class="go"> <a href="evil-site">spam spam SPAM!</a></span>
-<span class="go"> <img src="evil!"></span>
-<span class="go"> </div></span>
-<span class="go"> </body></span>
-<span class="go"></html></span>
+<span class="go"><div><style>/* deleted */</style><body></span>
+
+<span class="go"> <a href="">a link</a></span>
+<span class="go"> <a href="#">another link</a></span>
+<span class="go"> <p>a paragraph</p></span>
+<span class="go"> <div>secret EVIL!</div></span>
+<span class="go"> of EVIL!</span>
+
+
+<span class="go"> Password:</span>
+<span class="go"> annoying EVIL!<a href="evil-site">spam spam SPAM!</a></span>
+<span class="go"> <img src="evil!"></body></div></span>
</pre></div>
<p>The <tt class="docutils literal">Cleaner</tt> class supports several keyword arguments to control exactly
which content is removed:</p>
</div>
<div class="footer">
<hr class="footer" />
-Generated on: 2013-04-12.
+Generated on: 2013-04-28.
</div>
</body>
</head>
<body>
<div class="document" id="lxml-objectify">
-<div class="sidemenu"><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#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-sources">Building lxml from 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#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">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#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#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">Building an egg</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 3 1 2-menu"><li class="menu title"><a href="changes-3.1.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="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">lxml.objectify</h1>
+<div class="sidemenu"><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#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-sources">Building lxml from 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#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">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#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#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">Building an egg</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 3 2 0-menu"><li class="menu title"><a href="changes-3.2.0.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="http://lxml.de/sitemap.html">Sitemap</a></li></ul></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: 2013-04-12.
+Generated on: 2013-04-28.
</div>
</body>
</head>
<body>
<div class="document" id="parsing-xml-and-html-with-lxml">
-<div class="sidemenu"><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#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-sources">Building lxml from 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#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">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#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#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">Building an egg</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 3 1 2-menu"><li class="menu title"><a href="changes-3.1.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="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">Parsing XML and HTML with lxml</h1>
+<div class="sidemenu"><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#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-sources">Building lxml from 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#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">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#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#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">Building an egg</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 3 2 0-menu"><li class="menu title"><a href="changes-3.2.0.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="http://lxml.de/sitemap.html">Sitemap</a></li></ul></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: 2013-04-12.
+Generated on: 2013-04-28.
</div>
</body>
</head>
<body>
<div class="document" id="benchmarks-and-speed">
-<div class="sidemenu"><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#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-sources">Building lxml from 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#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">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#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#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">Building an egg</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 3 1 2-menu"><li class="menu title"><a href="changes-3.1.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="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">Benchmarks and Speed</h1>
+<div class="sidemenu"><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#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-sources">Building lxml from 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#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">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#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#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">Building an egg</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 3 2 0-menu"><li class="menu title"><a href="changes-3.2.0.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="http://lxml.de/sitemap.html">Sitemap</a></li></ul></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: 2013-04-12.
+Generated on: 2013-04-28.
</div>
</body>
</head>
<body>
<div class="document" id="document-loading-and-url-resolving">
-<div class="sidemenu"><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#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-sources">Building lxml from 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#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">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#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#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">Building an egg</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 3 1 2-menu"><li class="menu title"><a href="changes-3.1.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="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">Document loading and URL resolving</h1>
+<div class="sidemenu"><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#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-sources">Building lxml from 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#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">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#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#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">Building an egg</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 3 2 0-menu"><li class="menu title"><a href="changes-3.2.0.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="http://lxml.de/sitemap.html">Sitemap</a></li></ul></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: 2013-04-12.
+Generated on: 2013-04-28.
</div>
</body>
</head>
<body>
<div class="document" id="sax-support">
-<div class="sidemenu"><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#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-sources">Building lxml from 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#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">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#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#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">Building an egg</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 3 1 2-menu"><li class="menu title"><a href="changes-3.1.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="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">Sax support</h1>
+<div class="sidemenu"><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#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-sources">Building lxml from 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#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">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#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#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">Building an egg</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 3 2 0-menu"><li class="menu title"><a href="changes-3.2.0.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="http://lxml.de/sitemap.html">Sitemap</a></li></ul></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: 2013-04-12.
+Generated on: 2013-04-28.
</div>
</body>
</head>
<body>
<h1>Sitemap of lxml.de - Processing XML and HTML with Python</h1>
- <div class="sidemenu"><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#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-sources">Building lxml from 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#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">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#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#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">Building an egg</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 3 1 2-menu"><li class="menu title"><a href="changes-3.1.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="http://lxml.de/files/">Download files</a></li></ul></div></body>
+ <div class="sidemenu"><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#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-sources">Building lxml from 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#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">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#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#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">Building an egg</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 3 2 0-menu"><li class="menu title"><a href="changes-3.2.0.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="http://lxml.de/files/">Download files</a></li></ul></div></body>
</html>
\ No newline at end of file
</head>
<body>
<div class="document" id="the-lxml-etree-tutorial">
-<div class="sidemenu"><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#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-sources">Building lxml from 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#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">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#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#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">Building an egg</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 3 1 2-menu"><li class="menu title"><a href="changes-3.1.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="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">The lxml.etree Tutorial</h1>
+<div class="sidemenu"><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#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-sources">Building lxml from 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#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">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#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#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">Building an egg</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 3 2 0-menu"><li class="menu title"><a href="changes-3.2.0.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="http://lxml.de/sitemap.html">Sitemap</a></li></ul></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: 2013-04-12.
+Generated on: 2013-04-28.
</div>
</body>
</head>
<body>
<div class="document" id="validation-with-lxml">
-<div class="sidemenu"><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#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-sources">Building lxml from 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#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">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#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#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">Building an egg</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 3 1 2-menu"><li class="menu title"><a href="changes-3.1.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="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">Validation with lxml</h1>
+<div class="sidemenu"><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#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-sources">Building lxml from 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#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">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#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#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">Building an egg</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 3 2 0-menu"><li class="menu title"><a href="changes-3.2.0.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="http://lxml.de/sitemap.html">Sitemap</a></li></ul></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: 2013-04-12.
+Generated on: 2013-04-28.
</div>
</body>
</head>
<body>
<div class="document" id="xpath-and-xslt-with-lxml">
-<div class="sidemenu"><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#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-sources">Building lxml from 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#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">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#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#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">Building an egg</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 3 1 2-menu"><li class="menu title"><a href="changes-3.1.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="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">XPath and XSLT with lxml</h1>
+<div class="sidemenu"><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#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-sources">Building lxml from 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#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">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#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#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">Building an egg</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 3 2 0-menu"><li class="menu title"><a href="changes-3.2.0.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="http://lxml.de/sitemap.html">Sitemap</a></li></ul></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: 2013-04-12.
+Generated on: 2013-04-28.
</div>
</body>
.. sourcecode:: pycon
>>> from lxml.html.clean import clean_html
-
>>> print clean_html(html)
- <html>
- <body>
- <div>
- <style>/* deleted */</style>
- <a href="">a link</a>
- <a href="#">another link</a>
- <p>a paragraph</p>
- <div>secret EVIL!</div>
- of EVIL!
- Password:
- annoying EVIL!
- <a href="evil-site">spam spam SPAM!</a>
- <img src="evil!">
- </div>
- </body>
- </html>
+ <div><style>/* deleted */</style><body>
+
+ <a href="">a link</a>
+ <a href="#">another link</a>
+ <p>a paragraph</p>
+ <div>secret EVIL!</div>
+ of EVIL!
+
+
+ Password:
+ annoying EVIL!<a href="evil-site">spam spam SPAM!</a>
+ <img src="evil!"></body></div>
The ``Cleaner`` class supports several keyword arguments to control exactly
which content is removed:
The best way to download lxml is to visit `lxml at the Python Package
Index <http://pypi.python.org/pypi/lxml/>`_ (PyPI). It has the source
that compiles on various platforms. The source distribution is signed
-with `this key <pubkey.asc>`_. Binary builds are not available from
-PyPI due to the increased maintenance overhead.
+with `this key <pubkey.asc>`_.
-The latest version is `lxml 3.1.2`_, released 2013-04-12
-(`changes for 3.1.2`_). `Older versions <#old-versions>`_
+The latest version is `lxml 3.2.0`_, released 2013-04-28
+(`changes for 3.2.0`_). `Older versions <#old-versions>`_
are listed below.
Please take a look at the
`2.2 <http://lxml.de/2.2/>`_
`2.3 <http://lxml.de/2.3/>`_
`3.0 <http://lxml.de/3.0/>`_
+`3.1 <http://lxml.de/3.1/>`_
and the `latest in-development version <http://lxml.de/dev/>`_.
-.. _`PDF documentation`: lxmldoc-3.1.2.pdf
+.. _`PDF documentation`: lxmldoc-3.2.0.pdf
+
+* `lxml 3.1.2`_, released 2013-04-28 (`changes for 3.1.2`_)
* `lxml 3.1.1`_, released 2013-03-29 (`changes for 3.1.1`_)
* `older releases <http://lxml.de/2.3/#old-versions>`_
+.. _`lxml 3.2.0`: /files/lxml-3.2.0.tgz
.. _`lxml 3.1.2`: /files/lxml-3.1.2.tgz
.. _`lxml 3.1.1`: /files/lxml-3.1.1.tgz
.. _`lxml 3.1.0`: /files/lxml-3.1.0.tgz
.. _`lxml 2.3.1`: /files/lxml-2.3.1.tgz
.. _`lxml 2.3`: /files/lxml-2.3.tgz
+.. _`changes for 3.2.0`: /changes-3.2.0.html
.. _`changes for 3.1.2`: /changes-3.1.2.html
.. _`changes for 3.1.1`: /changes-3.1.1.html
.. _`changes for 3.1.0`: /changes-3.1.0.html
Metadata-Version: 1.1
Name: lxml
-Version: 3.1.2
+Version: 3.2.0
Summary: Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API.
Home-page: http://lxml.de/
Author: lxml dev team
Author-email: lxml-dev@lxml.de
License: UNKNOWN
-Download-URL: http://pypi.python.org/packages/source/l/lxml/lxml-3.1.2.tar.gz
+Download-URL: http://pypi.python.org/packages/source/l/lxml/lxml-3.2.0.tar.gz
Description: lxml is a Pythonic, mature binding for the libxml2 and libxslt libraries. It
provides safe and convenient access to these libraries using the ElementTree
API.
After an official release of a new stable series, bug fixes may become
available at
- https://github.com/lxml/lxml/tree/lxml-3.1 .
- Running ``easy_install lxml==3.1bugfix`` will install
+ https://github.com/lxml/lxml/tree/lxml-3.2 .
+ Running ``easy_install lxml==3.2bugfix`` will install
the unreleased branch state from
- https://github.com/lxml/lxml/tarball/lxml-3.1#egg=lxml-3.1bugfix
+ https://github.com/lxml/lxml/tarball/lxml-3.2#egg=lxml-3.2bugfix
as soon as a maintenance branch has been established. Note that this
requires Cython to be installed at an appropriate version for the build.
- 3.1.2 (2013-04-12)
+ 3.2.0 (2013-04-28)
==================
Features added
Bugs fixed
----------
- * LP#1136509: Passing attributes through the namespace-unaware API of
- the sax bridge (i.e. the ``handler.startElement()`` method) failed
- with a ``TypeError``. Patch by Mike Bayer.
+ * LP#690319: Leading whitespace could change the behaviour of the string
+ parsing functions in ``lxml.html``.
- * LP#1123074: Fix serialisation error in XSLT output when converting
- the result tree to a Unicode string.
+ * LP#599318: The string parsing functions in ``lxml.html`` are more robust
+ in the face of uncommon HTML content like framesets or missing body tags.
+ Patch by Stefan Seelmann.
- * GH#105: Replace illegal usage of ``xmlBufLength()`` in libxml2 2.9.0
- by properly exported API function ``xmlBufUse()``.
+ * LP#712941: I/O errors while trying to access files with paths that contain
+ non-ASCII characters could raise ``UnicodeDecodeError`` instead of properly
+ reporting the ``IOError``.
+
+ * LP#673205: Parsing from in-memory strings disabled network access in the
+ default parser and made subsequent attempts to parse from a URL fail.
+
+ * LP#971754: lxml.html.clean appends 'nofollow' to 'rel' attributes instead
+ of overwriting the current value.
+
+ * LP#715687: lxml.html.clean no longer discards scripts that are explicitly
+ allowed by the user provided whitelist. Patch by Christine Koppelt.
Other changes
-------------
doc/html/api.html
doc/html/build.html
doc/html/capi.html
-doc/html/changes-3.1.2.html
+doc/html/changes-3.2.0.html
doc/html/compatibility.html
doc/html/credits.html
doc/html/cssselect.html
doc/html/api/lxml.tests.common_imports.LargeFileLike-class.html
doc/html/api/lxml.tests.common_imports.LargeFileLikeUnicode-class.html
doc/html/api/lxml.tests.common_imports.SillyFileLike-class.html
+doc/html/api/lxml.tests.dummy_http_server-module.html
+doc/html/api/lxml.tests.dummy_http_server-pysrc.html
+doc/html/api/lxml.tests.dummy_http_server.HTTPRequestCollector-class.html
+doc/html/api/lxml.tests.dummy_http_server.WebServer-class.html
+doc/html/api/lxml.tests.dummy_http_server._RequestHandler-class.html
doc/html/api/lxml.tests.test_builder-module.html
doc/html/api/lxml.tests.test_builder-pysrc.html
doc/html/api/lxml.tests.test_builder.BuilderTestCase-class.html
doc/html/api/lxml.tests.test_htmlparser-module.html
doc/html/api/lxml.tests.test_htmlparser-pysrc.html
doc/html/api/lxml.tests.test_htmlparser.HtmlParserTestCase-class.html
+doc/html/api/lxml.tests.test_http_io-module.html
+doc/html/api/lxml.tests.test_http_io-pysrc.html
+doc/html/api/lxml.tests.test_http_io.HttpIOTestCase-class.html
doc/html/api/lxml.tests.test_incremental_xmlfile-module.html
doc/html/api/lxml.tests.test_incremental_xmlfile-pysrc.html
doc/html/api/lxml.tests.test_incremental_xmlfile.BytesIOXmlFileTestCase-class.html
doc/html/api/lxml.tests.test_xslt.Py3XSLTTestCase-class.html
doc/html/api/lxml.usedoctest-module.html
doc/html/api/lxml.usedoctest-pysrc.html
+doc/html/api/mimetools.Message-class.html
doc/html/api/module-tree.html
doc/html/api/redirect.html
doc/html/api/str-class.html
doc/html/api/toc-lxml.sax-module.html
doc/html/api/toc-lxml.tests-module.html
doc/html/api/toc-lxml.tests.common_imports-module.html
+doc/html/api/toc-lxml.tests.dummy_http_server-module.html
doc/html/api/toc-lxml.tests.test_builder-module.html
doc/html/api/toc-lxml.tests.test_classlookup-module.html
doc/html/api/toc-lxml.tests.test_css-module.html
doc/html/api/toc-lxml.tests.test_errors-module.html
doc/html/api/toc-lxml.tests.test_etree-module.html
doc/html/api/toc-lxml.tests.test_htmlparser-module.html
+doc/html/api/toc-lxml.tests.test_http_io-module.html
doc/html/api/toc-lxml.tests.test_incremental_xmlfile-module.html
doc/html/api/toc-lxml.tests.test_io-module.html
doc/html/api/toc-lxml.tests.test_isoschematron-module.html
src/lxml/html/tests/test_formfill.txt
src/lxml/html/tests/test_forms.py
src/lxml/html/tests/test_forms.txt
+src/lxml/html/tests/test_frames.py
src/lxml/html/tests/test_html5parser.py
src/lxml/html/tests/test_rewritelinks.py
src/lxml/html/tests/test_rewritelinks.txt
src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/readme.txt
src/lxml/tests/__init__.py
src/lxml/tests/common_imports.py
+src/lxml/tests/dummy_http_server.py
src/lxml/tests/shakespeare.html
src/lxml/tests/test-document.xslt
src/lxml/tests/test-string.xml
src/lxml/tests/test_errors.py
src/lxml/tests/test_etree.py
src/lxml/tests/test_htmlparser.py
+src/lxml/tests/test_http_io.py
src/lxml/tests/test_import.xsd
src/lxml/tests/test_inc.xsd
src/lxml/tests/test_incremental_xmlfile.py
cdef object _decodeFilename(const_xmlChar* c_path):
u"""Make the filename a unicode string if we are in Py3.
"""
- c_len = tree.xmlStrlen(c_path)
+ return _decodeFilenameWithLength(c_path, tree.xmlStrlen(c_path))
+
+cdef object _decodeFilenameWithLength(const_xmlChar* c_path, size_t c_len):
+ u"""Make the filename a unicode string if we are in Py3.
+ """
if _isFilePath(c_path):
try:
return python.PyUnicode_Decode(
# parsing
################################################################################
+_looks_like_full_html_unicode = re.compile(
+ unicode(r'^\s*<(?:html|!doctype)'), re.I).match
+_looks_like_full_html_bytes = re.compile(
+ r'^\s*<(?:html|!doctype)'.encode('ascii'), re.I).match
+
def document_fromstring(html, parser=None, **kw):
if parser is None:
parser = html_parser
if parser is None:
parser = html_parser
# FIXME: check what happens when you give html with a body, head, etc.
- start = html[:20].lstrip().lower()
- if sys.version_info[0] >= 3 and hasattr(start, 'decode'): # Py3 can't mix bytes into startswith()
- start = start.decode('ISO8859-1')
- if not start.startswith('<html') and not start.startswith('<!doctype'):
- html = '<html><body>%s</body></html>' % html
+ if isinstance(html, bytes):
+ if not _looks_like_full_html_bytes(html):
+ html = '<html><body>%s</body></html>'.encode('ascii') % html
+ else:
+ if not _looks_like_full_html_unicode(html):
+ html = '<html><body>%s</body></html>' % html
doc = document_fromstring(html, parser=parser, base_url=base_url, **kw)
assert _nons(doc.tag) == 'html'
bodies = [e for e in doc if _nons(e.tag) == 'body']
"""
if parser is None:
parser = html_parser
- start = html[:10].lstrip().lower()
- if sys.version_info[0] >= 3 and hasattr(start, 'decode'): # Py3 can't mix bytes into startswith()
- start = start.decode('ISO8859-1')
- if start.startswith('<html') or start.startswith('<!doctype'):
- # Looks like a full HTML document
- return document_fromstring(html, parser=parser, base_url=base_url, **kw)
- # otherwise, lets parse it out...
+ if isinstance(html, bytes):
+ is_full_html = _looks_like_full_html_bytes(html)
+ else:
+ is_full_html = _looks_like_full_html_unicode(html)
doc = document_fromstring(html, parser=parser, base_url=base_url, **kw)
+ if is_full_html:
+ return doc
+ # otherwise, lets parse it out...
bodies = doc.findall('body')
if not bodies:
bodies = doc.findall('{%s}body' % XHTML_NAMESPACE)
# We don't care about text or tail in a head
other_head.drop_tree()
return doc
+ if body is None:
+ return doc
if (len(body) == 1 and (not body.text or not body.text.strip())
and (not body[-1].tail or not body[-1].tail.strip())):
# The body has just one element, so it was probably a single
Removes any ``<script>`` tags.
``javascript``:
- Removes any Javascript, like an ``onclick`` attribute.
+ Removes any Javascript, like an ``onclick`` attribute. Also removes stylesheets
+ as they could contain Javascript.
``comments``:
Removes any comments.
Note that this parameter might not work as intended if you do not
make the links absolute before doing the cleaning.
+ Note that you may also need to set ``whitelist_tags``.
+
``whitelist_tags``:
A set of tags that can be included with ``host_whitelist``.
The default is ``iframe`` and ``embed``; you may wish to
for el in _find_styled_elements(doc):
old = el.get('style')
new = _css_javascript_re.sub('', old)
- new = _css_import_re.sub('', old)
+ new = _css_import_re.sub('', new)
if self._has_sneaky_javascript(new):
# Something tricky is going on...
del el.attrib['style']
for el in list(doc.iter('link')):
if 'stylesheet' in el.get('rel', '').lower():
# Note this kills alternate stylesheets as well
- el.drop_tree()
+ if not self.allow_element(el):
+ el.drop_tree()
if self.meta:
kill_tags.add('meta')
if self.page_structure:
if self.add_nofollow:
for el in _find_external_links(doc):
if not self.allow_follow(el):
- el.set('rel', 'nofollow')
+ rel = el.get('rel')
+ if rel:
+ if ('nofollow' in rel
+ and ' nofollow ' in (' %s ' % rel)):
+ continue
+ rel = '%s nofollow' % rel
+ else:
+ rel = 'nofollow'
+ el.set('rel', rel)
def allow_follow(self, anchor):
"""
1
>>> print(docs[0])
Test
+
+Bug 599318: Call fromstring with a frameset fragment should not raise an error,
+the whole document is returned.
+
+ >>> import lxml.html
+ >>> content='''
+ ... <frameset>
+ ... <frame src="main.php" name="srcpg">
+ ... </frameset>'''
+ >>> etree_document = lxml.html.fromstring(content)
+ >>> print(tostring(etree_document, encoding=unicode))
+ <html><frameset><frame src="main.php" name="srcpg"></frameset></html>
+
+Bug 599318: Call fromstring with a div fragment should not raise an error,
+only the element is returned
+
+ >>> import lxml.html
+ >>> content='<div></div>'
+ >>> etree_document = lxml.html.fromstring(content)
+ >>> print(tostring(etree_document, encoding=unicode))
+ <div></div>
+
+Bug 599318: Call fromstring with a head fragment should not raise an error,
+the whole document is returned.
+
+ >>> import lxml.html
+ >>> content='<head></head>'
+ >>> etree_document = lxml.html.fromstring(content)
+ >>> print(tostring(etree_document, encoding=unicode))
+ <html><head></head></html>
+
+Bug 690319: Leading whitespace before doctype declaration should not raise an error.
+
+ >>> import lxml.html
+ >>> content='''
+ ... <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+ ... <html>
+ ... </html>'''
+ >>> etree_document = lxml.html.fromstring(content)
+ >>> print(tostring(etree_document, encoding=unicode))
+ <html></html>
+
... <head>
... <script type="text/javascript" src="evil-site"></script>
... <link rel="alternate" type="text/rss" src="evil-rss">
+... <link rel="alternate" type="text/rss" href="http://example.com">
+... <link rel="stylesheet" type="text/rss" href="http://example.com">
... <style>
... body {background-image: url(javascript:do_evil)};
... div {background-image: url(data:text/html;base64,PHNjcmlwdD5hbGVydCgidGVzdCIpOzwvc2NyaXB0Pg==)};
... Password: <input type="password" name="password">
... </form>
... <a href="evil-site">spam spam SPAM!</a>
+... <a href="http://example.com" rel="author">Author</a>
+... <a href="http://example.com" rel="nofollow">Text</a>
... <img src="evil!">
... </body>
... </html>'''
<head>
<script type="text/javascript" src="evil-site"></script>
<link rel="alternate" type="text/rss" src="evil-rss">
+ <link rel="alternate" type="text/rss" href="http://example.com">
+ <link rel="stylesheet" type="text/rss" href="http://example.com">
<style>
body {background-image: url(javascript:do_evil)};
div {background-image: url(data:text/html;base64,PHNjcmlwdD5hbGVydCgidGVzdCIpOzwvc2NyaXB0Pg==)};
Password: <input type="password" name="password">
</form>
<a href="evil-site">spam spam SPAM!</a>
+ <a href="http://example.com" rel="author">Author</a>
+ <a href="http://example.com" rel="nofollow">Text</a>
<img src="evil!">
</body>
</html>
<head>
<script type="text/javascript" src="evil-site"></script>
<link rel="alternate" type="text/rss" src="evil-rss">
+ <link rel="alternate" type="text/rss" href="http://example.com">
+ <link rel="stylesheet" type="text/rss" href="http://example.com">
<style>
body {background-image: url(javascript:do_evil)};
div {background-image: url(data:text/html;base64,PHNjcmlwdD5hbGVydCgidGVzdCIpOzwvc2NyaXB0Pg==)};
Password: <input type="password" name="password">
</form>
<a href="evil-site">spam spam SPAM!</a>
+ <a href="http://example.com" rel="author">Author</a>
+ <a href="http://example.com" rel="nofollow">Text</a>
<img src="evil!">
</body>
</html>
of EVIL!
Password:
<a href="evil-site">spam spam SPAM!</a>
+ <a href="http://example.com" rel="author">Author</a>
+ <a href="http://example.com" rel="nofollow">Text</a>
<img src="evil!">
</body>
</html>
->>> print(Cleaner(style=True, links=True, add_nofollow=True,
-... page_structure=False, safe_attrs_only=False).clean_html(doc))
+>>> print(Cleaner(style=True, links=True, add_nofollow=True, page_structure=False, safe_attrs_only=False).clean_html(doc))
<html>
<head>
</head>
of EVIL!
Password:
<a href="evil-site" rel="nofollow">spam spam SPAM!</a>
+ <a href="http://example.com" rel="author nofollow">Author</a>
+ <a href="http://example.com" rel="nofollow">Text</a>
<img src="evil!">
</body>
</html>
+
+>>> print(Cleaner(links=False, page_structure=False, javascript=True, host_whitelist=['example.com'], whitelist_tags=None).clean_html(doc))
+<html>
+ <head>
+ <link rel="alternate" type="text/rss" src="evil-rss">
+ <link rel="alternate" type="text/rss" href="http://example.com">
+ <link rel="stylesheet" type="text/rss" href="http://example.com">
+ <style>/* deleted */</style>
+ </head>
+ <body>
+ <a href="">a link</a>
+ <a href="">data</a>
+ <a href="#">another link</a>
+ <p>a paragraph</p>
+ <div>secret EVIL!</div>
+ of EVIL!
+ Password:
+ <a href="evil-site">spam spam SPAM!</a>
+ <a href="http://example.com" rel="author">Author</a>
+ <a href="http://example.com" rel="nofollow">Text</a>
+ <img src="evil!">
+ </body>
+</html>
+
--- /dev/null
+import unittest, sys
+from lxml.tests.common_imports import make_doctest, doctest
+import lxml.html
+from lxml.html import html_parser, XHTML_NAMESPACE
+
+class FrameTest(unittest.TestCase):
+
+ def test_parse_fragments_fromstring(self):
+ parser = lxml.html.HTMLParser(encoding='utf-8', remove_comments=True)
+ html = """<frameset>
+ <frame src="main.php" name="srcpg" id="srcpg" frameborder="0" rolling="Auto" marginwidth="" marginheight="0">
+ </frameset>"""
+ etree_document = lxml.html.fragments_fromstring(html, parser=parser)
+ self.assertEqual(len(etree_document), 1)
+ root = etree_document[0]
+ self.assertEqual(root.tag, "frameset")
+ frame_element = root[0]
+ self.assertEqual(frame_element.tag, 'frame')
+
+ def test_parse_fromstring(self):
+ parser = lxml.html.HTMLParser(encoding='utf-8', remove_comments=True)
+ html = """<html><frameset>
+ <frame src="main.php" name="srcpg" id="srcpg" frameborder="0" rolling="Auto" marginwidth="" marginheight="0">
+ </frameset></html>"""
+ etree_document = lxml.html.fromstring(html, parser=parser)
+ self.assertEqual(etree_document.tag, 'html')
+ self.assertEqual(len(etree_document), 1)
+ frameset_element = etree_document[0]
+ self.assertEqual(len(frameset_element), 1)
+ frame_element = frameset_element[0]
+ self.assertEqual(frame_element.tag, 'frame')
+
+
+def test_suite():
+ loader = unittest.TestLoader()
+ return loader.loadTestsFromModule(sys.modules[__name__])
\ No newline at end of file
#ifndef LXML_VERSION_STRING
-#define LXML_VERSION_STRING "3.1.2"
+#define LXML_VERSION_STRING "3.2.0"
#endif
-/* Generated by Cython 0.18 on Fri Apr 12 07:15:01 2013 */
+/* Generated by Cython 0.19 on Sun Apr 28 20:49:30 2013 */
#define PY_SSIZE_T_CLEAN
+#ifndef CYTHON_USE_PYLONG_INTERNALS
+#ifdef PYLONG_BITS_IN_DIGIT
+#define CYTHON_USE_PYLONG_INTERNALS 0
+#else
+#include "pyconfig.h"
+#ifdef PYLONG_BITS_IN_DIGIT
+#define CYTHON_USE_PYLONG_INTERNALS 1
+#else
+#define CYTHON_USE_PYLONG_INTERNALS 0
+#endif
+#endif
+#endif
#include "Python.h"
#ifndef Py_PYTHON_H
#error Python headers needed to compile C extensions, please install development version of Python.
#if (PY_VERSION_HEX < 0x02060000) || (PY_MAJOR_VERSION >= 3)
#define Py_TPFLAGS_HAVE_NEWBUFFER 0
#endif
+#if PY_VERSION_HEX < 0x02060000
+ #define Py_TPFLAGS_HAVE_VERSION_TAG 0
+#endif
#if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND)
#define CYTHON_PEP393_ENABLED 1
#define __Pyx_PyUnicode_READY(op) (likely(PyUnicode_IS_READY(op)) ? \
#define PyBytes_Concat PyString_Concat
#define PyBytes_ConcatAndDel PyString_ConcatAndDel
#endif
+#if PY_MAJOR_VERSION >= 3
+ #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj)
+ #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj)
+#else
+ #define __Pyx_PyBaseString_Check(obj) (PyString_CheckExact(obj) || PyUnicode_CheckExact(obj) || \
+ PyString_Check(obj) || PyUnicode_Check(obj))
+ #define __Pyx_PyBaseString_CheckExact(obj) (Py_TYPE(obj) == &PyBaseString_Type)
+#endif
#if PY_VERSION_HEX < 0x02060000
#define PySet_Check(obj) PyObject_TypeCheck(obj, &PySet_Type)
#define PyFrozenSet_Check(obj) PyObject_TypeCheck(obj, &PyFrozenSet_Type)
#define __Pyx_NAMESTR(n) (n)
#define __Pyx_DOCSTR(n) (n)
#endif
+#ifndef CYTHON_INLINE
+ #if defined(__GNUC__)
+ #define CYTHON_INLINE __inline__
+ #elif defined(_MSC_VER)
+ #define CYTHON_INLINE __inline
+ #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+ #define CYTHON_INLINE inline
+ #else
+ #define CYTHON_INLINE
+ #endif
+#endif
+#ifdef NAN
+#define __PYX_NAN() ((float) NAN)
+#else
+static CYTHON_INLINE float __PYX_NAN() {
+ /* Initialize NaN. The sign is irrelevant, an exponent with all bits 1 and
+ a nonzero mantissa means NaN. If the first bit in the mantissa is 1, it is
+ a quiet NaN. */
+ float value;
+ memset(&value, 0xFF, sizeof(value));
+ return value;
+}
+#endif
#if PY_MAJOR_VERSION >= 3
#define CYTHON_WITHOUT_ASSERTIONS
#endif
-#ifndef CYTHON_INLINE
- #if defined(__GNUC__)
- #define CYTHON_INLINE __inline__
- #elif defined(_MSC_VER)
- #define CYTHON_INLINE __inline
- #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
- #define CYTHON_INLINE inline
- #else
- #define CYTHON_INLINE
- #endif
-#endif
#ifndef CYTHON_UNUSED
# if defined(__GNUC__)
# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
# define CYTHON_UNUSED
# endif
#endif
-typedef struct {PyObject **p; char *s; const long n; const char* encoding; const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry; /*proto*/
-
-#define __Pyx_PyBytes_FromUString(s) PyBytes_FromString((char*)s)
-#define __Pyx_PyBytes_AsUString(s) ((unsigned char*) PyBytes_AsString(s))
+typedef struct {PyObject **p; char *s; const Py_ssize_t n; const char* encoding;
+ const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry; /*proto*/
+
+#define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0
+#define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT 0
+#define __PYX_DEFAULT_STRING_ENCODING ""
+#define __Pyx_PyObject_FromString __Pyx_PyBytes_FromString
+#define __Pyx_PyObject_FromStringAndSize __Pyx_PyBytes_FromStringAndSize
+static CYTHON_INLINE char* __Pyx_PyObject_AsString(PyObject*);
+static CYTHON_INLINE char* __Pyx_PyObject_AsStringAndSize(PyObject*, Py_ssize_t* length);
+#define __Pyx_PyBytes_FromString PyBytes_FromString
+#define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize
+static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(char*);
+#if PY_MAJOR_VERSION < 3
+ #define __Pyx_PyStr_FromString __Pyx_PyBytes_FromString
+ #define __Pyx_PyStr_FromStringAndSize __Pyx_PyBytes_FromStringAndSize
+#else
+ #define __Pyx_PyStr_FromString __Pyx_PyUnicode_FromString
+ #define __Pyx_PyStr_FromStringAndSize __Pyx_PyUnicode_FromStringAndSize
+#endif
+#define __Pyx_PyObject_AsUString(s) ((unsigned char*) __Pyx_PyObject_AsString(s))
+#define __Pyx_PyObject_FromUString(s) __Pyx_PyObject_FromString((char*)s)
+#define __Pyx_PyBytes_FromUString(s) __Pyx_PyBytes_FromString((char*)s)
+#define __Pyx_PyStr_FromUString(s) __Pyx_PyStr_FromString((char*)s)
+#define __Pyx_PyUnicode_FromUString(s) __Pyx_PyUnicode_FromString((char*)s)
+#if PY_MAJOR_VERSION < 3
+static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u)
+{
+ const Py_UNICODE *u_end = u;
+ while (*u_end++) ;
+ return u_end - u - 1;
+}
+#else
+#define __Pyx_Py_UNICODE_strlen Py_UNICODE_strlen
+#endif
+#define __Pyx_PyUnicode_FromUnicode(u) PyUnicode_FromUnicode(u, __Pyx_Py_UNICODE_strlen(u))
+#define __Pyx_PyUnicode_FromUnicodeAndLength PyUnicode_FromUnicode
+#define __Pyx_PyUnicode_AsUnicode PyUnicode_AsUnicode
#define __Pyx_Owned_Py_None(b) (Py_INCREF(Py_None), Py_None)
#define __Pyx_PyBool_FromLong(b) ((b) ? (Py_INCREF(Py_True), Py_True) : (Py_INCREF(Py_False), Py_False))
static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*);
#define __pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x)
#endif
#define __pyx_PyFloat_AsFloat(x) ((float) __pyx_PyFloat_AsDouble(x))
+#if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
+static int __Pyx_sys_getdefaultencoding_not_ascii;
+static int __Pyx_init_sys_getdefaultencoding_params() {
+ PyObject* sys = NULL;
+ PyObject* default_encoding = NULL;
+ PyObject* ascii_chars_u = NULL;
+ PyObject* ascii_chars_b = NULL;
+ sys = PyImport_ImportModule("sys");
+ if (sys == NULL) goto bad;
+ default_encoding = PyObject_CallMethod(sys, (char*) (const char*) "getdefaultencoding", NULL);
+ if (default_encoding == NULL) goto bad;
+ if (strcmp(PyBytes_AsString(default_encoding), "ascii") == 0) {
+ __Pyx_sys_getdefaultencoding_not_ascii = 0;
+ } else {
+ const char* default_encoding_c = PyBytes_AS_STRING(default_encoding);
+ char ascii_chars[128];
+ int c;
+ for (c = 0; c < 128; c++) {
+ ascii_chars[c] = c;
+ }
+ __Pyx_sys_getdefaultencoding_not_ascii = 1;
+ ascii_chars_u = PyUnicode_DecodeASCII(ascii_chars, 128, NULL);
+ if (ascii_chars_u == NULL) goto bad;
+ ascii_chars_b = PyUnicode_AsEncodedString(ascii_chars_u, default_encoding_c, NULL);
+ if (ascii_chars_b == NULL || strncmp(ascii_chars, PyBytes_AS_STRING(ascii_chars_b), 128) != 0) {
+ PyErr_Format(
+ PyExc_ValueError,
+ "This module compiled with c_string_encoding=ascii, but default encoding '%s' is not a superset of ascii.",
+ default_encoding_c);
+ goto bad;
+ }
+ }
+ Py_XDECREF(sys);
+ Py_XDECREF(default_encoding);
+ Py_XDECREF(ascii_chars_u);
+ Py_XDECREF(ascii_chars_b);
+ return 0;
+bad:
+ Py_XDECREF(sys);
+ Py_XDECREF(default_encoding);
+ Py_XDECREF(ascii_chars_u);
+ Py_XDECREF(ascii_chars_b);
+ return -1;
+}
+#endif
+#if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT && PY_MAJOR_VERSION >= 3
+#define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeUTF8(c_str, size, NULL)
+#else
+#define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_Decode(c_str, size, __PYX_DEFAULT_STRING_ENCODING, NULL)
+#if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT
+static char* __PYX_DEFAULT_STRING_ENCODING;
+static int __Pyx_init_sys_getdefaultencoding_params() {
+ PyObject* sys = NULL;
+ PyObject* default_encoding = NULL;
+ char* default_encoding_c;
+ sys = PyImport_ImportModule("sys");
+ if (sys == NULL) goto bad;
+ default_encoding = PyObject_CallMethod(sys, (char*) (const char*) "getdefaultencoding", NULL);
+ if (default_encoding == NULL) goto bad;
+ default_encoding_c = PyBytes_AS_STRING(default_encoding);
+ __PYX_DEFAULT_STRING_ENCODING = (char*) malloc(strlen(default_encoding_c));
+ strcpy(__PYX_DEFAULT_STRING_ENCODING, default_encoding_c);
+ Py_DECREF(sys);
+ Py_DECREF(default_encoding);
+ return 0;
+bad:
+ Py_XDECREF(sys);
+ Py_XDECREF(default_encoding);
+ return -1;
+}
+#endif
+#endif
#ifdef __GNUC__
#define likely(x) (x)
#define unlikely(x) (x)
#endif /* __GNUC__ */
-
+
static PyObject *__pyx_m;
+static PyObject *__pyx_d;
static PyObject *__pyx_b;
static PyObject *__pyx_empty_tuple;
static PyObject *__pyx_empty_bytes;
};
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1055
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1078
* ############################################################
*
* cdef class _FeedParser(_BaseParser): # <<<<<<<<<<<<<<
};
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1230
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1253
* )
*
* cdef class XMLParser(_FeedParser): # <<<<<<<<<<<<<<
};
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1312
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1335
* target, None, encoding)
*
* cdef class ETCompatXMLParser(XMLParser): # <<<<<<<<<<<<<<
};
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1391
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1414
* )
*
* cdef class HTMLParser(_FeedParser): # <<<<<<<<<<<<<<
static struct __pyx_vtabstruct_4lxml_5etree__XPathFunctionNamespaceRegistry *__pyx_vtabptr_4lxml_5etree__XPathFunctionNamespaceRegistry;
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":707
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":727
*
* @cython.internal
* cdef class _BaseParser: # <<<<<<<<<<<<<<
static struct __pyx_vtabstruct_4lxml_5etree__BaseParser *__pyx_vtabptr_4lxml_5etree__BaseParser;
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1055
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1078
* ############################################################
*
* cdef class _FeedParser(_BaseParser): # <<<<<<<<<<<<<<
static struct __pyx_vtabstruct_4lxml_5etree__FeedParser *__pyx_vtabptr_4lxml_5etree__FeedParser;
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1230
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1253
* )
*
* cdef class XMLParser(_FeedParser): # <<<<<<<<<<<<<<
static struct __pyx_vtabstruct_4lxml_5etree_XMLParser *__pyx_vtabptr_4lxml_5etree_XMLParser;
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1312
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1335
* target, None, encoding)
*
* cdef class ETCompatXMLParser(XMLParser): # <<<<<<<<<<<<<<
static int __pyx_f_4lxml_5etree_30_ParserSchemaValidationContext_isvalid(struct __pyx_obj_4lxml_5etree__ParserSchemaValidationContext *);
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":487
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":499
*
* @cython.internal
* cdef class _ParserContext(_ResolverContext): # <<<<<<<<<<<<<<
static int __pyx_f_4lxml_5etree_9_Document__setNodeNs(struct LxmlDocument *, xmlNode *, const xmlChar *);
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1391
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1414
* )
*
* cdef class HTMLParser(_FeedParser): # <<<<<<<<<<<<<<
#define __Pyx_CLEAR(r) do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0)
#define __Pyx_XCLEAR(r) do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0)
-static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name); /*proto*/
+#if CYTHON_COMPILING_IN_CPYTHON
+static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) {
+ PyTypeObject* tp = Py_TYPE(obj);
+ if (likely(tp->tp_getattro))
+ return tp->tp_getattro(obj, attr_name);
+#if PY_MAJOR_VERSION < 3
+ if (likely(tp->tp_getattr))
+ return tp->tp_getattr(obj, PyString_AS_STRING(attr_name));
+#endif
+ return PyObject_GetAttr(obj, attr_name);
+}
+#else
+#define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n)
+#endif
+
+static PyObject *__Pyx_GetBuiltinName(PyObject *name); /*proto*/
static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact,
Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found); /*proto*/
static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); /*proto*/
+#if PY_MAJOR_VERSION >= 3
+static CYTHON_INLINE PyObject* __Pyx_PyDict_Items(PyObject* d); /*proto*/
+#else
+#define __Pyx_PyDict_Items(d) PyDict_Items(d)
+#endif
+
static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected);
static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index);
static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname);
+#if CYTHON_COMPILING_IN_CPYTHON
+#define __Pyx_PyObject_DelAttrStr(o,n) __Pyx_PyObject_SetAttrStr(o,n,NULL)
+static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value) {
+ PyTypeObject* tp = Py_TYPE(obj);
+ if (likely(tp->tp_setattro))
+ return tp->tp_setattro(obj, attr_name, value);
+#if PY_MAJOR_VERSION < 3
+ if (likely(tp->tp_setattr))
+ return tp->tp_setattr(obj, PyString_AS_STRING(attr_name), value);
+#endif
+ return PyObject_SetAttr(obj, attr_name, value);
+}
+#else
+#define __Pyx_PyObject_DelAttrStr(o,n) PyObject_DelAttr(o,n)
+#define __Pyx_PyObject_SetAttrStr(o,n,v) PyObject_SetAttr(o,n,v)
+#endif
+
+static CYTHON_INLINE PyObject* __Pyx_PyObject_GetSlice(
+ PyObject* obj, Py_ssize_t cstart, Py_ssize_t cstop,
+ PyObject** py_start, PyObject** py_stop, PyObject** py_slice,
+ int has_cstart, int has_cstop, int wraparound);
+
static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb); /*proto*/
+#if CYTHON_COMPILING_IN_CPYTHON
+static CYTHON_INLINE int __Pyx_PyList_Append(PyObject* list, PyObject* x) {
+ PyListObject* L = (PyListObject*) list;
+ Py_ssize_t len = Py_SIZE(list);
+ if (likely(L->allocated > len) & likely(len > (L->allocated >> 1))) {
+ Py_INCREF(x);
+ PyList_SET_ITEM(list, len, x);
+ Py_SIZE(list) = len+1;
+ return 0;
+ }
+ return PyList_Append(list, x);
+}
+#else
+#define __Pyx_PyList_Append(L,x) PyList_Append(L,x)
+#endif
+
static CYTHON_INLINE long __Pyx_mod_long(long, long); /* proto */
static CYTHON_INLINE long __Pyx_div_long(long, long); /* proto */
static CYTHON_INLINE int __Pyx_CheckKeywordStrings(PyObject *kwdict, const char* function_name, int kw_allowed); /*proto*/
+#define __Pyx_PyObject_DelSlice(obj, cstart, cstop, py_start, py_stop, py_slice, has_cstart, has_cstop, wraparound) \
+ __Pyx_PyObject_SetSlice(obj, (PyObject*)NULL, cstart, cstop, py_start, py_stop, py_slice, has_cstart, has_cstop, wraparound)
+static CYTHON_INLINE int __Pyx_PyObject_SetSlice(
+ PyObject* obj, PyObject* value, Py_ssize_t cstart, Py_ssize_t cstop,
+ PyObject** py_start, PyObject** py_stop, PyObject** py_slice,
+ int has_cstart, int has_cstop, int wraparound);
+
static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type); /*proto*/
static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void);
const char* encoding, const char* errors,
PyObject* (*decode_func)(const char *s, Py_ssize_t size, const char *errors));
+static CYTHON_INLINE PyObject *__Pyx_GetModuleGlobalName(PyObject *name); /*proto*/
+
static int __Pyx_ArgTypeTest(PyObject *obj, PyTypeObject *type, int none_allowed,
const char *name, int exact); /*proto*/
-static CYTHON_INLINE PyObject* __Pyx_tp_new(PyObject* type_obj) {
- return (PyObject*) (((PyTypeObject*)(type_obj))->tp_new(
- (PyTypeObject*)(type_obj), __pyx_empty_tuple, NULL));
+#define __Pyx_GetItemInt(o, i, size, to_py_func, is_list, wraparound, boundscheck) \
+ (((size) <= sizeof(Py_ssize_t)) ? \
+ __Pyx_GetItemInt_Fast(o, i, is_list, wraparound, boundscheck) : \
+ __Pyx_GetItemInt_Generic(o, to_py_func(i)))
+#define __Pyx_GetItemInt_List(o, i, size, to_py_func, is_list, wraparound, boundscheck) \
+ (((size) <= sizeof(Py_ssize_t)) ? \
+ __Pyx_GetItemInt_List_Fast(o, i, wraparound, boundscheck) : \
+ __Pyx_GetItemInt_Generic(o, to_py_func(i)))
+static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i,
+ int wraparound, int boundscheck);
+#define __Pyx_GetItemInt_Tuple(o, i, size, to_py_func, is_list, wraparound, boundscheck) \
+ (((size) <= sizeof(Py_ssize_t)) ? \
+ __Pyx_GetItemInt_Tuple_Fast(o, i, wraparound, boundscheck) : \
+ __Pyx_GetItemInt_Generic(o, to_py_func(i)))
+static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i,
+ int wraparound, int boundscheck);
+static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j);
+static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i,
+ int is_list, int wraparound, int boundscheck);
+
+static PyObject* __Pyx_PyObject_CallMethodTuple(PyObject* obj, PyObject* method_name, PyObject* args) {
+ PyObject *method, *result = NULL;
+ if (unlikely(!args)) return NULL;
+ method = __Pyx_PyObject_GetAttrStr(obj, method_name);
+ if (unlikely(!method)) goto bad;
+ result = PyObject_Call(method, args, NULL);
+ Py_DECREF(method);
+bad:
+ Py_DECREF(args);
+ return result;
}
+#define __Pyx_PyObject_CallMethod3(obj, name, arg1, arg2, arg3) \
+ __Pyx_PyObject_CallMethodTuple(obj, name, PyTuple_Pack(3, arg1, arg2, arg3))
+#define __Pyx_PyObject_CallMethod2(obj, name, arg1, arg2) \
+ __Pyx_PyObject_CallMethodTuple(obj, name, PyTuple_Pack(2, arg1, arg2))
+#define __Pyx_PyObject_CallMethod1(obj, name, arg1) \
+ __Pyx_PyObject_CallMethodTuple(obj, name, PyTuple_Pack(1, arg1))
+#define __Pyx_PyObject_CallMethod0(obj, name) \
+ __Pyx_PyObject_CallMethodTuple(obj, name, (Py_INCREF(__pyx_empty_tuple), __pyx_empty_tuple))
+
+static CYTHON_INLINE PyObject* __Pyx_PyObject_Pop(PyObject* L); /*proto*/
-static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j) {
- PyObject *r;
- if (!j) return NULL;
- r = PyObject_GetItem(o, j);
- Py_DECREF(j);
- return r;
-}
-#define __Pyx_GetItemInt_List(o, i, size, to_py_func) (((size) <= sizeof(Py_ssize_t)) ? \
- __Pyx_GetItemInt_List_Fast(o, i) : \
- __Pyx_GetItemInt_Generic(o, to_py_func(i)))
-static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i) {
-#if CYTHON_COMPILING_IN_CPYTHON
- if (likely((0 <= i) & (i < PyList_GET_SIZE(o)))) {
- PyObject *r = PyList_GET_ITEM(o, i);
- Py_INCREF(r);
- return r;
- }
- else if ((-PyList_GET_SIZE(o) <= i) & (i < 0)) {
- PyObject *r = PyList_GET_ITEM(o, PyList_GET_SIZE(o) + i);
- Py_INCREF(r);
- return r;
- }
- return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
-#else
- return PySequence_GetItem(o, i);
-#endif
-}
-#define __Pyx_GetItemInt_Tuple(o, i, size, to_py_func) (((size) <= sizeof(Py_ssize_t)) ? \
- __Pyx_GetItemInt_Tuple_Fast(o, i) : \
- __Pyx_GetItemInt_Generic(o, to_py_func(i)))
-static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i) {
-#if CYTHON_COMPILING_IN_CPYTHON
- if (likely((0 <= i) & (i < PyTuple_GET_SIZE(o)))) {
- PyObject *r = PyTuple_GET_ITEM(o, i);
- Py_INCREF(r);
- return r;
- }
- else if ((-PyTuple_GET_SIZE(o) <= i) & (i < 0)) {
- PyObject *r = PyTuple_GET_ITEM(o, PyTuple_GET_SIZE(o) + i);
- Py_INCREF(r);
- return r;
- }
- return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
-#else
- return PySequence_GetItem(o, i);
-#endif
-}
-#define __Pyx_GetItemInt(o, i, size, to_py_func) (((size) <= sizeof(Py_ssize_t)) ? \
- __Pyx_GetItemInt_Fast(o, i) : \
- __Pyx_GetItemInt_Generic(o, to_py_func(i)))
-static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i) {
#if CYTHON_COMPILING_IN_CPYTHON
- if (PyList_CheckExact(o)) {
- Py_ssize_t n = (likely(i >= 0)) ? i : i + PyList_GET_SIZE(o);
- if (likely((n >= 0) & (n < PyList_GET_SIZE(o)))) {
- PyObject *r = PyList_GET_ITEM(o, n);
- Py_INCREF(r);
- return r;
- }
- }
- else if (PyTuple_CheckExact(o)) {
- Py_ssize_t n = (likely(i >= 0)) ? i : i + PyTuple_GET_SIZE(o);
- if (likely((n >= 0) & (n < PyTuple_GET_SIZE(o)))) {
- PyObject *r = PyTuple_GET_ITEM(o, n);
- Py_INCREF(r);
- return r;
- }
- } else { /* inlined PySequence_GetItem() */
- PySequenceMethods *m = Py_TYPE(o)->tp_as_sequence;
- if (likely(m && m->sq_item)) {
- if (unlikely(i < 0) && likely(m->sq_length)) {
- Py_ssize_t l = m->sq_length(o);
- if (unlikely(l < 0)) return NULL;
- i += l;
- }
- return m->sq_item(o, i);
- }
- }
+static CYTHON_INLINE PyObject* __Pyx_PyList_GetSlice(PyObject* src, Py_ssize_t start, Py_ssize_t stop);
+static CYTHON_INLINE PyObject* __Pyx_PyTuple_GetSlice(PyObject* src, Py_ssize_t start, Py_ssize_t stop);
#else
- if (PySequence_Check(o)) {
- return PySequence_GetItem(o, i);
- }
+#define __Pyx_PyList_GetSlice(seq, start, stop) PySequence_GetSlice(seq, start, stop)
+#define __Pyx_PyTuple_GetSlice(seq, start, stop) PySequence_GetSlice(seq, start, stop)
#endif
- return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
-}
-static CYTHON_INLINE PyObject* __Pyx_PyObject_Pop(PyObject* L) {
-#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x02040000
- if (likely(PyList_CheckExact(L))
- && likely(PyList_GET_SIZE(L) > (((PyListObject*)L)->allocated >> 1))) {
- Py_SIZE(L) -= 1;
- return PyList_GET_ITEM(L, PyList_GET_SIZE(L));
- }
-#if PY_VERSION_HEX >= 0x02050000
- else if (Py_TYPE(L) == (&PySet_Type)) {
- return PySet_Pop(L);
- }
-#endif
-#endif
- return PyObject_CallMethod(L, (char*)"pop", NULL);
-}
-
-#define __Pyx_DelItemInt(o, i, size, to_py_func) (((size) <= sizeof(Py_ssize_t)) ? \
- __Pyx_DelItemInt_Fast(o, i) : \
- __Pyx_DelItem_Generic(o, to_py_func(i)))
-static CYTHON_INLINE int __Pyx_DelItem_Generic(PyObject *o, PyObject *j) {
- int r;
- if (!j) return -1;
- r = PyObject_DelItem(o, j);
- Py_DECREF(j);
- return r;
-}
-static CYTHON_INLINE int __Pyx_DelItemInt_Fast(PyObject *o, Py_ssize_t i) {
-#if CYTHON_COMPILING_IN_PYPY
- if (PySequence_Check(o)) {
- return PySequence_DelItem(o, i);
- }
-#else
- PySequenceMethods *m = Py_TYPE(o)->tp_as_sequence;
- if (likely(m && m->sq_ass_item)) {
- if (unlikely(i < 0) && likely(m->sq_length)) {
- Py_ssize_t l = m->sq_length(o);
- if (unlikely(l < 0)) return -1;
- i += l;
- }
- return m->sq_ass_item(o, i, (PyObject *)NULL);
- }
-#endif
- return __Pyx_DelItem_Generic(o, PyInt_FromSsize_t(i));
-}
+#define __Pyx_DelItemInt(o, i, size, to_py_func, is_list, wraparound, boundscheck) \
+ (((size) <= sizeof(Py_ssize_t)) ? \
+ __Pyx_DelItemInt_Fast(o, i, is_list, wraparound) : \
+ __Pyx_DelItem_Generic(o, to_py_func(i)))
+static CYTHON_INLINE int __Pyx_DelItem_Generic(PyObject *o, PyObject *j);
+static CYTHON_INLINE int __Pyx_DelItemInt_Fast(PyObject *o, Py_ssize_t i,
+ CYTHON_UNUSED int is_list, int wraparound);
#ifndef __PYX_FORCE_INIT_THREADS
#define __PYX_FORCE_INIT_THREADS 0
#endif
#if CYTHON_COMPILING_IN_CPYTHON
-static CYTHON_INLINE int __Pyx_PyList_Append(PyObject* list, PyObject* x) {
+static CYTHON_INLINE int __Pyx_ListComp_Append(PyObject* list, PyObject* x) {
PyListObject* L = (PyListObject*) list;
Py_ssize_t len = Py_SIZE(list);
if (likely(L->allocated > len)) {
return PyList_Append(list, x);
}
#else
-#define __Pyx_PyList_Append(L,x) PyList_Append(L,x)
+#define __Pyx_ListComp_Append(L,x) PyList_Append(L,x)
#endif
static CYTHON_INLINE int __Pyx_PyDict_Contains(PyObject* item, PyObject* dict, int eq) {
PyObject *value;
value = PyDict_GetItemWithError(d, key);
if (unlikely(!value)) {
- if (!PyErr_Occurred())
- PyErr_SetObject(PyExc_KeyError, key);
+ if (!PyErr_Occurred()) {
+ PyObject* args = PyTuple_Pack(1, key);
+ if (likely(args))
+ PyErr_SetObject(PyExc_KeyError, args);
+ Py_XDECREF(args);
+ }
return NULL;
}
Py_INCREF(value);
static CYTHON_INLINE int __Pyx_dict_iter_next(PyObject* dict_or_iter, Py_ssize_t orig_length, Py_ssize_t* ppos,
PyObject** pkey, PyObject** pvalue, PyObject** pitem, int is_dict);
-static PyObject* __Pyx_PyDict_GetItemDefault(PyObject* d, PyObject* key, PyObject* default_value) {
- PyObject* value;
#if PY_MAJOR_VERSION >= 3
- value = PyDict_GetItemWithError(d, key);
- if (unlikely(!value)) {
- if (unlikely(PyErr_Occurred()))
- return NULL;
- value = default_value;
- }
- Py_INCREF(value);
+static CYTHON_INLINE PyObject* __Pyx_PyDict_Values(PyObject* d); /*proto*/
#else
- if (PyString_CheckExact(key) || PyUnicode_CheckExact(key) || PyInt_CheckExact(key)) {
- value = PyDict_GetItem(d, key);
- if (unlikely(!value)) {
- value = default_value;
- }
- Py_INCREF(value);
- } else {
- PyObject *m;
- m = __Pyx_GetAttrString(d, "get");
- if (!m) return NULL;
- value = PyObject_CallFunctionObjArgs(m, key,
- (default_value == Py_None) ? NULL : default_value, NULL);
- Py_DECREF(m);
- }
+#define __Pyx_PyDict_Values(d) PyDict_Values(d)
#endif
- return value;
-}
-static int __Pyx_call_next_tp_traverse(PyObject* obj, visitproc v, void *a, traverseproc current_tp_traverse);
+static PyObject* __Pyx_PyDict_GetItemDefault(PyObject* d, PyObject* key, PyObject* default_value); /*proto*/
-static void __Pyx_call_next_tp_clear(PyObject* obj, inquiry current_tp_dealloc);
-
-#if !defined(__Pyx_PyIdentifier_FromString)
-#if PY_MAJOR_VERSION < 3
- #define __Pyx_PyIdentifier_FromString(s) PyString_FromString(s)
-#else
- #define __Pyx_PyIdentifier_FromString(s) PyUnicode_FromString(s)
-#endif
-#endif
-
-static PyObject *__Pyx_ImportModule(const char *name); /*proto*/
-
-static void __pyx_module_cleanup(PyObject *self); /*proto*/
-static int __Pyx_RegisterCleanup(void); /*proto*/
+static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *, PyObject *); /*proto*/
-static CYTHON_INLINE void __Pyx_ExceptionSave(PyObject **type, PyObject **value, PyObject **tb); /*proto*/
-static void __Pyx_ExceptionReset(PyObject *type, PyObject *value, PyObject *tb); /*proto*/
-
-static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level); /*proto*/
-
-static CYTHON_INLINE void __Pyx_RaiseImportError(PyObject *name);
+static int __Pyx_call_next_tp_traverse(PyObject* obj, visitproc v, void *a, traverseproc current_tp_traverse);
-static PyObject *__Pyx_FindPy2Metaclass(PyObject *bases); /*proto*/
+static void __Pyx_call_next_tp_clear(PyObject* obj, inquiry current_tp_dealloc);
-static PyObject *__Pyx_CreateClass(PyObject *bases, PyObject *dict, PyObject *name,
- PyObject *qualname, PyObject *modname); /*proto*/
+static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name); /*proto*/
#define __Pyx_CyFunction_USED 1
#include <structmember.h>
PyObject *func_classobj; /* No-args super() class cell */
void *defaults;
int defaults_pyobjects;
- PyObject *defaults_tuple; /* Const defaults tuple */
+ PyObject *defaults_tuple; /* Const defaults tuple */
+ PyObject *defaults_kwdict; /* Const kwonly defaults dict */
PyObject *(*defaults_getter)(PyObject *);
+ PyObject *func_annotations; /* function annotations dict */
} __pyx_CyFunctionObject;
static PyTypeObject *__pyx_CyFunctionType = 0;
#define __Pyx_CyFunction_NewEx(ml, flags, qualname, self, module, code) \
int pyobjects);
static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *m,
PyObject *tuple);
+static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *m,
+ PyObject *dict);
+static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *m,
+ PyObject *dict);
static int __Pyx_CyFunction_init(void);
+static PyObject *__Pyx_GetNameInClass(PyObject *nmspace, PyObject *name); /*proto*/
+
+#if !defined(__Pyx_PyIdentifier_FromString)
+#if PY_MAJOR_VERSION < 3
+ #define __Pyx_PyIdentifier_FromString(s) PyString_FromString(s)
+#else
+ #define __Pyx_PyIdentifier_FromString(s) PyUnicode_FromString(s)
+#endif
+#endif
+
+static PyObject *__Pyx_ImportModule(const char *name); /*proto*/
+
+static void __pyx_module_cleanup(PyObject *self); /*proto*/
+static int __Pyx_RegisterCleanup(void); /*proto*/
+
+static CYTHON_INLINE void __Pyx_ExceptionSave(PyObject **type, PyObject **value, PyObject **tb); /*proto*/
+static void __Pyx_ExceptionReset(PyObject *type, PyObject *value, PyObject *tb); /*proto*/
+
+static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level); /*proto*/
+
+static PyObject *__Pyx_FindPy2Metaclass(PyObject *bases); /*proto*/
+
+static PyObject *__Pyx_CreateClass(PyObject *bases, PyObject *dict, PyObject *name,
+ PyObject *qualname, PyObject *modname); /*proto*/
+
static int __Pyx_Print(PyObject*, PyObject *, int); /*proto*/
#if CYTHON_COMPILING_IN_PYPY || PY_MAJOR_VERSION >= 3
static PyObject* __pyx_print = 0;
static int __pyx_f_4lxml_5etree__isFilePath(const xmlChar *); /*proto*/
static PyObject *__pyx_f_4lxml_5etree__encodeFilename(PyObject *); /*proto*/
static PyObject *__pyx_f_4lxml_5etree__decodeFilename(const xmlChar *); /*proto*/
+static PyObject *__pyx_f_4lxml_5etree__decodeFilenameWithLength(const xmlChar *, size_t); /*proto*/
static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *); /*proto*/
static PyObject *__pyx_f_4lxml_5etree__getNsTag(PyObject *); /*proto*/
static PyObject *__pyx_f_4lxml_5etree__getNsTagWithEmptyNs(PyObject *); /*proto*/
static PyObject *__pyx_pf_4lxml_5etree_9_MemDebug_4dict_size(CYTHON_UNUSED struct __pyx_obj_4lxml_5etree__MemDebug *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4lxml_5etree_9_MemDebug_6dump(CYTHON_UNUSED struct __pyx_obj_4lxml_5etree__MemDebug *__pyx_v_self, PyObject *__pyx_v_output_file, PyObject *__pyx_v_byte_count); /* proto */
static PyObject *__pyx_pf_4lxml_5etree_9_MemDebug_8show(CYTHON_UNUSED struct __pyx_obj_4lxml_5etree__MemDebug *__pyx_v_self, PyObject *__pyx_v_output_file, PyObject *__pyx_v_block_count); /* proto */
+static PyObject *__pyx_tp_new_4lxml_5etree__TempStore(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__ExceptionContext(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__Document(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__Element(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__BaseParser(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree_QName(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__LogEntry(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__BaseErrorLog(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__ListErrorLog(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__ErrorLogContext(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__ErrorLog(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__DomainErrorLog(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__RotatingErrorLog(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree_PyErrorLog(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree_DocInfo(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree___ContentOnlyElement(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__Comment(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__ProcessingInstruction(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__Entity(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__ElementTree(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__Attrib(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__AttribIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__ElementTagMatcher(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__ElementIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__MultiTagMatcher(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__ElementMatchIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree_ElementChildIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree_SiblingsIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree_AncestorsIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree_ElementDepthFirstIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree_ElementTextIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree_CDATA(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__ReadOnlyProxy(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__ReadOnlyPIProxy(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__ReadOnlyEntityProxy(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__ReadOnlyElementProxy(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__OpaqueNodeWrapper(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__OpaqueDocumentWrapper(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__ModifyContentOnlyProxy(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__ModifyContentOnlyPIProxy(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__ModifyContentOnlyEntityProxy(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__AppendOnlyElementProxy(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree_ElementBase(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree_CommentBase(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree_PIBase(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree_EntityBase(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree_ElementClassLookup(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree_FallbackElementClassLookup(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree_ElementDefaultClassLookup(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree_AttributeBasedElementClassLookup(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree_ParserBasedElementClassLookup(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree_CustomElementClassLookup(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree_PythonElementClassLookup(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__NamespaceRegistry(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__ClassNamespaceRegistry(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree_ElementNamespaceClassLookup(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__FunctionNamespaceRegistry(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__XPathFunctionNamespaceRegistry(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__InputDocument(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree_Resolver(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__ResolverRegistry(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__ResolverContext(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__ParserContext(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__SaxParserContext(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__TargetParserContext(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__ParserSchemaValidationContext(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__Validator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree_XMLSchema(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__ParserDictionaryContext(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__FileReaderContext(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__FeedParser(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree_XMLParser(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree_ETCompatXMLParser(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree_HTMLParser(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__SaxParserTarget(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree_TreeBuilder(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__PythonSaxParserTarget(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__FilelikeWriter(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree_xmlfile(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__IncrementalFileWriter(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__FileWriterElement(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__IterparseContext(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree_iterparse(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree_iterwalk(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__IDDict(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree_XInclude(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__ExsltRegExp(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__BaseContext(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__ElementUnicodeResult(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__XPathContext(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__XPathEvaluatorBase(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree_XPathElementEvaluator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree_XPathDocumentEvaluator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree_XPath(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree_ETXPath(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__XSLTResolverContext(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree_XSLTAccessControl(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__XSLTContext(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__XSLTQuotedStringParam(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree_XSLT(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__XSLTResultTree(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__XSLTProcessingInstruction(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree_XSLTExtension(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__DTDElementContentDecl(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__DTDAttributeDecl(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__DTDElementDecl(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__DTDEntityDecl(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree_DTD(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree_RelaxNG(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree_Schematron(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__MemDebug(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree___pyx_scope_struct__itervalues(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree___pyx_scope_struct_1_iterattributes(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree___pyx_scope_struct_2_iterelements(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree___pyx_scope_struct_3_iterentities(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static char __pyx_k_1[] = "Prefix format reserved for internal use";
static char __pyx_k_4[] = "-";
static char __pyx_k_5[] = ".";
-static char __pyx_k_11[] = "double registering proxy!";
-static char __pyx_k_12[] = "Tried to unregister unknown proxy";
-static char __pyx_k_13[] = " ";
-static char __pyx_k_14[] = "invalid Element proxy at %s";
-static char __pyx_k_15[] = "invalid Document proxy at %s";
-static char __pyx_k_16[] = "Invalid input object: %s";
-static char __pyx_k_17[] = "Input object has no document: %s";
-static char __pyx_k_18[] = "Input object has no element: %s";
-static char __pyx_k_19[] = "Invalid attribute dictionary: %s";
-static char __pyx_k_20[] = "\\g<1>\\g<2>";
-static char __pyx_k_21[] = "";
-static char __pyx_k_22[] = "%s:%s";
-static char __pyx_k_23[] = "attempt to assign sequence of size %d to extended slice of size %d";
-static char __pyx_k_24[] = "Node must not be None";
-static char __pyx_k_25[] = "Argument must be bytes or unicode, got '%.200s'";
-static char __pyx_k_26[] = "All strings must be XML compatible: Unicode or ASCII, no NULL bytes or control characters";
-static char __pyx_k_28[] = "Argument must be string or unicode.";
-static char __pyx_k_31[] = "Invalid tag name";
-static char __pyx_k_32[] = "Empty tag name";
-static char __pyx_k_33[] = "Invalid tag name %r";
-static char __pyx_k_34[] = "Invalid HTML tag name %r";
-static char __pyx_k_35[] = "Invalid attribute name %r";
-static char __pyx_k_36[] = "Invalid namespace prefix %r";
-static char __pyx_k_37[] = "Invalid namespace URI %r";
-static char __pyx_k_38[] = "{%s}%s";
-static char __pyx_k_39[] = "unknown error";
-static char __pyx_k_40[] = "PyUnicode_DecodeASCII";
-static char __pyx_k_41[] = "<undecodable error message>";
-static char __pyx_k_42[] = "<string>";
-static char __pyx_k_43[] = "%s:%d:%d:%s:%s:%s: %s";
-static char __pyx_k_44[] = "%s, line %d, column %d";
-static char __pyx_k_45[] = "%s, line %d";
-static char __pyx_k_46[] = "\n";
-static char __pyx_k_48[] = "file %s";
-static char __pyx_k_49[] = "string://__STRING__XSLT";
-static char __pyx_k_50[] = "<xslt>";
-static char __pyx_k_51[] = "line %d";
-static char __pyx_k_52[] = "element %s";
-static char __pyx_k_53[] = "%s, element '%s'";
-static char __pyx_k_54[] = "\\s*([a-zA-Z0-9_]+)\\s*=\\s*([0-9]+)";
-static char __pyx_k_56[] = "ns%d";
-static char __pyx_k_57[] = "invalid node type %d, expected %d";
-static char __pyx_k_58[] = "Could not find root node";
-static char __pyx_k_59[] = "<!DOCTYPE %s PUBLIC \"%s\" \"%s\">";
-static char __pyx_k_60[] = "<!DOCTYPE %s PUBLIC \"%s\">";
-static char __pyx_k_61[] = "<!DOCTYPE %s SYSTEM \"%s\">";
-static char __pyx_k_62[] = "<!DOCTYPE %s>";
-static char __pyx_k_63[] = "cannot assign None";
-static char __pyx_k_64[] = "list index out of range";
-static char __pyx_k_65[] = "index out of range: %d";
-static char __pyx_k_66[] = "Only processing instructions and comments can be siblings of the root element";
-static char __pyx_k_67[] = "Element is not a child of this node.";
-static char __pyx_k_68[] = "<Element %s at 0x%x>";
-static char __pyx_k_69[] = "The behavior of this method will change in future versions. Use specific 'len(elem)' or 'elem is not None' test instead.";
-static char __pyx_k_70[] = "list.index(x): x not in slice";
-static char __pyx_k_71[] = "list.index(x): x not in list";
-static char __pyx_k_76[] = "this element does not have children or attributes";
-static char __pyx_k_77[] = "<!--%s-->";
-static char __pyx_k_78[] = "ProcessingInstruction";
-static char __pyx_k_79[] = "<?%s %s?>";
-static char __pyx_k_80[] = "<?%s?>";
-static char __pyx_k_81[] = "&";
-static char __pyx_k_82[] = ";";
-static char __pyx_k_83[] = "Invalid entity name '%s'";
-static char __pyx_k_84[] = "&%s;";
-static char __pyx_k_85[] = "text_or_uri_or_element";
-static char __pyx_k_86[] = "Invalid input tag of type %r";
-static char __pyx_k_87[] = "ElementTree not initialized, missing root";
-static char __pyx_k_88[] = "Only elements can be the root of an ElementTree";
-static char __pyx_k_89[] = "inclusive_ns_prefixes";
-static char __pyx_k_94[] = "Cannot specify encoding with C14N";
-static char __pyx_k_96[] = "Cannot enable XML declaration in C14N";
-static char __pyx_k_98[] = "Can only discard comments in C14N serialisation";
+static char __pyx_k_15[] = "double registering proxy!";
+static char __pyx_k_16[] = "Tried to unregister unknown proxy";
+static char __pyx_k_17[] = " ";
+static char __pyx_k_18[] = "invalid Element proxy at %s";
+static char __pyx_k_19[] = "invalid Document proxy at %s";
+static char __pyx_k_20[] = "Invalid input object: %s";
+static char __pyx_k_21[] = "Input object has no document: %s";
+static char __pyx_k_22[] = "Input object has no element: %s";
+static char __pyx_k_23[] = "Invalid attribute dictionary: %s";
+static char __pyx_k_24[] = "\\g<1>\\g<2>";
+static char __pyx_k_25[] = "";
+static char __pyx_k_26[] = "%s:%s";
+static char __pyx_k_27[] = "attempt to assign sequence of size %d to extended slice of size %d";
+static char __pyx_k_28[] = "Node must not be None";
+static char __pyx_k_29[] = "Argument must be bytes or unicode, got '%.200s'";
+static char __pyx_k_30[] = "All strings must be XML compatible: Unicode or ASCII, no NULL bytes or control characters";
+static char __pyx_k_32[] = "Argument must be string or unicode.";
+static char __pyx_k_35[] = "Invalid tag name";
+static char __pyx_k_36[] = "Empty tag name";
+static char __pyx_k_37[] = "Invalid tag name %r";
+static char __pyx_k_38[] = "Invalid HTML tag name %r";
+static char __pyx_k_39[] = "Invalid attribute name %r";
+static char __pyx_k_40[] = "Invalid namespace prefix %r";
+static char __pyx_k_41[] = "Invalid namespace URI %r";
+static char __pyx_k_42[] = "{%s}%s";
+static char __pyx_k_43[] = "unknown error";
+static char __pyx_k_44[] = "PyUnicode_DecodeASCII";
+static char __pyx_k_45[] = "<undecodable error message>";
+static char __pyx_k_46[] = "<string>";
+static char __pyx_k_47[] = "%s:%d:%d:%s:%s:%s: %s";
+static char __pyx_k_48[] = "%s, line %d, column %d";
+static char __pyx_k_49[] = "%s, line %d";
+static char __pyx_k_50[] = "\n";
+static char __pyx_k_52[] = "file %s";
+static char __pyx_k_53[] = "string://__STRING__XSLT";
+static char __pyx_k_54[] = "<xslt>";
+static char __pyx_k_55[] = "line %d";
+static char __pyx_k_56[] = "element %s";
+static char __pyx_k_57[] = "%s, element '%s'";
+static char __pyx_k_58[] = "\\s*([a-zA-Z0-9_]+)\\s*=\\s*([0-9]+)";
+static char __pyx_k_60[] = "ns%d";
+static char __pyx_k_61[] = "invalid node type %d, expected %d";
+static char __pyx_k_62[] = "Could not find root node";
+static char __pyx_k_63[] = "<!DOCTYPE %s PUBLIC \"%s\" \"%s\">";
+static char __pyx_k_64[] = "<!DOCTYPE %s PUBLIC \"%s\">";
+static char __pyx_k_65[] = "<!DOCTYPE %s SYSTEM \"%s\">";
+static char __pyx_k_66[] = "<!DOCTYPE %s>";
+static char __pyx_k_67[] = "cannot assign None";
+static char __pyx_k_68[] = "list index out of range";
+static char __pyx_k_69[] = "index out of range: %d";
+static char __pyx_k_70[] = "Only processing instructions and comments can be siblings of the root element";
+static char __pyx_k_71[] = "Element is not a child of this node.";
+static char __pyx_k_72[] = "<Element %s at 0x%x>";
+static char __pyx_k_73[] = "The behavior of this method will change in future versions. Use specific 'len(elem)' or 'elem is not None' test instead.";
+static char __pyx_k_74[] = "list.index(x): x not in slice";
+static char __pyx_k_75[] = "list.index(x): x not in list";
+static char __pyx_k_80[] = "this element does not have children or attributes";
+static char __pyx_k_81[] = "<!--%s-->";
+static char __pyx_k_82[] = "ProcessingInstruction";
+static char __pyx_k_83[] = "<?%s %s?>";
+static char __pyx_k_84[] = "<?%s?>";
+static char __pyx_k_85[] = "&";
+static char __pyx_k_86[] = ";";
+static char __pyx_k_87[] = "Invalid entity name '%s'";
+static char __pyx_k_88[] = "&%s;";
+static char __pyx_k_89[] = "text_or_uri_or_element";
+static char __pyx_k_90[] = "Invalid input tag of type %r";
+static char __pyx_k_91[] = "ElementTree not initialized, missing root";
+static char __pyx_k_92[] = "Only elements can be the root of an ElementTree";
+static char __pyx_k_93[] = "inclusive_ns_prefixes";
+static char __pyx_k_98[] = "Cannot specify encoding with C14N";
static char __pyx_k__A[] = "A";
static char __pyx_k__B[] = "B";
static char __pyx_k__U[] = "U";
static char __pyx_k__s[] = "s";
static char __pyx_k__v[] = "v";
static char __pyx_k__w[] = "w";
-static char __pyx_k_100[] = "US-ASCII";
-static char __pyx_k_101[] = "UTF-8";
-static char __pyx_k_102[] = "Element is not in this tree.";
-static char __pyx_k_103[] = "/";
-static char __pyx_k_107[] = "pop expected at most 2 arguments, got %d";
-static char __pyx_k_108[] = "*";
-static char __pyx_k_109[] = "{*}*";
-static char __pyx_k_116[] = "Invalid character reference: '%s'";
-static char __pyx_k_117[] = "Invalid entity reference: '%s'";
-static char __pyx_k_122[] = "Serialisation to unicode must not request an XML declaration";
-static char __pyx_k_123[] = "Type '%s' cannot be serialized.";
-static char __pyx_k_124[] = "Proxy invalidated!";
-static char __pyx_k_125[] = "Unsupported node type: %d";
-static char __pyx_k_128[] = "Unsupported element type: %d";
-static char __pyx_k_129[] = "This type cannot be instatiated from Python";
-static char __pyx_k_130[] = "cannot append, document already has a root element";
-static char __pyx_k_131[] = "unsupported element type for top-level node: %d";
-static char __pyx_k_132[] = "invalid argument type %s";
-static char __pyx_k_133[] = "invalid element";
-static char __pyx_k_135[] = "Invalid child type: %r";
-static char __pyx_k_136[] = "element class must be subclass of ElementBase";
-static char __pyx_k_137[] = "comment class must be subclass of CommentBase";
-static char __pyx_k_138[] = "Entity class must be subclass of EntityBase";
-static char __pyx_k_139[] = "PI class must be subclass of PIBase";
-static char __pyx_k_140[] = "xml-stylesheet";
-static char __pyx_k_141[] = "text/xsl";
-static char __pyx_k_142[] = "text/xml";
-static char __pyx_k_143[] = "Unknown node type: %s";
-static char __pyx_k_144[] = "Name not registered.";
-static char __pyx_k_145[] = "NamespaceRegistryError";
-static char __pyx_k_146[] = "Registered element classes must be subtypes of ElementBase";
-static char __pyx_k_147[] = "Namespace(%r)";
-static char __pyx_k_148[] = "Registered functions must be callable.";
-static char __pyx_k_149[] = "extensions must have non empty names";
-static char __pyx_k_150[] = "FunctionNamespace(%r)";
-static char __pyx_k_151[] = "argument must be a byte string or unicode string";
-static char __pyx_k_152[] = "Argument is not a file-like object";
-static char __pyx_k_153[] = "_ParserDictionaryContext";
-static char __pyx_k_154[] = "<test/>";
-static char __pyx_k_155[] = "UTF-16LE";
-static char __pyx_k_156[] = "UTF-16BE";
-static char __pyx_k_157[] = "UCS-4LE";
-static char __pyx_k_158[] = "UCS-4BE";
-static char __pyx_k_159[] = "reading from file-like objects must return byte strings or unicode strings";
-static char __pyx_k_160[] = "parser locking failed";
-static char __pyx_k_161[] = "Error reading file '%s': %s";
-static char __pyx_k_162[] = "Error reading '%s'";
-static char __pyx_k_163[] = "Document is not well formed";
-static char __pyx_k_164[] = "line %d: %s";
-static char __pyx_k_165[] = "WAR_UNDECLARED_ENTITY";
-static char __pyx_k_166[] = "ERR_UNDECLARED_ENTITY";
-static char __pyx_k_167[] = "This class cannot be instantiated";
-static char __pyx_k_168[] = "unknown encoding: '%s'";
-static char __pyx_k_169[] = "libxml2 %d.%d.%d";
-static char __pyx_k_170[] = "set_element_class_lookup";
-static char __pyx_k_171[] = "string is too long to parse it with libxml2";
-static char __pyx_k_172[] = "Unicode parsing is not supported on this platform";
-static char __pyx_k_173[] = "Parsing requires string data";
-static char __pyx_k_174[] = "no element found";
-static char __pyx_k_208[] = "cannot parse from '%s'";
-static char __pyx_k_209[] = "Unicode strings with encoding declaration are not supported. Please use bytes input or XML fragments without declaration.";
-static char __pyx_k_211[] = "can only parse strings";
-static char __pyx_k_212[] = "internal error (tail)";
-static char __pyx_k_213[] = "internal error (text)";
-static char __pyx_k_214[] = "missing end tags";
-static char __pyx_k_215[] = "missing toplevel element";
-static char __pyx_k_216[] = "end tag mismatch (expected %s, got %s)";
-static char __pyx_k_217[] = "unknown output method %r";
-static char __pyx_k_218[] = "Error during serialisation (out of memory?)";
-static char __pyx_k_219[] = "utf-8";
-static char __pyx_k_221[] = "C14N failed";
-static char __pyx_k_222[] = "unknown error %d";
-static char __pyx_k_223[] = "1.0";
-static char __pyx_k_224[] = "<?xml version='";
-static char __pyx_k_225[] = "' encoding='";
-static char __pyx_k_226[] = "' standalone='no'?>\n";
-static char __pyx_k_227[] = "' standalone='yes'?>\n";
-static char __pyx_k_228[] = "'?>\n";
-static char __pyx_k_229[] = "<!DOCTYPE ";
-static char __pyx_k_230[] = " PUBLIC \"";
-static char __pyx_k_231[] = "\" \"";
-static char __pyx_k_232[] = " SYSTEM \"";
-static char __pyx_k_233[] = "\"";
-static char __pyx_k_234[] = ">\n";
-static char __pyx_k_235[] = " [\n";
-static char __pyx_k_236[] = "]>\n";
-static char __pyx_k_237[] = "Could not create I/O writer context.";
-static char __pyx_k_238[] = "File is already closed";
-static char __pyx_k_239[] = "File or filename expected, got '%s'";
-static char __pyx_k_241[] = "XML declaration already written";
-static char __pyx_k_243[] = "DOCTYPE already written or cannot write it here";
-static char __pyx_k_245[] = ":";
-static char __pyx_k_246[] = "cannot append trailing element to complete XML document";
-static char __pyx_k_248[] = "<";
-static char __pyx_k_249[] = ">";
-static char __pyx_k_250[] = "=\"";
-static char __pyx_k_251[] = "not in an element";
-static char __pyx_k_253[] = "inconsistent exit action in context manager";
-static char __pyx_k_255[] = "</";
-static char __pyx_k_258[] = "got invalid input value of type %s, expected string or Element";
-static char __pyx_k_259[] = "no content written";
-static char __pyx_k_261[] = "pending open tags on close";
-static char __pyx_k_263[] = "start-ns";
-static char __pyx_k_264[] = "end-ns";
-static char __pyx_k_265[] = "invalid event name '%s'";
-static char __pyx_k_280[] = "iterparse parsers cannot be copied";
-static char __pyx_k_282[] = "reading file objects must return bytes objects";
-static char __pyx_k_288[] = "//*[string(@id)]";
-static char __pyx_k_291[] = "No ID dictionary available.";
-static char __pyx_k_292[] = "key not found.";
-static char __pyx_k_293[] = "ID attribute not found.";
-static char __pyx_k_294[] = "XInclude instance not initialised";
-static char __pyx_k_295[] = "XPath evaluator not initialised";
-static char __pyx_k_296[] = "XInclude processing failed";
-static char __pyx_k_297[] = "empty namespace prefix is not supported in XPath";
-static char __pyx_k_298[] = "setting default namespace is not supported in XPath";
-static char __pyx_k_299[] = "empty prefix is not supported in XPath";
-static char __pyx_k_300[] = "XPath context is only usable during the evaluation";
-static char __pyx_k_301[] = "no context node";
-static char __pyx_k_302[] = "document-external context nodes are not supported";
-static char __pyx_k_303[] = "document context is missing";
-static char __pyx_k_307[] = "http://exslt.org/regular-expressions";
-static char __pyx_k_308[] = "Non-Element values not supported at this point - got %r";
-static char __pyx_k_309[] = "text-root";
-static char __pyx_k_310[] = "This is not a supported node-set result: %r";
-static char __pyx_k_311[] = "Unknown return type: %s";
-static char __pyx_k_312[] = "Undefined xpath result";
-static char __pyx_k_313[] = "Unknown xpath result %s";
-static char __pyx_k_314[] = "Not yet implemented result node type: %d";
-static char __pyx_k_315[] = "_ElementStringResult";
-static char __pyx_k_316[] = "XPath function '%s' not found";
-static char __pyx_k_317[] = "This version of libxml2 has a known XPath bug. Use it at your own risk.";
-static char __pyx_k_319[] = "XPath evaluator locking failed";
-static char __pyx_k_320[] = "Error in xpath expression";
-static char __pyx_k_323[] = "XPath context not initialised";
-static char __pyx_k_332[] = "__xpp%02d";
-static char __pyx_k_334[] = "string://__STRING__XSLT__/";
-static char __pyx_k_335[] = "Cannot resolve URI %s";
-static char __pyx_k_336[] = "%s(%s)";
-static char __pyx_k_337[] = ", ";
-static char __pyx_k_338[] = "%s=%r";
-static char __pyx_k_339[] = "extensions must not have empty namespaces";
-static char __pyx_k_341[] = "string://__STRING__XSLT__/%d.xslt";
-static char __pyx_k_343[] = "Cannot parse stylesheet";
-static char __pyx_k_344[] = "cannot set a maximum stylesheet traversal depth < 0";
-static char __pyx_k_348[] = "XSLT stylesheet not initialised";
-static char __pyx_k_349[] = "Error applying stylesheet, line %d";
-static char __pyx_k_350[] = "Error applying stylesheet";
-static char __pyx_k_351[] = "//xsl:stylesheet[@xml:id = $id]";
-static char __pyx_k_353[] = "http://www.w3.org/1999/XSL/Transform";
-static char __pyx_k_354[] = "PI lacks content";
-static char __pyx_k_355[] = "malformed PI attributes";
-static char __pyx_k_356[] = "reference to non-existing embedded stylesheet";
-static char __pyx_k_357[] = "ambiguous reference to embedded stylesheet";
-static char __pyx_k_358[] = "only setting the 'href' attribute is supported on XSLT-PIs";
-static char __pyx_k_359[] = "Invalid URL, must not contain '\"' or '>'";
-static char __pyx_k_360[] = " href=\"%s\"";
-static char __pyx_k_361[] = "XSLT context not initialised";
-static char __pyx_k_362[] = "fake-parent";
-static char __pyx_k_363[] = "unsupported XSLT result type: %d";
-static char __pyx_k_364[] = "extension element %s not found";
-static char __pyx_k_366[] = "Error executing extension element '%s': %s";
-static char __pyx_k_367[] = "Error executing extension element '%s'";
-static char __pyx_k_368[] = "Error during XSLT extension element evaluation";
-static char __pyx_k_369[] = "Document does not comply with schema";
-static char __pyx_k_370[] = "invalid DTD proxy at %s";
-static char __pyx_k_371[] = "<%s.%s object name=%r type=%r occur=%r at 0x%x>";
-static char __pyx_k_372[] = "<%s.%s object name=%r elemname=%r prefix=%r type=%r default=%r default_value=%r at 0x%x>";
-static char __pyx_k_373[] = "<%s.%s object name=%r prefix=%r type=%r at 0x%x>";
-static char __pyx_k_374[] = "<%s.%s object name=%r at 0x%x>";
-static char __pyx_k_376[] = "file must be a filename or file-like object";
-static char __pyx_k_378[] = "either filename or external ID required";
-static char __pyx_k_379[] = "error parsing DTD";
-static char __pyx_k_380[] = "DTD not initialised";
-static char __pyx_k_381[] = "Failed to create validation context";
-static char __pyx_k_384[] = "Internal error in DTD validation";
-static char __pyx_k_386[] = "http://relaxng.org/ns/structure/1.0";
-static char __pyx_k_387[] = "Document is not Relax NG";
-static char __pyx_k_389[] = "No tree or file given";
-static char __pyx_k_390[] = "Document is not parsable as Relax NG";
-static char __pyx_k_391[] = "Document is not valid Relax NG";
-static char __pyx_k_392[] = "RelaxNG instance not initialised";
-static char __pyx_k_393[] = "RelaxNGValidateError";
-static char __pyx_k_394[] = "Internal error in Relax NG validation";
-static char __pyx_k_396[] = "http://www.w3.org/2001/XMLSchema";
-static char __pyx_k_397[] = "Document is not XML Schema";
-static char __pyx_k_398[] = "Document is not valid XML Schema";
-static char __pyx_k_399[] = "Schema instance not initialised";
-static char __pyx_k_400[] = "XMLSchemaValidateError";
-static char __pyx_k_401[] = "Internal error in XML Schema validation.";
-static char __pyx_k_402[] = "_ParserSchemaValidationContext not initialised";
-static char __pyx_k_403[] = "lxml.etree was compiled without Schematron support.";
-static char __pyx_k_405[] = "SchematronParseError";
-static char __pyx_k_407[] = "Document is not a valid Schematron schema";
-static char __pyx_k_408[] = "Schematron instance not initialised";
-static char __pyx_k_410[] = "SchematronValidateError";
-static char __pyx_k_411[] = "Internal error in Schematron validation";
-static char __pyx_k_412[] = ".memorylist";
-static char __pyx_k_413[] = "getfilesystemencoding";
-static char __pyx_k_414[] = "Failed to create file %s";
-static char __pyx_k_415[] = ".memorydump";
-static char __pyx_k_416[] = "Element tag\n ";
-static char __pyx_k_417[] = "Element attribute dictionary. Where possible, use get(), set(),\n keys(), values() and items() to access element attributes.\n ";
-static char __pyx_k_418[] = "Text before the first subelement. This is either a string or \n the value None, if there was no text.\n ";
-static char __pyx_k_419[] = "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 ";
-static char __pyx_k_420[] = "Namespace prefix or None.\n ";
-static char __pyx_k_421[] = "Original line number as found by the parser or None if unknown.\n ";
-static char __pyx_k_422[] = "Namespace prefix->URI mapping known in the context of this\n Element. This includes all namespace declarations of the\n parents.\n\n Note that changing the returned dict has no effect on the Element.\n ";
-static char __pyx_k_423[] = "The base URI of the Element (xml:base or HTML base URL).\n None if the base URI is unknown.\n\n Note that the value depends on the URL of the document that\n holds the Element if there is no xml:base attribute on the\n Element or its ancestors.\n\n Setting this property will set an xml:base attribute on the\n Element, regardless of the document type (XML or HTML).\n ";
-static char __pyx_k_424[] = "The error log of the last parser run.\n ";
-static char __pyx_k_425[] = "The custom resolver registry of this parser.";
-static char __pyx_k_426[] = "The version of the underlying XML parser.";
-static char __pyx_k_427[] = "The name of the error domain. See lxml.etree.ErrorDomains\n ";
-static char __pyx_k_428[] = "The name of the error type. See lxml.etree.ErrorTypes\n ";
-static char __pyx_k_429[] = "The name of the error level. See lxml.etree.ErrorLevels\n ";
-static char __pyx_k_430[] = "Returns the name of the root node as defined by the DOCTYPE.";
-static char __pyx_k_431[] = "Returns the public ID of the DOCTYPE.";
-static char __pyx_k_432[] = "Returns the system ID of the DOCTYPE.";
-static char __pyx_k_433[] = "Returns the XML version as declared by the document.";
-static char __pyx_k_434[] = "Returns the encoding name as declared by the document.";
-static char __pyx_k_435[] = "Returns the standalone flag as declared by the document. The possible\n values are True (``standalone='yes'``), False\n (``standalone='no'`` or flag not provided in the declaration),\n and None (unknown or no declaration found). Note that a\n normal truth test on this value will always tell if the\n ``standalone`` flag was set to ``'yes'`` or not.\n ";
-static char __pyx_k_436[] = "The source URL of the document (or None if unknown).";
-static char __pyx_k_437[] = "Returns a DOCTYPE declaration string for the document.";
-static char __pyx_k_438[] = "Returns a DTD validator based on the internal subset of the document.";
-static char __pyx_k_439[] = "Returns a DTD validator based on the external subset of the document.";
-static char __pyx_k_440[] = "Returns a dict containing all pseudo-attributes that can be\n parsed from the text content of this processing instruction.\n Note that modifying the dict currently has no effect on the\n XML node, although this is not guaranteed to stay this way.\n ";
-static char __pyx_k_441[] = "Information about the document provided by parser and DTD. This\n value is only defined for ElementTree objects based on the root node\n of a parsed document (e.g. those returned by the parse functions),\n not for trees that were built manually.\n ";
-static char __pyx_k_442[] = "The parser that was used to parse the document in this ElementTree.\n ";
-static char __pyx_k_443[] = "Text before the first subelement. This is either a string or the\n value None, if there was no text.\n ";
-static char __pyx_k_444[] = "Namespace prefix for extension functions.";
-static char __pyx_k_445[] = "The log of validation errors and warnings.";
-static char __pyx_k_446[] = "The error log of the last (or current) run of the feed parser.\n\n Note that this is local to the feed parser and thus is\n different from what the ``error_log`` property returns.\n ";
-static char __pyx_k_447[] = "The error log of the last (or current) parser run.\n ";
-static char __pyx_k_448[] = "The literal XPath expression.\n ";
-static char __pyx_k_449[] = "The access control configuration as a map of options.";
-static char __pyx_k_450[] = "The log of errors and warnings of an XSLT execution.";
-static char __pyx_k_451[] = "Return an ElementTree with profiling data for the stylesheet run.\n ";
-static char __pyx_k_452[] = "The ``lxml.etree`` module implements the extended ElementTree API\nfor XML.\n";
-static char __pyx_k_453[] = "restructuredtext en";
-static char __pyx_k_454[] = "AttributeBasedElementClassLookup";
-static char __pyx_k_455[] = "CustomElementClassLookup";
-static char __pyx_k_456[] = "ElementDefaultClassLookup";
-static char __pyx_k_457[] = "ElementNamespaceClassLookup";
-static char __pyx_k_458[] = "FallbackElementClassLookup";
-static char __pyx_k_459[] = "LIBXML_COMPILED_VERSION";
-static char __pyx_k_460[] = "LIBXSLT_COMPILED_VERSION";
-static char __pyx_k_461[] = "ParserBasedElementClassLookup";
-static char __pyx_k_462[] = "PythonElementClassLookup";
-static char __pyx_k_463[] = "XPathDocumentEvaluator";
-static char __pyx_k_464[] = "use_global_python_log";
-static char __pyx_k_465[] = "os.path";
-static char __pyx_k_467[] = "http://www.w3.org/XML/1998/namespace";
-static char __pyx_k_468[] = "http://www.w3.org/1999/xhtml";
-static char __pyx_k_469[] = "http://www.w3.org/1999/02/22-rdf-syntax-ns#";
-static char __pyx_k_470[] = "http://schemas.xmlsoap.org/wsdl/";
-static char __pyx_k_471[] = "http://www.w3.org/2001/XMLSchema-instance";
-static char __pyx_k_472[] = "http://purl.org/dc/elements/1.1/";
-static char __pyx_k_473[] = "http://codespeak.net/lxml/objectify/pytype";
-static char __pyx_k_474[] = "ns\\d+$";
-static char __pyx_k_478[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx";
-static char __pyx_k_479[] = "lxml.etree";
-static char __pyx_k_483[] = "LxmlError.__init__";
-static char __pyx_k_484[] = "Main exception base class for lxml. All other exceptions inherit from\n this one.\n ";
-static char __pyx_k_485[] = "Base class for all syntax errors.\n ";
-static char __pyx_k_486[] = "Error during C14N serialisation.\n ";
-static char __pyx_k_487[] = "[0-9]+";
-static char __pyx_k_489[] = "Unknown libxml2 version: %s";
-static char __pyx_k_490[] = "^(<\\?xml[^>]+)\\s+encoding\\s*=\\s*[\"\\'][^\"\\']*[\"\\'](\\s*\\?>|)";
-static char __pyx_k_492[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi";
-static char __pyx_k_496[] = "Libxml2 error levels";
-static char __pyx_k_497[] = "Libxml2 error domains";
-static char __pyx_k_498[] = "Libxml2 error types";
-static char __pyx_k_499[] = "Libxml2 RelaxNG error types";
-static char __pyx_k_500[] = "NONE=0\nWARNING=1\nERROR=2\nFATAL=3\n";
-static char __pyx_k_502[] = "NONE=0\nPARSER=1\nTREE=2\nNAMESPACE=3\nDTD=4\nHTML=5\nMEMORY=6\nOUTPUT=7\nIO=8\nFTP=9\nHTTP=10\nXINCLUDE=11\nXPATH=12\nXPOINTER=13\nREGEXP=14\nDATATYPE=15\nSCHEMASP=16\nSCHEMASV=17\nRELAXNGP=18\nRELAXNGV=19\nCATALOG=20\nC14N=21\nXSLT=22\nVALID=23\nCHECK=24\nWRITER=25\nMODULE=26\nI18N=27\nSCHEMATRONV=28\n";
-static char __pyx_k_504[] = "ERR_OK=0\nERR_INTERNAL_ERROR=1\nERR_NO_MEMORY=2\nERR_DOCUMENT_START=3\nERR_DOCUMENT_EMPTY=4\nERR_DOCUMENT_END=5\nERR_INVALID_HEX_CHARREF=6\nERR_INVALID_DEC_CHARREF=7\nERR_INVALID_CHARREF=8\nERR_INVALID_CHAR=9\nERR_CHARREF_AT_EOF=10\nERR_CHARREF_IN_PROLOG=11\nERR_CHARREF_IN_EPILOG=12\nERR_CHARREF_IN_DTD=13\nERR_ENTITYREF_AT_EOF=14\nERR_ENTITYREF_IN_PROLOG=15\nERR_ENTITYREF_IN_EPILOG=16\nERR_ENTITYREF_IN_DTD=17\nERR_PEREF_AT_EOF=18\nERR_PEREF_IN_PROLOG=19\nERR_PEREF_IN_EPILOG=20\nERR_PEREF_IN_INT_SUBSET=21\nERR_ENTITYREF_NO_NAME=22\nERR_ENTITYREF_SEMICOL_MISSING=23\nERR_PEREF_NO_NAME=24\nERR_PEREF_SEMICOL_MISSING=25\nERR_UNDECLARED_ENTITY=26\nWAR_UNDECLARED_ENTITY=27\nERR_UNPARSED_ENTITY=28\nERR_ENTITY_IS_EXTERNAL=29\nERR_ENTITY_IS_PARAMETER=30\nERR_UNKNOWN_ENCODING=31\nERR_UNSUPPORTED_ENCODING=32\nERR_STRING_NOT_STARTED=33\nERR_STRING_NOT_CLOSED=34\nERR_NS_DECL_ERROR=35\nERR_ENTITY_NOT_STARTED=36\nERR_ENTITY_NOT_FINISHED=37\nERR_LT_IN_ATTRIBUTE=38\nERR_ATTRIBUTE_NOT_STARTED=39\nERR_ATTRIBUTE_NOT_FINISHED=40\nERR_ATTRIBUTE_WITHOUT_VALUE=41\nERR_ATTRIBUTE_REDEFINED=42\nERR_LITERAL_NOT_STARTED=43\nERR_LITERAL_NOT_FINISHED=44\nERR_COMMENT_NOT_FINISHED=45\nERR_PI_NOT_STARTED=46\nERR_PI_NOT_FINISHED=47\nERR_NOTATION_NOT_STARTED=48\nERR_NOTATION_NOT_FINISHED=49\nERR_ATTLIST_NOT_STARTED=50\nERR_ATTLIST_NOT_FINISHED=51\nERR_MIXED_NOT_STARTED=52\nERR_MIXED_NOT_FINISHED=53\nERR_ELEMCONTENT_NOT_STARTED=54\nERR_ELEMCONTENT_NOT_FINISHED=55\nERR_XMLDECL_NOT_STARTED=56\nERR_XMLDECL_NOT_FINISHED=57\nERR_CONDSEC_NOT_STARTED=58\nERR_CONDSEC_NOT_FINISHED=59\nERR_EXT_SUBSET_NOT_FINISHED=60\nERR_DOCTYPE_NOT_FINISHED=61\nERR_MISPLACED_CDATA_END=62\nERR_CDATA_NOT_FINISHED=63\nERR_RESERVED_XML_NAME=64\nERR_SPACE_REQUIRED=65\nERR_SEPARATOR_REQUIRED=66\nERR_NMTOKEN_REQUIRED=67\nERR_NAME_REQUIRED=68\nERR_PCDATA_REQUIRED=69\nERR_URI_REQUIRED=70\nERR_PUBID_REQUIRED=71\nERR_LT_REQUIRED=72\nERR_GT_REQUIRED=73\nERR_LTSLASH_REQUIRED=74\nERR_EQUAL_REQUIRED=75\nERR_TAG_NAME_MISMATCH=76\nERR_TAG_NOT_FIN""ISHED=77\nERR_STANDALONE_VALUE=78\n";
-static char __pyx_k_505[] = "ERR_ENCODING_NAME=79\nERR_HYPHEN_IN_COMMENT=80\nERR_INVALID_ENCODING=81\nERR_EXT_ENTITY_STANDALONE=82\nERR_CONDSEC_INVALID=83\nERR_VALUE_REQUIRED=84\nERR_NOT_WELL_BALANCED=85\nERR_EXTRA_CONTENT=86\nERR_ENTITY_CHAR_ERROR=87\nERR_ENTITY_PE_INTERNAL=88\nERR_ENTITY_LOOP=89\nERR_ENTITY_BOUNDARY=90\nERR_INVALID_URI=91\nERR_URI_FRAGMENT=92\nWAR_CATALOG_PI=93\nERR_NO_DTD=94\nERR_CONDSEC_INVALID_KEYWORD=95\nERR_VERSION_MISSING=96\nWAR_UNKNOWN_VERSION=97\nWAR_LANG_VALUE=98\nWAR_NS_URI=99\nWAR_NS_URI_RELATIVE=100\nERR_MISSING_ENCODING=101\nWAR_SPACE_VALUE=102\nERR_NOT_STANDALONE=103\nERR_ENTITY_PROCESSING=104\nERR_NOTATION_PROCESSING=105\nWAR_NS_COLUMN=106\nWAR_ENTITY_REDEFINED=107\nERR_UNKNOWN_VERSION=108\nERR_VERSION_MISMATCH=109\nNS_ERR_XML_NAMESPACE=200\nNS_ERR_UNDEFINED_NAMESPACE=201\nNS_ERR_QNAME=202\nNS_ERR_ATTRIBUTE_REDEFINED=203\nNS_ERR_EMPTY=204\nNS_ERR_COLON=205\nDTD_ATTRIBUTE_DEFAULT=500\nDTD_ATTRIBUTE_REDEFINED=501\nDTD_ATTRIBUTE_VALUE=502\nDTD_CONTENT_ERROR=503\nDTD_CONTENT_MODEL=504\nDTD_CONTENT_NOT_DETERMINIST=505\nDTD_DIFFERENT_PREFIX=506\nDTD_ELEM_DEFAULT_NAMESPACE=507\nDTD_ELEM_NAMESPACE=508\nDTD_ELEM_REDEFINED=509\nDTD_EMPTY_NOTATION=510\nDTD_ENTITY_TYPE=511\nDTD_ID_FIXED=512\nDTD_ID_REDEFINED=513\nDTD_ID_SUBSET=514\nDTD_INVALID_CHILD=515\nDTD_INVALID_DEFAULT=516\nDTD_LOAD_ERROR=517\nDTD_MISSING_ATTRIBUTE=518\nDTD_MIXED_CORRUPT=519\nDTD_MULTIPLE_ID=520\nDTD_NO_DOC=521\nDTD_NO_DTD=522\nDTD_NO_ELEM_NAME=523\nDTD_NO_PREFIX=524\nDTD_NO_ROOT=525\nDTD_NOTATION_REDEFINED=526\nDTD_NOTATION_VALUE=527\nDTD_NOT_EMPTY=528\nDTD_NOT_PCDATA=529\nDTD_NOT_STANDALONE=530\nDTD_ROOT_NAME=531\nDTD_STANDALONE_WHITE_SPACE=532\nDTD_UNKNOWN_ATTRIBUTE=533\nDTD_UNKNOWN_ELEM=534\nDTD_UNKNOWN_ENTITY=535\nDTD_UNKNOWN_ID=536\nDTD_UNKNOWN_NOTATION=537\nDTD_STANDALONE_DEFAULTED=538\nDTD_XMLID_VALUE=539\nDTD_XMLID_TYPE=540\nDTD_DUP_TOKEN=541\nHTML_STRUCURE_ERROR=800\nHTML_UNKNOWN_TAG=801\nRNGP_ANYNAME_ATTR_ANCESTOR=1000\nRNGP_ATTR_CONFLICT=1001\nRNGP_ATTRIBUTE_CHILDREN=1002\nRNGP_ATTRIBUTE_""CONTENT=1003\n";
-static char __pyx_k_506[] = "RNGP_ATTRIBUTE_EMPTY=1004\nRNGP_ATTRIBUTE_NOOP=1005\nRNGP_CHOICE_CONTENT=1006\nRNGP_CHOICE_EMPTY=1007\nRNGP_CREATE_FAILURE=1008\nRNGP_DATA_CONTENT=1009\nRNGP_DEF_CHOICE_AND_INTERLEAVE=1010\nRNGP_DEFINE_CREATE_FAILED=1011\nRNGP_DEFINE_EMPTY=1012\nRNGP_DEFINE_MISSING=1013\nRNGP_DEFINE_NAME_MISSING=1014\nRNGP_ELEM_CONTENT_EMPTY=1015\nRNGP_ELEM_CONTENT_ERROR=1016\nRNGP_ELEMENT_EMPTY=1017\nRNGP_ELEMENT_CONTENT=1018\nRNGP_ELEMENT_NAME=1019\nRNGP_ELEMENT_NO_CONTENT=1020\nRNGP_ELEM_TEXT_CONFLICT=1021\nRNGP_EMPTY=1022\nRNGP_EMPTY_CONSTRUCT=1023\nRNGP_EMPTY_CONTENT=1024\nRNGP_EMPTY_NOT_EMPTY=1025\nRNGP_ERROR_TYPE_LIB=1026\nRNGP_EXCEPT_EMPTY=1027\nRNGP_EXCEPT_MISSING=1028\nRNGP_EXCEPT_MULTIPLE=1029\nRNGP_EXCEPT_NO_CONTENT=1030\nRNGP_EXTERNALREF_EMTPY=1031\nRNGP_EXTERNAL_REF_FAILURE=1032\nRNGP_EXTERNALREF_RECURSE=1033\nRNGP_FORBIDDEN_ATTRIBUTE=1034\nRNGP_FOREIGN_ELEMENT=1035\nRNGP_GRAMMAR_CONTENT=1036\nRNGP_GRAMMAR_EMPTY=1037\nRNGP_GRAMMAR_MISSING=1038\nRNGP_GRAMMAR_NO_START=1039\nRNGP_GROUP_ATTR_CONFLICT=1040\nRNGP_HREF_ERROR=1041\nRNGP_INCLUDE_EMPTY=1042\nRNGP_INCLUDE_FAILURE=1043\nRNGP_INCLUDE_RECURSE=1044\nRNGP_INTERLEAVE_ADD=1045\nRNGP_INTERLEAVE_CREATE_FAILED=1046\nRNGP_INTERLEAVE_EMPTY=1047\nRNGP_INTERLEAVE_NO_CONTENT=1048\nRNGP_INVALID_DEFINE_NAME=1049\nRNGP_INVALID_URI=1050\nRNGP_INVALID_VALUE=1051\nRNGP_MISSING_HREF=1052\nRNGP_NAME_MISSING=1053\nRNGP_NEED_COMBINE=1054\nRNGP_NOTALLOWED_NOT_EMPTY=1055\nRNGP_NSNAME_ATTR_ANCESTOR=1056\nRNGP_NSNAME_NO_NS=1057\nRNGP_PARAM_FORBIDDEN=1058\nRNGP_PARAM_NAME_MISSING=1059\nRNGP_PARENTREF_CREATE_FAILED=1060\nRNGP_PARENTREF_NAME_INVALID=1061\nRNGP_PARENTREF_NO_NAME=1062\nRNGP_PARENTREF_NO_PARENT=1063\nRNGP_PARENTREF_NOT_EMPTY=1064\nRNGP_PARSE_ERROR=1065\nRNGP_PAT_ANYNAME_EXCEPT_ANYNAME=1066\nRNGP_PAT_ATTR_ATTR=1067\nRNGP_PAT_ATTR_ELEM=1068\nRNGP_PAT_DATA_EXCEPT_ATTR=1069\nRNGP_PAT_DATA_EXCEPT_ELEM=1070\nRNGP_PAT_DATA_EXCEPT_EMPTY=1071\nRNGP_PAT_DATA_EXCEPT_GROUP=1072\nRNGP_PAT_DATA_EXCEPT_INTERLEAVE=1073\nRNGP_PAT_DATA_EXCEPT_LIST=""1074\n";
-static char __pyx_k_507[] = "RNGP_PAT_DATA_EXCEPT_ONEMORE=1075\nRNGP_PAT_DATA_EXCEPT_REF=1076\nRNGP_PAT_DATA_EXCEPT_TEXT=1077\nRNGP_PAT_LIST_ATTR=1078\nRNGP_PAT_LIST_ELEM=1079\nRNGP_PAT_LIST_INTERLEAVE=1080\nRNGP_PAT_LIST_LIST=1081\nRNGP_PAT_LIST_REF=1082\nRNGP_PAT_LIST_TEXT=1083\nRNGP_PAT_NSNAME_EXCEPT_ANYNAME=1084\nRNGP_PAT_NSNAME_EXCEPT_NSNAME=1085\nRNGP_PAT_ONEMORE_GROUP_ATTR=1086\nRNGP_PAT_ONEMORE_INTERLEAVE_ATTR=1087\nRNGP_PAT_START_ATTR=1088\nRNGP_PAT_START_DATA=1089\nRNGP_PAT_START_EMPTY=1090\nRNGP_PAT_START_GROUP=1091\nRNGP_PAT_START_INTERLEAVE=1092\nRNGP_PAT_START_LIST=1093\nRNGP_PAT_START_ONEMORE=1094\nRNGP_PAT_START_TEXT=1095\nRNGP_PAT_START_VALUE=1096\nRNGP_PREFIX_UNDEFINED=1097\nRNGP_REF_CREATE_FAILED=1098\nRNGP_REF_CYCLE=1099\nRNGP_REF_NAME_INVALID=1100\nRNGP_REF_NO_DEF=1101\nRNGP_REF_NO_NAME=1102\nRNGP_REF_NOT_EMPTY=1103\nRNGP_START_CHOICE_AND_INTERLEAVE=1104\nRNGP_START_CONTENT=1105\nRNGP_START_EMPTY=1106\nRNGP_START_MISSING=1107\nRNGP_TEXT_EXPECTED=1108\nRNGP_TEXT_HAS_CHILD=1109\nRNGP_TYPE_MISSING=1110\nRNGP_TYPE_NOT_FOUND=1111\nRNGP_TYPE_VALUE=1112\nRNGP_UNKNOWN_ATTRIBUTE=1113\nRNGP_UNKNOWN_COMBINE=1114\nRNGP_UNKNOWN_CONSTRUCT=1115\nRNGP_UNKNOWN_TYPE_LIB=1116\nRNGP_URI_FRAGMENT=1117\nRNGP_URI_NOT_ABSOLUTE=1118\nRNGP_VALUE_EMPTY=1119\nRNGP_VALUE_NO_CONTENT=1120\nRNGP_XMLNS_NAME=1121\nRNGP_XML_NS=1122\nXPATH_EXPRESSION_OK=1200\nXPATH_NUMBER_ERROR=1201\nXPATH_UNFINISHED_LITERAL_ERROR=1202\nXPATH_START_LITERAL_ERROR=1203\nXPATH_VARIABLE_REF_ERROR=1204\nXPATH_UNDEF_VARIABLE_ERROR=1205\nXPATH_INVALID_PREDICATE_ERROR=1206\nXPATH_EXPR_ERROR=1207\nXPATH_UNCLOSED_ERROR=1208\nXPATH_UNKNOWN_FUNC_ERROR=1209\nXPATH_INVALID_OPERAND=1210\nXPATH_INVALID_TYPE=1211\nXPATH_INVALID_ARITY=1212\nXPATH_INVALID_CTXT_SIZE=1213\nXPATH_INVALID_CTXT_POSITION=1214\nXPATH_MEMORY_ERROR=1215\nXPTR_SYNTAX_ERROR=1216\nXPTR_RESOURCE_ERROR=1217\nXPTR_SUB_RESOURCE_ERROR=1218\nXPATH_UNDEF_PREFIX_ERROR=1219\nXPATH_ENCODING_ERROR=1220\nXPATH_INVALID_CHAR_ERROR=1221\nTREE_INVALID_HEX=1300\nTREE_INVALID_DEC=1301\nTREE""_UNTERMINATED_ENTITY=1302\n";
-static char __pyx_k_508[] = "TREE_NOT_UTF8=1303\nSAVE_NOT_UTF8=1400\nSAVE_CHAR_INVALID=1401\nSAVE_NO_DOCTYPE=1402\nSAVE_UNKNOWN_ENCODING=1403\nREGEXP_COMPILE_ERROR=1450\nIO_UNKNOWN=1500\nIO_EACCES=1501\nIO_EAGAIN=1502\nIO_EBADF=1503\nIO_EBADMSG=1504\nIO_EBUSY=1505\nIO_ECANCELED=1506\nIO_ECHILD=1507\nIO_EDEADLK=1508\nIO_EDOM=1509\nIO_EEXIST=1510\nIO_EFAULT=1511\nIO_EFBIG=1512\nIO_EINPROGRESS=1513\nIO_EINTR=1514\nIO_EINVAL=1515\nIO_EIO=1516\nIO_EISDIR=1517\nIO_EMFILE=1518\nIO_EMLINK=1519\nIO_EMSGSIZE=1520\nIO_ENAMETOOLONG=1521\nIO_ENFILE=1522\nIO_ENODEV=1523\nIO_ENOENT=1524\nIO_ENOEXEC=1525\nIO_ENOLCK=1526\nIO_ENOMEM=1527\nIO_ENOSPC=1528\nIO_ENOSYS=1529\nIO_ENOTDIR=1530\nIO_ENOTEMPTY=1531\nIO_ENOTSUP=1532\nIO_ENOTTY=1533\nIO_ENXIO=1534\nIO_EPERM=1535\nIO_EPIPE=1536\nIO_ERANGE=1537\nIO_EROFS=1538\nIO_ESPIPE=1539\nIO_ESRCH=1540\nIO_ETIMEDOUT=1541\nIO_EXDEV=1542\nIO_NETWORK_ATTEMPT=1543\nIO_ENCODER=1544\nIO_FLUSH=1545\nIO_WRITE=1546\nIO_NO_INPUT=1547\nIO_BUFFER_FULL=1548\nIO_LOAD_ERROR=1549\nIO_ENOTSOCK=1550\nIO_EISCONN=1551\nIO_ECONNREFUSED=1552\nIO_ENETUNREACH=1553\nIO_EADDRINUSE=1554\nIO_EALREADY=1555\nIO_EAFNOSUPPORT=1556\nXINCLUDE_RECURSION=1600\nXINCLUDE_PARSE_VALUE=1601\nXINCLUDE_ENTITY_DEF_MISMATCH=1602\nXINCLUDE_NO_HREF=1603\nXINCLUDE_NO_FALLBACK=1604\nXINCLUDE_HREF_URI=1605\nXINCLUDE_TEXT_FRAGMENT=1606\nXINCLUDE_TEXT_DOCUMENT=1607\nXINCLUDE_INVALID_CHAR=1608\nXINCLUDE_BUILD_FAILED=1609\nXINCLUDE_UNKNOWN_ENCODING=1610\nXINCLUDE_MULTIPLE_ROOT=1611\nXINCLUDE_XPTR_FAILED=1612\nXINCLUDE_XPTR_RESULT=1613\nXINCLUDE_INCLUDE_IN_INCLUDE=1614\nXINCLUDE_FALLBACKS_IN_INCLUDE=1615\nXINCLUDE_FALLBACK_NOT_IN_INCLUDE=1616\nXINCLUDE_DEPRECATED_NS=1617\nXINCLUDE_FRAGMENT_ID=1618\nCATALOG_MISSING_ATTR=1650\nCATALOG_ENTRY_BROKEN=1651\nCATALOG_PREFER_VALUE=1652\nCATALOG_NOT_CATALOG=1653\nCATALOG_RECURSION=1654\nSCHEMAP_PREFIX_UNDEFINED=1700\nSCHEMAP_ATTRFORMDEFAULT_VALUE=1701\nSCHEMAP_ATTRGRP_NONAME_NOREF=1702\nSCHEMAP_ATTR_NONAME_NOREF=1703\nSCHEMAP_COMPLEXTYPE_NONAME_NOREF=1704\nSCHEMAP_ELEMFORMDEFAULT_VALUE=""1705\nSCHEMAP_ELEM_NONAME_NOREF=1706\n";
-static char __pyx_k_509[] = "SCHEMAP_EXTENSION_NO_BASE=1707\nSCHEMAP_FACET_NO_VALUE=1708\nSCHEMAP_FAILED_BUILD_IMPORT=1709\nSCHEMAP_GROUP_NONAME_NOREF=1710\nSCHEMAP_IMPORT_NAMESPACE_NOT_URI=1711\nSCHEMAP_IMPORT_REDEFINE_NSNAME=1712\nSCHEMAP_IMPORT_SCHEMA_NOT_URI=1713\nSCHEMAP_INVALID_BOOLEAN=1714\nSCHEMAP_INVALID_ENUM=1715\nSCHEMAP_INVALID_FACET=1716\nSCHEMAP_INVALID_FACET_VALUE=1717\nSCHEMAP_INVALID_MAXOCCURS=1718\nSCHEMAP_INVALID_MINOCCURS=1719\nSCHEMAP_INVALID_REF_AND_SUBTYPE=1720\nSCHEMAP_INVALID_WHITE_SPACE=1721\nSCHEMAP_NOATTR_NOREF=1722\nSCHEMAP_NOTATION_NO_NAME=1723\nSCHEMAP_NOTYPE_NOREF=1724\nSCHEMAP_REF_AND_SUBTYPE=1725\nSCHEMAP_RESTRICTION_NONAME_NOREF=1726\nSCHEMAP_SIMPLETYPE_NONAME=1727\nSCHEMAP_TYPE_AND_SUBTYPE=1728\nSCHEMAP_UNKNOWN_ALL_CHILD=1729\nSCHEMAP_UNKNOWN_ANYATTRIBUTE_CHILD=1730\nSCHEMAP_UNKNOWN_ATTR_CHILD=1731\nSCHEMAP_UNKNOWN_ATTRGRP_CHILD=1732\nSCHEMAP_UNKNOWN_ATTRIBUTE_GROUP=1733\nSCHEMAP_UNKNOWN_BASE_TYPE=1734\nSCHEMAP_UNKNOWN_CHOICE_CHILD=1735\nSCHEMAP_UNKNOWN_COMPLEXCONTENT_CHILD=1736\nSCHEMAP_UNKNOWN_COMPLEXTYPE_CHILD=1737\nSCHEMAP_UNKNOWN_ELEM_CHILD=1738\nSCHEMAP_UNKNOWN_EXTENSION_CHILD=1739\nSCHEMAP_UNKNOWN_FACET_CHILD=1740\nSCHEMAP_UNKNOWN_FACET_TYPE=1741\nSCHEMAP_UNKNOWN_GROUP_CHILD=1742\nSCHEMAP_UNKNOWN_IMPORT_CHILD=1743\nSCHEMAP_UNKNOWN_LIST_CHILD=1744\nSCHEMAP_UNKNOWN_NOTATION_CHILD=1745\nSCHEMAP_UNKNOWN_PROCESSCONTENT_CHILD=1746\nSCHEMAP_UNKNOWN_REF=1747\nSCHEMAP_UNKNOWN_RESTRICTION_CHILD=1748\nSCHEMAP_UNKNOWN_SCHEMAS_CHILD=1749\nSCHEMAP_UNKNOWN_SEQUENCE_CHILD=1750\nSCHEMAP_UNKNOWN_SIMPLECONTENT_CHILD=1751\nSCHEMAP_UNKNOWN_SIMPLETYPE_CHILD=1752\nSCHEMAP_UNKNOWN_TYPE=1753\nSCHEMAP_UNKNOWN_UNION_CHILD=1754\nSCHEMAP_ELEM_DEFAULT_FIXED=1755\nSCHEMAP_REGEXP_INVALID=1756\nSCHEMAP_FAILED_LOAD=1757\nSCHEMAP_NOTHING_TO_PARSE=1758\nSCHEMAP_NOROOT=1759\nSCHEMAP_REDEFINED_GROUP=1760\nSCHEMAP_REDEFINED_TYPE=1761\nSCHEMAP_REDEFINED_ELEMENT=1762\nSCHEMAP_REDEFINED_ATTRGROUP=1763\nSCHEMAP_REDEFINED_ATTR=1764\nSCHEMAP_REDEFINED_NOTATION=1765\nSCHEMAP_FAILED_PARSE=1766\nSCH""EMAP_UNKNOWN_PREFIX=1767\n";
-static char __pyx_k_510[] = "SCHEMAP_DEF_AND_PREFIX=1768\nSCHEMAP_UNKNOWN_INCLUDE_CHILD=1769\nSCHEMAP_INCLUDE_SCHEMA_NOT_URI=1770\nSCHEMAP_INCLUDE_SCHEMA_NO_URI=1771\nSCHEMAP_NOT_SCHEMA=1772\nSCHEMAP_UNKNOWN_MEMBER_TYPE=1773\nSCHEMAP_INVALID_ATTR_USE=1774\nSCHEMAP_RECURSIVE=1775\nSCHEMAP_SUPERNUMEROUS_LIST_ITEM_TYPE=1776\nSCHEMAP_INVALID_ATTR_COMBINATION=1777\nSCHEMAP_INVALID_ATTR_INLINE_COMBINATION=1778\nSCHEMAP_MISSING_SIMPLETYPE_CHILD=1779\nSCHEMAP_INVALID_ATTR_NAME=1780\nSCHEMAP_REF_AND_CONTENT=1781\nSCHEMAP_CT_PROPS_CORRECT_1=1782\nSCHEMAP_CT_PROPS_CORRECT_2=1783\nSCHEMAP_CT_PROPS_CORRECT_3=1784\nSCHEMAP_CT_PROPS_CORRECT_4=1785\nSCHEMAP_CT_PROPS_CORRECT_5=1786\nSCHEMAP_DERIVATION_OK_RESTRICTION_1=1787\nSCHEMAP_DERIVATION_OK_RESTRICTION_2_1_1=1788\nSCHEMAP_DERIVATION_OK_RESTRICTION_2_1_2=1789\nSCHEMAP_DERIVATION_OK_RESTRICTION_2_2=1790\nSCHEMAP_DERIVATION_OK_RESTRICTION_3=1791\nSCHEMAP_WILDCARD_INVALID_NS_MEMBER=1792\nSCHEMAP_INTERSECTION_NOT_EXPRESSIBLE=1793\nSCHEMAP_UNION_NOT_EXPRESSIBLE=1794\nSCHEMAP_SRC_IMPORT_3_1=1795\nSCHEMAP_SRC_IMPORT_3_2=1796\nSCHEMAP_DERIVATION_OK_RESTRICTION_4_1=1797\nSCHEMAP_DERIVATION_OK_RESTRICTION_4_2=1798\nSCHEMAP_DERIVATION_OK_RESTRICTION_4_3=1799\nSCHEMAP_COS_CT_EXTENDS_1_3=1800\nSCHEMAV_NOROOT=1801\nSCHEMAV_UNDECLAREDELEM=1802\nSCHEMAV_NOTTOPLEVEL=1803\nSCHEMAV_MISSING=1804\nSCHEMAV_WRONGELEM=1805\nSCHEMAV_NOTYPE=1806\nSCHEMAV_NOROLLBACK=1807\nSCHEMAV_ISABSTRACT=1808\nSCHEMAV_NOTEMPTY=1809\nSCHEMAV_ELEMCONT=1810\nSCHEMAV_HAVEDEFAULT=1811\nSCHEMAV_NOTNILLABLE=1812\nSCHEMAV_EXTRACONTENT=1813\nSCHEMAV_INVALIDATTR=1814\nSCHEMAV_INVALIDELEM=1815\nSCHEMAV_NOTDETERMINIST=1816\nSCHEMAV_CONSTRUCT=1817\nSCHEMAV_INTERNAL=1818\nSCHEMAV_NOTSIMPLE=1819\nSCHEMAV_ATTRUNKNOWN=1820\nSCHEMAV_ATTRINVALID=1821\nSCHEMAV_VALUE=1822\nSCHEMAV_FACET=1823\nSCHEMAV_CVC_DATATYPE_VALID_1_2_1=1824\nSCHEMAV_CVC_DATATYPE_VALID_1_2_2=1825\nSCHEMAV_CVC_DATATYPE_VALID_1_2_3=1826\nSCHEMAV_CVC_TYPE_3_1_1=1827\nSCHEMAV_CVC_TYPE_3_1_2=1828\nSCHEMAV_CVC_FACET_VALID=1829\nSCHEMAV_CVC_LENGTH_VALID""=1830\n";
-static char __pyx_k_511[] = "SCHEMAV_CVC_MINLENGTH_VALID=1831\nSCHEMAV_CVC_MAXLENGTH_VALID=1832\nSCHEMAV_CVC_MININCLUSIVE_VALID=1833\nSCHEMAV_CVC_MAXINCLUSIVE_VALID=1834\nSCHEMAV_CVC_MINEXCLUSIVE_VALID=1835\nSCHEMAV_CVC_MAXEXCLUSIVE_VALID=1836\nSCHEMAV_CVC_TOTALDIGITS_VALID=1837\nSCHEMAV_CVC_FRACTIONDIGITS_VALID=1838\nSCHEMAV_CVC_PATTERN_VALID=1839\nSCHEMAV_CVC_ENUMERATION_VALID=1840\nSCHEMAV_CVC_COMPLEX_TYPE_2_1=1841\nSCHEMAV_CVC_COMPLEX_TYPE_2_2=1842\nSCHEMAV_CVC_COMPLEX_TYPE_2_3=1843\nSCHEMAV_CVC_COMPLEX_TYPE_2_4=1844\nSCHEMAV_CVC_ELT_1=1845\nSCHEMAV_CVC_ELT_2=1846\nSCHEMAV_CVC_ELT_3_1=1847\nSCHEMAV_CVC_ELT_3_2_1=1848\nSCHEMAV_CVC_ELT_3_2_2=1849\nSCHEMAV_CVC_ELT_4_1=1850\nSCHEMAV_CVC_ELT_4_2=1851\nSCHEMAV_CVC_ELT_4_3=1852\nSCHEMAV_CVC_ELT_5_1_1=1853\nSCHEMAV_CVC_ELT_5_1_2=1854\nSCHEMAV_CVC_ELT_5_2_1=1855\nSCHEMAV_CVC_ELT_5_2_2_1=1856\nSCHEMAV_CVC_ELT_5_2_2_2_1=1857\nSCHEMAV_CVC_ELT_5_2_2_2_2=1858\nSCHEMAV_CVC_ELT_6=1859\nSCHEMAV_CVC_ELT_7=1860\nSCHEMAV_CVC_ATTRIBUTE_1=1861\nSCHEMAV_CVC_ATTRIBUTE_2=1862\nSCHEMAV_CVC_ATTRIBUTE_3=1863\nSCHEMAV_CVC_ATTRIBUTE_4=1864\nSCHEMAV_CVC_COMPLEX_TYPE_3_1=1865\nSCHEMAV_CVC_COMPLEX_TYPE_3_2_1=1866\nSCHEMAV_CVC_COMPLEX_TYPE_3_2_2=1867\nSCHEMAV_CVC_COMPLEX_TYPE_4=1868\nSCHEMAV_CVC_COMPLEX_TYPE_5_1=1869\nSCHEMAV_CVC_COMPLEX_TYPE_5_2=1870\nSCHEMAV_ELEMENT_CONTENT=1871\nSCHEMAV_DOCUMENT_ELEMENT_MISSING=1872\nSCHEMAV_CVC_COMPLEX_TYPE_1=1873\nSCHEMAV_CVC_AU=1874\nSCHEMAV_CVC_TYPE_1=1875\nSCHEMAV_CVC_TYPE_2=1876\nSCHEMAV_CVC_IDC=1877\nSCHEMAV_CVC_WILDCARD=1878\nSCHEMAV_MISC=1879\nXPTR_UNKNOWN_SCHEME=1900\nXPTR_CHILDSEQ_START=1901\nXPTR_EVAL_FAILED=1902\nXPTR_EXTRA_OBJECTS=1903\nC14N_CREATE_CTXT=1950\nC14N_REQUIRES_UTF8=1951\nC14N_CREATE_STACK=1952\nC14N_INVALID_NODE=1953\nC14N_UNKNOW_NODE=1954\nC14N_RELATIVE_NAMESPACE=1955\nFTP_PASV_ANSWER=2000\nFTP_EPSV_ANSWER=2001\nFTP_ACCNT=2002\nFTP_URL_SYNTAX=2003\nHTTP_URL_SYNTAX=2020\nHTTP_USE_IP=2021\nHTTP_UNKNOWN_HOST=2022\nSCHEMAP_SRC_SIMPLE_TYPE_1=3000\nSCHEMAP_SRC_SIMPLE_TYPE_2=3001\nSCHEMAP_SRC_SIMPLE_TYPE_3=3002\nSCHE""MAP_SRC_SIMPLE_TYPE_4=3003\n";
-static char __pyx_k_512[] = "SCHEMAP_SRC_RESOLVE=3004\nSCHEMAP_SRC_RESTRICTION_BASE_OR_SIMPLETYPE=3005\nSCHEMAP_SRC_LIST_ITEMTYPE_OR_SIMPLETYPE=3006\nSCHEMAP_SRC_UNION_MEMBERTYPES_OR_SIMPLETYPES=3007\nSCHEMAP_ST_PROPS_CORRECT_1=3008\nSCHEMAP_ST_PROPS_CORRECT_2=3009\nSCHEMAP_ST_PROPS_CORRECT_3=3010\nSCHEMAP_COS_ST_RESTRICTS_1_1=3011\nSCHEMAP_COS_ST_RESTRICTS_1_2=3012\nSCHEMAP_COS_ST_RESTRICTS_1_3_1=3013\nSCHEMAP_COS_ST_RESTRICTS_1_3_2=3014\nSCHEMAP_COS_ST_RESTRICTS_2_1=3015\nSCHEMAP_COS_ST_RESTRICTS_2_3_1_1=3016\nSCHEMAP_COS_ST_RESTRICTS_2_3_1_2=3017\nSCHEMAP_COS_ST_RESTRICTS_2_3_2_1=3018\nSCHEMAP_COS_ST_RESTRICTS_2_3_2_2=3019\nSCHEMAP_COS_ST_RESTRICTS_2_3_2_3=3020\nSCHEMAP_COS_ST_RESTRICTS_2_3_2_4=3021\nSCHEMAP_COS_ST_RESTRICTS_2_3_2_5=3022\nSCHEMAP_COS_ST_RESTRICTS_3_1=3023\nSCHEMAP_COS_ST_RESTRICTS_3_3_1=3024\nSCHEMAP_COS_ST_RESTRICTS_3_3_1_2=3025\nSCHEMAP_COS_ST_RESTRICTS_3_3_2_2=3026\nSCHEMAP_COS_ST_RESTRICTS_3_3_2_1=3027\nSCHEMAP_COS_ST_RESTRICTS_3_3_2_3=3028\nSCHEMAP_COS_ST_RESTRICTS_3_3_2_4=3029\nSCHEMAP_COS_ST_RESTRICTS_3_3_2_5=3030\nSCHEMAP_COS_ST_DERIVED_OK_2_1=3031\nSCHEMAP_COS_ST_DERIVED_OK_2_2=3032\nSCHEMAP_S4S_ELEM_NOT_ALLOWED=3033\nSCHEMAP_S4S_ELEM_MISSING=3034\nSCHEMAP_S4S_ATTR_NOT_ALLOWED=3035\nSCHEMAP_S4S_ATTR_MISSING=3036\nSCHEMAP_S4S_ATTR_INVALID_VALUE=3037\nSCHEMAP_SRC_ELEMENT_1=3038\nSCHEMAP_SRC_ELEMENT_2_1=3039\nSCHEMAP_SRC_ELEMENT_2_2=3040\nSCHEMAP_SRC_ELEMENT_3=3041\nSCHEMAP_P_PROPS_CORRECT_1=3042\nSCHEMAP_P_PROPS_CORRECT_2_1=3043\nSCHEMAP_P_PROPS_CORRECT_2_2=3044\nSCHEMAP_E_PROPS_CORRECT_2=3045\nSCHEMAP_E_PROPS_CORRECT_3=3046\nSCHEMAP_E_PROPS_CORRECT_4=3047\nSCHEMAP_E_PROPS_CORRECT_5=3048\nSCHEMAP_E_PROPS_CORRECT_6=3049\nSCHEMAP_SRC_INCLUDE=3050\nSCHEMAP_SRC_ATTRIBUTE_1=3051\nSCHEMAP_SRC_ATTRIBUTE_2=3052\nSCHEMAP_SRC_ATTRIBUTE_3_1=3053\nSCHEMAP_SRC_ATTRIBUTE_3_2=3054\nSCHEMAP_SRC_ATTRIBUTE_4=3055\nSCHEMAP_NO_XMLNS=3056\nSCHEMAP_NO_XSI=3057\nSCHEMAP_COS_VALID_DEFAULT_1=3058\nSCHEMAP_COS_VALID_DEFAULT_2_1=3059\nSCHEMAP_COS_VALID_DEFAULT_2_2_1=3060\nSCHEMAP_COS_VALID_DEFA""ULT_2_2_2=3061\n";
-static char __pyx_k_513[] = "SCHEMAP_CVC_SIMPLE_TYPE=3062\nSCHEMAP_COS_CT_EXTENDS_1_1=3063\nSCHEMAP_SRC_IMPORT_1_1=3064\nSCHEMAP_SRC_IMPORT_1_2=3065\nSCHEMAP_SRC_IMPORT_2=3066\nSCHEMAP_SRC_IMPORT_2_1=3067\nSCHEMAP_SRC_IMPORT_2_2=3068\nSCHEMAP_INTERNAL=3069\nSCHEMAP_NOT_DETERMINISTIC=3070\nSCHEMAP_SRC_ATTRIBUTE_GROUP_1=3071\nSCHEMAP_SRC_ATTRIBUTE_GROUP_2=3072\nSCHEMAP_SRC_ATTRIBUTE_GROUP_3=3073\nSCHEMAP_MG_PROPS_CORRECT_1=3074\nSCHEMAP_MG_PROPS_CORRECT_2=3075\nSCHEMAP_SRC_CT_1=3076\nSCHEMAP_DERIVATION_OK_RESTRICTION_2_1_3=3077\nSCHEMAP_AU_PROPS_CORRECT_2=3078\nSCHEMAP_A_PROPS_CORRECT_2=3079\nSCHEMAP_C_PROPS_CORRECT=3080\nSCHEMAP_SRC_REDEFINE=3081\nSCHEMAP_SRC_IMPORT=3082\nSCHEMAP_WARN_SKIP_SCHEMA=3083\nSCHEMAP_WARN_UNLOCATED_SCHEMA=3084\nSCHEMAP_WARN_ATTR_REDECL_PROH=3085\nSCHEMAP_WARN_ATTR_POINTLESS_PROH=3086\nSCHEMAP_AG_PROPS_CORRECT=3087\nSCHEMAP_COS_CT_EXTENDS_1_2=3088\nSCHEMAP_AU_PROPS_CORRECT=3089\nSCHEMAP_A_PROPS_CORRECT_3=3090\nSCHEMAP_COS_ALL_LIMITED=3091\nSCHEMATRONV_ASSERT=4000\nSCHEMATRONV_REPORT=4001\nMODULE_OPEN=4900\nMODULE_CLOSE=4901\nCHECK_FOUND_ELEMENT=5000\nCHECK_FOUND_ATTRIBUTE=5001\nCHECK_FOUND_TEXT=5002\nCHECK_FOUND_CDATA=5003\nCHECK_FOUND_ENTITYREF=5004\nCHECK_FOUND_ENTITY=5005\nCHECK_FOUND_PI=5006\nCHECK_FOUND_COMMENT=5007\nCHECK_FOUND_DOCTYPE=5008\nCHECK_FOUND_FRAGMENT=5009\nCHECK_FOUND_NOTATION=5010\nCHECK_UNKNOWN_NODE=5011\nCHECK_ENTITY_TYPE=5012\nCHECK_NO_PARENT=5013\nCHECK_NO_DOC=5014\nCHECK_NO_NAME=5015\nCHECK_NO_ELEM=5016\nCHECK_WRONG_DOC=5017\nCHECK_NO_PREV=5018\nCHECK_WRONG_PREV=5019\nCHECK_NO_NEXT=5020\nCHECK_WRONG_NEXT=5021\nCHECK_NOT_DTD=5022\nCHECK_NOT_ATTR=5023\nCHECK_NOT_ATTR_DECL=5024\nCHECK_NOT_ELEM_DECL=5025\nCHECK_NOT_ENTITY_DECL=5026\nCHECK_NOT_NS_DECL=5027\nCHECK_NO_HREF=5028\nCHECK_WRONG_PARENT=5029\nCHECK_NS_SCOPE=5030\nCHECK_NS_ANCESTOR=5031\nCHECK_NOT_UTF8=5032\nCHECK_NO_DICT=5033\nCHECK_NOT_NCNAME=5034\nCHECK_OUTSIDE_DICT=5035\nCHECK_WRONG_NAME=5036\nCHECK_NAME_NOT_NULL=5037\nI18N_NO_NAME=6000\nI18N_NO_HANDLER=6001\nI18N_EXCESS_HANDLER=6002\nI18N""_CONV_FAILED=6003\n";
-static char __pyx_k_514[] = "I18N_NO_OUTPUT=6004\nCHECK_=6005\nCHECK_X=6006\n";
-static char __pyx_k_516[] = "RELAXNG_OK=0\nRELAXNG_ERR_MEMORY=1\nRELAXNG_ERR_TYPE=2\nRELAXNG_ERR_TYPEVAL=3\nRELAXNG_ERR_DUPID=4\nRELAXNG_ERR_TYPECMP=5\nRELAXNG_ERR_NOSTATE=6\nRELAXNG_ERR_NODEFINE=7\nRELAXNG_ERR_LISTEXTRA=8\nRELAXNG_ERR_LISTEMPTY=9\nRELAXNG_ERR_INTERNODATA=10\nRELAXNG_ERR_INTERSEQ=11\nRELAXNG_ERR_INTEREXTRA=12\nRELAXNG_ERR_ELEMNAME=13\nRELAXNG_ERR_ATTRNAME=14\nRELAXNG_ERR_ELEMNONS=15\nRELAXNG_ERR_ATTRNONS=16\nRELAXNG_ERR_ELEMWRONGNS=17\nRELAXNG_ERR_ATTRWRONGNS=18\nRELAXNG_ERR_ELEMEXTRANS=19\nRELAXNG_ERR_ATTREXTRANS=20\nRELAXNG_ERR_ELEMNOTEMPTY=21\nRELAXNG_ERR_NOELEM=22\nRELAXNG_ERR_NOTELEM=23\nRELAXNG_ERR_ATTRVALID=24\nRELAXNG_ERR_CONTENTVALID=25\nRELAXNG_ERR_EXTRACONTENT=26\nRELAXNG_ERR_INVALIDATTR=27\nRELAXNG_ERR_DATAELEM=28\nRELAXNG_ERR_VALELEM=29\nRELAXNG_ERR_LISTELEM=30\nRELAXNG_ERR_DATATYPE=31\nRELAXNG_ERR_VALUE=32\nRELAXNG_ERR_LIST=33\nRELAXNG_ERR_NOGRAMMAR=34\nRELAXNG_ERR_EXTRADATA=35\nRELAXNG_ERR_LACKDATA=36\nRELAXNG_ERR_INTERNAL=37\nRELAXNG_ERR_ELEMWRONG=38\nRELAXNG_ERR_TEXTWRONG=39\n";
-static char __pyx_k_518[] = "\\s+(\\w+)\\s*=\\s*(?:\\'([^\\']*)\\'|\"([^\"]*)\")";
-static char __pyx_k_553[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi";
-static char __pyx_k_554[] = "Base class of lxml registry errors.\n ";
-static char __pyx_k_555[] = "Error registering a namespace extension.\n ";
-static char __pyx_k_558[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/nsclasses.pxi";
-static char __pyx_k_561[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi";
-static char __pyx_k_562[] = "ParseError.__init__";
-static char __pyx_k_563[] = "Syntax error while parsing an XML document.\n\n For compatibility with ElementTree 1.3 and later.\n ";
-static char __pyx_k_564[] = "Syntax error while parsing an XML document.\n ";
-static char __pyx_k_565[] = "Internal lxml parser error.\n ";
-static char __pyx_k_571[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parsertarget.pxi";
-static char __pyx_k_572[] = "_TargetParserResult.__init__";
-static char __pyx_k_573[] = "A libxml2 error that occurred during serialisation.\n ";
-static char __pyx_k_576[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlid.pxi";
-static char __pyx_k_581[] = "Error during XInclude processing.\n ";
-static char __pyx_k_584[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/cleanup.pxi";
-static char __pyx_k_591[] = "Base class of all XPath errors.\n ";
-static char __pyx_k_592[] = "Error during XPath evaluation.\n ";
-static char __pyx_k_593[] = "Internal error looking up an XPath extension function.\n ";
-static char __pyx_k_594[] = "Error handling an XPath result.\n ";
-static char __pyx_k_595[] = "Number encoding";
-static char __pyx_k_596[] = "Unfinished literal";
-static char __pyx_k_597[] = "Start of literal";
-static char __pyx_k_598[] = "Expected $ for variable reference";
-static char __pyx_k_599[] = "Undefined variable";
-static char __pyx_k_600[] = "Invalid predicate";
-static char __pyx_k_601[] = "Invalid expression";
-static char __pyx_k_602[] = "Missing closing curly brace";
-static char __pyx_k_603[] = "Unregistered function";
-static char __pyx_k_604[] = "Invalid operand";
-static char __pyx_k_605[] = "Invalid type";
-static char __pyx_k_606[] = "Invalid number of arguments";
-static char __pyx_k_607[] = "Invalid context size";
-static char __pyx_k_608[] = "Invalid context position";
-static char __pyx_k_609[] = "Memory allocation error";
-static char __pyx_k_610[] = "Syntax error";
-static char __pyx_k_611[] = "Resource error";
-static char __pyx_k_612[] = "Sub resource error";
-static char __pyx_k_613[] = "Undefined namespace prefix";
-static char __pyx_k_614[] = "Encoding error";
-static char __pyx_k_615[] = "Char out of XML range";
-static char __pyx_k_616[] = "Invalid or incomplete context";
-static char __pyx_k_617[] = "Stack usage error";
-static char __pyx_k_620[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi";
-static char __pyx_k_623[] = "_ElementStringResult.getparent";
-static char __pyx_k_626[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi";
-static char __pyx_k_627[] = "(\"[^\"]*\")|('[^']*')";
-static char __pyx_k_629[] = "({[^}]+})";
-static char __pyx_k_631[] = "Base class of all XSLT errors.\n ";
-static char __pyx_k_632[] = "Error parsing a stylesheet document.\n ";
-static char __pyx_k_633[] = "Error running an XSL transformation.\n ";
-static char __pyx_k_634[] = "Error serialising an XSLT result.\n ";
-static char __pyx_k_635[] = "Error registering an XSLT extension.\n ";
-static char __pyx_k_638[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi";
-static char __pyx_k_641[] = "set_global_max_depth";
-static char __pyx_k_642[] = "\\s+href\\s*=\\s*(?:\\'([^\\']*)\\'|\"([^\"]*)\")";
-static char __pyx_k_644[] = "Validation error.\n\n Raised by all document validators when their ``assertValid(tree)``\n method fails.\n ";
-static char __pyx_k_645[] = "Base class for DTD errors.\n ";
-static char __pyx_k_646[] = "Error while parsing a DTD.\n ";
-static char __pyx_k_647[] = "Error while validating an XML document with a DTD.\n ";
-static char __pyx_k_648[] = "Base class for RelaxNG errors.\n ";
-static char __pyx_k_649[] = "Error while parsing an XML document as RelaxNG.\n ";
-static char __pyx_k_650[] = "Error while validating an XML document with a RelaxNG schema.\n ";
-static char __pyx_k_651[] = "Base class of all XML Schema errors\n ";
-static char __pyx_k_652[] = "Error while parsing an XML document as XML Schema.\n ";
-static char __pyx_k_653[] = "Error while validating an XML document with an XML Schema.\n ";
-static char __pyx_k_654[] = "boolean(//xs:attribute[@default or @fixed][1])";
-static char __pyx_k_656[] = "Base class of all Schematron errors.\n ";
-static char __pyx_k_657[] = "Error while parsing an XML document as Schematron schema.\n ";
-static char __pyx_k_658[] = "Error while validating an XML document with a Schematron schema.\n ";
-static char __pyx_k_659[] = "XML (line 2950)";
-static char __pyx_k_660[] = "XML(text, parser=None, base_url=None)\n\n Parses an XML document or fragment from a string constant.\n Returns the root node (or the result returned by a parser target).\n This function can be used to embed \"XML literals\" in Python code,\n like in\n\n >>> root = etree.XML(\"<root><test/></root>\")\n\n To override the parser with a different ``XMLParser`` you can pass it to\n the ``parser`` keyword argument.\n\n The ``base_url`` keyword argument allows to set the original base URL of\n the document to support relative Paths when looking up external entities\n (DTD, XInclude, ...).\n ";
+static char __pyx_k_100[] = "Cannot enable XML declaration in C14N";
+static char __pyx_k_102[] = "Can only discard comments in C14N serialisation";
+static char __pyx_k_104[] = "US-ASCII";
+static char __pyx_k_105[] = "UTF-8";
+static char __pyx_k_106[] = "Element is not in this tree.";
+static char __pyx_k_108[] = "/";
+static char __pyx_k_115[] = "pop expected at most 2 arguments, got %d";
+static char __pyx_k_116[] = "*";
+static char __pyx_k_117[] = "{*}*";
+static char __pyx_k_124[] = "Invalid character reference: '%s'";
+static char __pyx_k_125[] = "Invalid entity reference: '%s'";
+static char __pyx_k_130[] = "Serialisation to unicode must not request an XML declaration";
+static char __pyx_k_131[] = "Type '%s' cannot be serialized.";
+static char __pyx_k_132[] = "Proxy invalidated!";
+static char __pyx_k_133[] = "Unsupported node type: %d";
+static char __pyx_k_136[] = "Unsupported element type: %d";
+static char __pyx_k_137[] = "This type cannot be instatiated from Python";
+static char __pyx_k_138[] = "cannot append, document already has a root element";
+static char __pyx_k_139[] = "unsupported element type for top-level node: %d";
+static char __pyx_k_140[] = "invalid argument type %s";
+static char __pyx_k_141[] = "invalid element";
+static char __pyx_k_143[] = "Invalid child type: %r";
+static char __pyx_k_144[] = "element class must be subclass of ElementBase";
+static char __pyx_k_145[] = "comment class must be subclass of CommentBase";
+static char __pyx_k_146[] = "Entity class must be subclass of EntityBase";
+static char __pyx_k_147[] = "PI class must be subclass of PIBase";
+static char __pyx_k_148[] = "xml-stylesheet";
+static char __pyx_k_149[] = "text/xsl";
+static char __pyx_k_150[] = "text/xml";
+static char __pyx_k_151[] = "Unknown node type: %s";
+static char __pyx_k_153[] = "Name not registered.";
+static char __pyx_k_154[] = "NamespaceRegistryError";
+static char __pyx_k_155[] = "Registered element classes must be subtypes of ElementBase";
+static char __pyx_k_156[] = "Namespace(%r)";
+static char __pyx_k_157[] = "Registered functions must be callable.";
+static char __pyx_k_158[] = "extensions must have non empty names";
+static char __pyx_k_159[] = "FunctionNamespace(%r)";
+static char __pyx_k_160[] = "argument must be a byte string or unicode string";
+static char __pyx_k_161[] = "Argument is not a file-like object";
+static char __pyx_k_162[] = "_ParserDictionaryContext";
+static char __pyx_k_163[] = "<test/>";
+static char __pyx_k_164[] = "UTF-16LE";
+static char __pyx_k_165[] = "UTF-16BE";
+static char __pyx_k_166[] = "UCS-4LE";
+static char __pyx_k_167[] = "UCS-4BE";
+static char __pyx_k_168[] = "reading from file-like objects must return byte strings or unicode strings";
+static char __pyx_k_169[] = "parser locking failed";
+static char __pyx_k_170[] = "Error reading file '%s': %s";
+static char __pyx_k_171[] = "Error reading '%s'";
+static char __pyx_k_172[] = "Document is not well formed";
+static char __pyx_k_173[] = "line %d: %s";
+static char __pyx_k_174[] = "WAR_UNDECLARED_ENTITY";
+static char __pyx_k_175[] = "ERR_UNDECLARED_ENTITY";
+static char __pyx_k_176[] = "This class cannot be instantiated";
+static char __pyx_k_177[] = "unknown encoding: '%s'";
+static char __pyx_k_178[] = "libxml2 %d.%d.%d";
+static char __pyx_k_179[] = "set_element_class_lookup";
+static char __pyx_k_180[] = "string is too long to parse it with libxml2";
+static char __pyx_k_181[] = "Unicode parsing is not supported on this platform";
+static char __pyx_k_182[] = "Parsing requires string data";
+static char __pyx_k_183[] = "no element found";
+static char __pyx_k_217[] = "cannot parse from '%s'";
+static char __pyx_k_218[] = "Unicode strings with encoding declaration are not supported. Please use bytes input or XML fragments without declaration.";
+static char __pyx_k_220[] = "can only parse strings";
+static char __pyx_k_221[] = "internal error (tail)";
+static char __pyx_k_222[] = "internal error (text)";
+static char __pyx_k_223[] = "missing end tags";
+static char __pyx_k_224[] = "missing toplevel element";
+static char __pyx_k_225[] = "end tag mismatch (expected %s, got %s)";
+static char __pyx_k_226[] = "unknown output method %r";
+static char __pyx_k_227[] = "Error during serialisation (out of memory?)";
+static char __pyx_k_228[] = "utf-8";
+static char __pyx_k_230[] = "C14N failed";
+static char __pyx_k_231[] = "unknown error %d";
+static char __pyx_k_232[] = "1.0";
+static char __pyx_k_233[] = "<?xml version='";
+static char __pyx_k_234[] = "' encoding='";
+static char __pyx_k_235[] = "' standalone='no'?>\n";
+static char __pyx_k_236[] = "' standalone='yes'?>\n";
+static char __pyx_k_237[] = "'?>\n";
+static char __pyx_k_238[] = "<!DOCTYPE ";
+static char __pyx_k_239[] = " PUBLIC \"";
+static char __pyx_k_240[] = "\" \"";
+static char __pyx_k_241[] = " SYSTEM \"";
+static char __pyx_k_242[] = "\"";
+static char __pyx_k_243[] = ">\n";
+static char __pyx_k_244[] = " [\n";
+static char __pyx_k_245[] = "]>\n";
+static char __pyx_k_246[] = "Could not create I/O writer context.";
+static char __pyx_k_247[] = "File is already closed";
+static char __pyx_k_248[] = "File or filename expected, got '%s'";
+static char __pyx_k_250[] = "XML declaration already written";
+static char __pyx_k_252[] = "DOCTYPE already written or cannot write it here";
+static char __pyx_k_254[] = ":";
+static char __pyx_k_255[] = "cannot append trailing element to complete XML document";
+static char __pyx_k_257[] = "<";
+static char __pyx_k_258[] = ">";
+static char __pyx_k_259[] = "=\"";
+static char __pyx_k_260[] = "not in an element";
+static char __pyx_k_264[] = "inconsistent exit action in context manager";
+static char __pyx_k_267[] = "</";
+static char __pyx_k_270[] = "got invalid input value of type %s, expected string or Element";
+static char __pyx_k_271[] = "no content written";
+static char __pyx_k_273[] = "pending open tags on close";
+static char __pyx_k_275[] = "start-ns";
+static char __pyx_k_276[] = "end-ns";
+static char __pyx_k_277[] = "invalid event name '%s'";
+static char __pyx_k_292[] = "iterparse parsers cannot be copied";
+static char __pyx_k_294[] = "reading file objects must return bytes objects";
+static char __pyx_k_300[] = "//*[string(@id)]";
+static char __pyx_k_303[] = "No ID dictionary available.";
+static char __pyx_k_304[] = "key not found.";
+static char __pyx_k_305[] = "ID attribute not found.";
+static char __pyx_k_308[] = "XInclude instance not initialised";
+static char __pyx_k_309[] = "XPath evaluator not initialised";
+static char __pyx_k_310[] = "XInclude processing failed";
+static char __pyx_k_311[] = "empty namespace prefix is not supported in XPath";
+static char __pyx_k_312[] = "setting default namespace is not supported in XPath";
+static char __pyx_k_313[] = "empty prefix is not supported in XPath";
+static char __pyx_k_314[] = "XPath context is only usable during the evaluation";
+static char __pyx_k_315[] = "no context node";
+static char __pyx_k_316[] = "document-external context nodes are not supported";
+static char __pyx_k_317[] = "document context is missing";
+static char __pyx_k_321[] = "http://exslt.org/regular-expressions";
+static char __pyx_k_322[] = "Non-Element values not supported at this point - got %r";
+static char __pyx_k_323[] = "text-root";
+static char __pyx_k_324[] = "This is not a supported node-set result: %r";
+static char __pyx_k_325[] = "Unknown return type: %s";
+static char __pyx_k_326[] = "Undefined xpath result";
+static char __pyx_k_327[] = "Unknown xpath result %s";
+static char __pyx_k_328[] = "Not yet implemented result node type: %d";
+static char __pyx_k_329[] = "_ElementStringResult";
+static char __pyx_k_330[] = "XPath function '%s' not found";
+static char __pyx_k_331[] = "This version of libxml2 has a known XPath bug. Use it at your own risk.";
+static char __pyx_k_333[] = "XPath evaluator locking failed";
+static char __pyx_k_334[] = "Error in xpath expression";
+static char __pyx_k_337[] = "XPath context not initialised";
+static char __pyx_k_346[] = "__xpp%02d";
+static char __pyx_k_349[] = "string://__STRING__XSLT__/";
+static char __pyx_k_350[] = "Cannot resolve URI %s";
+static char __pyx_k_351[] = "%s(%s)";
+static char __pyx_k_352[] = ", ";
+static char __pyx_k_353[] = "%s=%r";
+static char __pyx_k_354[] = "extensions must not have empty namespaces";
+static char __pyx_k_356[] = "string://__STRING__XSLT__/%d.xslt";
+static char __pyx_k_358[] = "Cannot parse stylesheet";
+static char __pyx_k_359[] = "cannot set a maximum stylesheet traversal depth < 0";
+static char __pyx_k_363[] = "XSLT stylesheet not initialised";
+static char __pyx_k_364[] = "Error applying stylesheet, line %d";
+static char __pyx_k_365[] = "Error applying stylesheet";
+static char __pyx_k_366[] = "//xsl:stylesheet[@xml:id = $id]";
+static char __pyx_k_368[] = "http://www.w3.org/1999/XSL/Transform";
+static char __pyx_k_369[] = "PI lacks content";
+static char __pyx_k_370[] = "malformed PI attributes";
+static char __pyx_k_371[] = "reference to non-existing embedded stylesheet";
+static char __pyx_k_372[] = "ambiguous reference to embedded stylesheet";
+static char __pyx_k_373[] = "only setting the 'href' attribute is supported on XSLT-PIs";
+static char __pyx_k_374[] = "Invalid URL, must not contain '\"' or '>'";
+static char __pyx_k_375[] = " href=\"%s\"";
+static char __pyx_k_376[] = "XSLT context not initialised";
+static char __pyx_k_377[] = "fake-parent";
+static char __pyx_k_378[] = "unsupported XSLT result type: %d";
+static char __pyx_k_379[] = "extension element %s not found";
+static char __pyx_k_381[] = "Error executing extension element '%s': %s";
+static char __pyx_k_382[] = "Error executing extension element '%s'";
+static char __pyx_k_383[] = "Error during XSLT extension element evaluation";
+static char __pyx_k_384[] = "Document does not comply with schema";
+static char __pyx_k_385[] = "invalid DTD proxy at %s";
+static char __pyx_k_386[] = "<%s.%s object name=%r type=%r occur=%r at 0x%x>";
+static char __pyx_k_387[] = "<%s.%s object name=%r elemname=%r prefix=%r type=%r default=%r default_value=%r at 0x%x>";
+static char __pyx_k_388[] = "<%s.%s object name=%r prefix=%r type=%r at 0x%x>";
+static char __pyx_k_389[] = "<%s.%s object name=%r at 0x%x>";
+static char __pyx_k_391[] = "file must be a filename or file-like object";
+static char __pyx_k_393[] = "either filename or external ID required";
+static char __pyx_k_394[] = "error parsing DTD";
+static char __pyx_k_395[] = "DTD not initialised";
+static char __pyx_k_396[] = "Failed to create validation context";
+static char __pyx_k_399[] = "Internal error in DTD validation";
+static char __pyx_k_401[] = "http://relaxng.org/ns/structure/1.0";
+static char __pyx_k_402[] = "Document is not Relax NG";
+static char __pyx_k_404[] = "No tree or file given";
+static char __pyx_k_405[] = "Document is not parsable as Relax NG";
+static char __pyx_k_406[] = "Document is not valid Relax NG";
+static char __pyx_k_407[] = "RelaxNG instance not initialised";
+static char __pyx_k_408[] = "RelaxNGValidateError";
+static char __pyx_k_409[] = "Internal error in Relax NG validation";
+static char __pyx_k_411[] = "http://www.w3.org/2001/XMLSchema";
+static char __pyx_k_412[] = "Document is not XML Schema";
+static char __pyx_k_413[] = "Document is not valid XML Schema";
+static char __pyx_k_414[] = "Schema instance not initialised";
+static char __pyx_k_415[] = "XMLSchemaValidateError";
+static char __pyx_k_416[] = "Internal error in XML Schema validation.";
+static char __pyx_k_417[] = "_ParserSchemaValidationContext not initialised";
+static char __pyx_k_418[] = "lxml.etree was compiled without Schematron support.";
+static char __pyx_k_420[] = "SchematronParseError";
+static char __pyx_k_422[] = "Document is not a valid Schematron schema";
+static char __pyx_k_423[] = "Schematron instance not initialised";
+static char __pyx_k_425[] = "SchematronValidateError";
+static char __pyx_k_426[] = "Internal error in Schematron validation";
+static char __pyx_k_427[] = ".memorylist";
+static char __pyx_k_428[] = "getfilesystemencoding";
+static char __pyx_k_429[] = "Failed to create file %s";
+static char __pyx_k_430[] = ".memorydump";
+static char __pyx_k_431[] = "Element tag\n ";
+static char __pyx_k_432[] = "Element attribute dictionary. Where possible, use get(), set(),\n keys(), values() and items() to access element attributes.\n ";
+static char __pyx_k_433[] = "Text before the first subelement. This is either a string or \n the value None, if there was no text.\n ";
+static char __pyx_k_434[] = "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 ";
+static char __pyx_k_435[] = "Namespace prefix or None.\n ";
+static char __pyx_k_436[] = "Original line number as found by the parser or None if unknown.\n ";
+static char __pyx_k_437[] = "Namespace prefix->URI mapping known in the context of this\n Element. This includes all namespace declarations of the\n parents.\n\n Note that changing the returned dict has no effect on the Element.\n ";
+static char __pyx_k_438[] = "The base URI of the Element (xml:base or HTML base URL).\n None if the base URI is unknown.\n\n Note that the value depends on the URL of the document that\n holds the Element if there is no xml:base attribute on the\n Element or its ancestors.\n\n Setting this property will set an xml:base attribute on the\n Element, regardless of the document type (XML or HTML).\n ";
+static char __pyx_k_439[] = "The error log of the last parser run.\n ";
+static char __pyx_k_440[] = "The custom resolver registry of this parser.";
+static char __pyx_k_441[] = "The version of the underlying XML parser.";
+static char __pyx_k_442[] = "The name of the error domain. See lxml.etree.ErrorDomains\n ";
+static char __pyx_k_443[] = "The name of the error type. See lxml.etree.ErrorTypes\n ";
+static char __pyx_k_444[] = "The name of the error level. See lxml.etree.ErrorLevels\n ";
+static char __pyx_k_445[] = "Returns the name of the root node as defined by the DOCTYPE.";
+static char __pyx_k_446[] = "Returns the public ID of the DOCTYPE.";
+static char __pyx_k_447[] = "Returns the system ID of the DOCTYPE.";
+static char __pyx_k_448[] = "Returns the XML version as declared by the document.";
+static char __pyx_k_449[] = "Returns the encoding name as declared by the document.";
+static char __pyx_k_450[] = "Returns the standalone flag as declared by the document. The possible\n values are True (``standalone='yes'``), False\n (``standalone='no'`` or flag not provided in the declaration),\n and None (unknown or no declaration found). Note that a\n normal truth test on this value will always tell if the\n ``standalone`` flag was set to ``'yes'`` or not.\n ";
+static char __pyx_k_451[] = "The source URL of the document (or None if unknown).";
+static char __pyx_k_452[] = "Returns a DOCTYPE declaration string for the document.";
+static char __pyx_k_453[] = "Returns a DTD validator based on the internal subset of the document.";
+static char __pyx_k_454[] = "Returns a DTD validator based on the external subset of the document.";
+static char __pyx_k_455[] = "Returns a dict containing all pseudo-attributes that can be\n parsed from the text content of this processing instruction.\n Note that modifying the dict currently has no effect on the\n XML node, although this is not guaranteed to stay this way.\n ";
+static char __pyx_k_456[] = "Information about the document provided by parser and DTD. This\n value is only defined for ElementTree objects based on the root node\n of a parsed document (e.g. those returned by the parse functions),\n not for trees that were built manually.\n ";
+static char __pyx_k_457[] = "The parser that was used to parse the document in this ElementTree.\n ";
+static char __pyx_k_458[] = "Text before the first subelement. This is either a string or the\n value None, if there was no text.\n ";
+static char __pyx_k_459[] = "Namespace prefix for extension functions.";
+static char __pyx_k_460[] = "The log of validation errors and warnings.";
+static char __pyx_k_461[] = "The error log of the last (or current) run of the feed parser.\n\n Note that this is local to the feed parser and thus is\n different from what the ``error_log`` property returns.\n ";
+static char __pyx_k_462[] = "The error log of the last (or current) parser run.\n ";
+static char __pyx_k_463[] = "The literal XPath expression.\n ";
+static char __pyx_k_464[] = "The access control configuration as a map of options.";
+static char __pyx_k_465[] = "The log of errors and warnings of an XSLT execution.";
+static char __pyx_k_466[] = "Return an ElementTree with profiling data for the stylesheet run.\n ";
+static char __pyx_k_467[] = "The ``lxml.etree`` module implements the extended ElementTree API\nfor XML.\n";
+static char __pyx_k_468[] = "restructuredtext en";
+static char __pyx_k_469[] = "AttributeBasedElementClassLookup";
+static char __pyx_k_470[] = "CustomElementClassLookup";
+static char __pyx_k_471[] = "ElementDefaultClassLookup";
+static char __pyx_k_472[] = "ElementNamespaceClassLookup";
+static char __pyx_k_473[] = "FallbackElementClassLookup";
+static char __pyx_k_474[] = "LIBXML_COMPILED_VERSION";
+static char __pyx_k_475[] = "LIBXSLT_COMPILED_VERSION";
+static char __pyx_k_476[] = "ParserBasedElementClassLookup";
+static char __pyx_k_477[] = "PythonElementClassLookup";
+static char __pyx_k_478[] = "XPathDocumentEvaluator";
+static char __pyx_k_479[] = "use_global_python_log";
+static char __pyx_k_480[] = "os.path";
+static char __pyx_k_482[] = "http://www.w3.org/XML/1998/namespace";
+static char __pyx_k_483[] = "http://www.w3.org/1999/xhtml";
+static char __pyx_k_484[] = "http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+static char __pyx_k_485[] = "http://schemas.xmlsoap.org/wsdl/";
+static char __pyx_k_486[] = "http://www.w3.org/2001/XMLSchema-instance";
+static char __pyx_k_487[] = "http://purl.org/dc/elements/1.1/";
+static char __pyx_k_488[] = "http://codespeak.net/lxml/objectify/pytype";
+static char __pyx_k_489[] = "ns\\d+$";
+static char __pyx_k_493[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx";
+static char __pyx_k_494[] = "lxml.etree";
+static char __pyx_k_498[] = "LxmlError.__init__";
+static char __pyx_k_499[] = "Main exception base class for lxml. All other exceptions inherit from\n this one.\n ";
+static char __pyx_k_500[] = "Base class for all syntax errors.\n ";
+static char __pyx_k_501[] = "Error during C14N serialisation.\n ";
+static char __pyx_k_502[] = "[0-9]+";
+static char __pyx_k_504[] = "Unknown libxml2 version: %s";
+static char __pyx_k_505[] = "^(<\\?xml[^>]+)\\s+encoding\\s*=\\s*[\"\\'][^\"\\']*[\"\\'](\\s*\\?>|)";
+static char __pyx_k_507[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi";
+static char __pyx_k_511[] = "Libxml2 error levels";
+static char __pyx_k_512[] = "Libxml2 error domains";
+static char __pyx_k_513[] = "Libxml2 error types";
+static char __pyx_k_514[] = "Libxml2 RelaxNG error types";
+static char __pyx_k_515[] = "NONE=0\nWARNING=1\nERROR=2\nFATAL=3\n";
+static char __pyx_k_517[] = "NONE=0\nPARSER=1\nTREE=2\nNAMESPACE=3\nDTD=4\nHTML=5\nMEMORY=6\nOUTPUT=7\nIO=8\nFTP=9\nHTTP=10\nXINCLUDE=11\nXPATH=12\nXPOINTER=13\nREGEXP=14\nDATATYPE=15\nSCHEMASP=16\nSCHEMASV=17\nRELAXNGP=18\nRELAXNGV=19\nCATALOG=20\nC14N=21\nXSLT=22\nVALID=23\nCHECK=24\nWRITER=25\nMODULE=26\nI18N=27\nSCHEMATRONV=28\n";
+static char __pyx_k_519[] = "ERR_OK=0\nERR_INTERNAL_ERROR=1\nERR_NO_MEMORY=2\nERR_DOCUMENT_START=3\nERR_DOCUMENT_EMPTY=4\nERR_DOCUMENT_END=5\nERR_INVALID_HEX_CHARREF=6\nERR_INVALID_DEC_CHARREF=7\nERR_INVALID_CHARREF=8\nERR_INVALID_CHAR=9\nERR_CHARREF_AT_EOF=10\nERR_CHARREF_IN_PROLOG=11\nERR_CHARREF_IN_EPILOG=12\nERR_CHARREF_IN_DTD=13\nERR_ENTITYREF_AT_EOF=14\nERR_ENTITYREF_IN_PROLOG=15\nERR_ENTITYREF_IN_EPILOG=16\nERR_ENTITYREF_IN_DTD=17\nERR_PEREF_AT_EOF=18\nERR_PEREF_IN_PROLOG=19\nERR_PEREF_IN_EPILOG=20\nERR_PEREF_IN_INT_SUBSET=21\nERR_ENTITYREF_NO_NAME=22\nERR_ENTITYREF_SEMICOL_MISSING=23\nERR_PEREF_NO_NAME=24\nERR_PEREF_SEMICOL_MISSING=25\nERR_UNDECLARED_ENTITY=26\nWAR_UNDECLARED_ENTITY=27\nERR_UNPARSED_ENTITY=28\nERR_ENTITY_IS_EXTERNAL=29\nERR_ENTITY_IS_PARAMETER=30\nERR_UNKNOWN_ENCODING=31\nERR_UNSUPPORTED_ENCODING=32\nERR_STRING_NOT_STARTED=33\nERR_STRING_NOT_CLOSED=34\nERR_NS_DECL_ERROR=35\nERR_ENTITY_NOT_STARTED=36\nERR_ENTITY_NOT_FINISHED=37\nERR_LT_IN_ATTRIBUTE=38\nERR_ATTRIBUTE_NOT_STARTED=39\nERR_ATTRIBUTE_NOT_FINISHED=40\nERR_ATTRIBUTE_WITHOUT_VALUE=41\nERR_ATTRIBUTE_REDEFINED=42\nERR_LITERAL_NOT_STARTED=43\nERR_LITERAL_NOT_FINISHED=44\nERR_COMMENT_NOT_FINISHED=45\nERR_PI_NOT_STARTED=46\nERR_PI_NOT_FINISHED=47\nERR_NOTATION_NOT_STARTED=48\nERR_NOTATION_NOT_FINISHED=49\nERR_ATTLIST_NOT_STARTED=50\nERR_ATTLIST_NOT_FINISHED=51\nERR_MIXED_NOT_STARTED=52\nERR_MIXED_NOT_FINISHED=53\nERR_ELEMCONTENT_NOT_STARTED=54\nERR_ELEMCONTENT_NOT_FINISHED=55\nERR_XMLDECL_NOT_STARTED=56\nERR_XMLDECL_NOT_FINISHED=57\nERR_CONDSEC_NOT_STARTED=58\nERR_CONDSEC_NOT_FINISHED=59\nERR_EXT_SUBSET_NOT_FINISHED=60\nERR_DOCTYPE_NOT_FINISHED=61\nERR_MISPLACED_CDATA_END=62\nERR_CDATA_NOT_FINISHED=63\nERR_RESERVED_XML_NAME=64\nERR_SPACE_REQUIRED=65\nERR_SEPARATOR_REQUIRED=66\nERR_NMTOKEN_REQUIRED=67\nERR_NAME_REQUIRED=68\nERR_PCDATA_REQUIRED=69\nERR_URI_REQUIRED=70\nERR_PUBID_REQUIRED=71\nERR_LT_REQUIRED=72\nERR_GT_REQUIRED=73\nERR_LTSLASH_REQUIRED=74\nERR_EQUAL_REQUIRED=75\nERR_TAG_NAME_MISMATCH=76\nERR_TAG_NOT_FIN""ISHED=77\nERR_STANDALONE_VALUE=78\n";
+static char __pyx_k_520[] = "ERR_ENCODING_NAME=79\nERR_HYPHEN_IN_COMMENT=80\nERR_INVALID_ENCODING=81\nERR_EXT_ENTITY_STANDALONE=82\nERR_CONDSEC_INVALID=83\nERR_VALUE_REQUIRED=84\nERR_NOT_WELL_BALANCED=85\nERR_EXTRA_CONTENT=86\nERR_ENTITY_CHAR_ERROR=87\nERR_ENTITY_PE_INTERNAL=88\nERR_ENTITY_LOOP=89\nERR_ENTITY_BOUNDARY=90\nERR_INVALID_URI=91\nERR_URI_FRAGMENT=92\nWAR_CATALOG_PI=93\nERR_NO_DTD=94\nERR_CONDSEC_INVALID_KEYWORD=95\nERR_VERSION_MISSING=96\nWAR_UNKNOWN_VERSION=97\nWAR_LANG_VALUE=98\nWAR_NS_URI=99\nWAR_NS_URI_RELATIVE=100\nERR_MISSING_ENCODING=101\nWAR_SPACE_VALUE=102\nERR_NOT_STANDALONE=103\nERR_ENTITY_PROCESSING=104\nERR_NOTATION_PROCESSING=105\nWAR_NS_COLUMN=106\nWAR_ENTITY_REDEFINED=107\nERR_UNKNOWN_VERSION=108\nERR_VERSION_MISMATCH=109\nNS_ERR_XML_NAMESPACE=200\nNS_ERR_UNDEFINED_NAMESPACE=201\nNS_ERR_QNAME=202\nNS_ERR_ATTRIBUTE_REDEFINED=203\nNS_ERR_EMPTY=204\nNS_ERR_COLON=205\nDTD_ATTRIBUTE_DEFAULT=500\nDTD_ATTRIBUTE_REDEFINED=501\nDTD_ATTRIBUTE_VALUE=502\nDTD_CONTENT_ERROR=503\nDTD_CONTENT_MODEL=504\nDTD_CONTENT_NOT_DETERMINIST=505\nDTD_DIFFERENT_PREFIX=506\nDTD_ELEM_DEFAULT_NAMESPACE=507\nDTD_ELEM_NAMESPACE=508\nDTD_ELEM_REDEFINED=509\nDTD_EMPTY_NOTATION=510\nDTD_ENTITY_TYPE=511\nDTD_ID_FIXED=512\nDTD_ID_REDEFINED=513\nDTD_ID_SUBSET=514\nDTD_INVALID_CHILD=515\nDTD_INVALID_DEFAULT=516\nDTD_LOAD_ERROR=517\nDTD_MISSING_ATTRIBUTE=518\nDTD_MIXED_CORRUPT=519\nDTD_MULTIPLE_ID=520\nDTD_NO_DOC=521\nDTD_NO_DTD=522\nDTD_NO_ELEM_NAME=523\nDTD_NO_PREFIX=524\nDTD_NO_ROOT=525\nDTD_NOTATION_REDEFINED=526\nDTD_NOTATION_VALUE=527\nDTD_NOT_EMPTY=528\nDTD_NOT_PCDATA=529\nDTD_NOT_STANDALONE=530\nDTD_ROOT_NAME=531\nDTD_STANDALONE_WHITE_SPACE=532\nDTD_UNKNOWN_ATTRIBUTE=533\nDTD_UNKNOWN_ELEM=534\nDTD_UNKNOWN_ENTITY=535\nDTD_UNKNOWN_ID=536\nDTD_UNKNOWN_NOTATION=537\nDTD_STANDALONE_DEFAULTED=538\nDTD_XMLID_VALUE=539\nDTD_XMLID_TYPE=540\nDTD_DUP_TOKEN=541\nHTML_STRUCURE_ERROR=800\nHTML_UNKNOWN_TAG=801\nRNGP_ANYNAME_ATTR_ANCESTOR=1000\nRNGP_ATTR_CONFLICT=1001\nRNGP_ATTRIBUTE_CHILDREN=1002\nRNGP_ATTRIBUTE_""CONTENT=1003\n";
+static char __pyx_k_521[] = "RNGP_ATTRIBUTE_EMPTY=1004\nRNGP_ATTRIBUTE_NOOP=1005\nRNGP_CHOICE_CONTENT=1006\nRNGP_CHOICE_EMPTY=1007\nRNGP_CREATE_FAILURE=1008\nRNGP_DATA_CONTENT=1009\nRNGP_DEF_CHOICE_AND_INTERLEAVE=1010\nRNGP_DEFINE_CREATE_FAILED=1011\nRNGP_DEFINE_EMPTY=1012\nRNGP_DEFINE_MISSING=1013\nRNGP_DEFINE_NAME_MISSING=1014\nRNGP_ELEM_CONTENT_EMPTY=1015\nRNGP_ELEM_CONTENT_ERROR=1016\nRNGP_ELEMENT_EMPTY=1017\nRNGP_ELEMENT_CONTENT=1018\nRNGP_ELEMENT_NAME=1019\nRNGP_ELEMENT_NO_CONTENT=1020\nRNGP_ELEM_TEXT_CONFLICT=1021\nRNGP_EMPTY=1022\nRNGP_EMPTY_CONSTRUCT=1023\nRNGP_EMPTY_CONTENT=1024\nRNGP_EMPTY_NOT_EMPTY=1025\nRNGP_ERROR_TYPE_LIB=1026\nRNGP_EXCEPT_EMPTY=1027\nRNGP_EXCEPT_MISSING=1028\nRNGP_EXCEPT_MULTIPLE=1029\nRNGP_EXCEPT_NO_CONTENT=1030\nRNGP_EXTERNALREF_EMTPY=1031\nRNGP_EXTERNAL_REF_FAILURE=1032\nRNGP_EXTERNALREF_RECURSE=1033\nRNGP_FORBIDDEN_ATTRIBUTE=1034\nRNGP_FOREIGN_ELEMENT=1035\nRNGP_GRAMMAR_CONTENT=1036\nRNGP_GRAMMAR_EMPTY=1037\nRNGP_GRAMMAR_MISSING=1038\nRNGP_GRAMMAR_NO_START=1039\nRNGP_GROUP_ATTR_CONFLICT=1040\nRNGP_HREF_ERROR=1041\nRNGP_INCLUDE_EMPTY=1042\nRNGP_INCLUDE_FAILURE=1043\nRNGP_INCLUDE_RECURSE=1044\nRNGP_INTERLEAVE_ADD=1045\nRNGP_INTERLEAVE_CREATE_FAILED=1046\nRNGP_INTERLEAVE_EMPTY=1047\nRNGP_INTERLEAVE_NO_CONTENT=1048\nRNGP_INVALID_DEFINE_NAME=1049\nRNGP_INVALID_URI=1050\nRNGP_INVALID_VALUE=1051\nRNGP_MISSING_HREF=1052\nRNGP_NAME_MISSING=1053\nRNGP_NEED_COMBINE=1054\nRNGP_NOTALLOWED_NOT_EMPTY=1055\nRNGP_NSNAME_ATTR_ANCESTOR=1056\nRNGP_NSNAME_NO_NS=1057\nRNGP_PARAM_FORBIDDEN=1058\nRNGP_PARAM_NAME_MISSING=1059\nRNGP_PARENTREF_CREATE_FAILED=1060\nRNGP_PARENTREF_NAME_INVALID=1061\nRNGP_PARENTREF_NO_NAME=1062\nRNGP_PARENTREF_NO_PARENT=1063\nRNGP_PARENTREF_NOT_EMPTY=1064\nRNGP_PARSE_ERROR=1065\nRNGP_PAT_ANYNAME_EXCEPT_ANYNAME=1066\nRNGP_PAT_ATTR_ATTR=1067\nRNGP_PAT_ATTR_ELEM=1068\nRNGP_PAT_DATA_EXCEPT_ATTR=1069\nRNGP_PAT_DATA_EXCEPT_ELEM=1070\nRNGP_PAT_DATA_EXCEPT_EMPTY=1071\nRNGP_PAT_DATA_EXCEPT_GROUP=1072\nRNGP_PAT_DATA_EXCEPT_INTERLEAVE=1073\nRNGP_PAT_DATA_EXCEPT_LIST=""1074\n";
+static char __pyx_k_522[] = "RNGP_PAT_DATA_EXCEPT_ONEMORE=1075\nRNGP_PAT_DATA_EXCEPT_REF=1076\nRNGP_PAT_DATA_EXCEPT_TEXT=1077\nRNGP_PAT_LIST_ATTR=1078\nRNGP_PAT_LIST_ELEM=1079\nRNGP_PAT_LIST_INTERLEAVE=1080\nRNGP_PAT_LIST_LIST=1081\nRNGP_PAT_LIST_REF=1082\nRNGP_PAT_LIST_TEXT=1083\nRNGP_PAT_NSNAME_EXCEPT_ANYNAME=1084\nRNGP_PAT_NSNAME_EXCEPT_NSNAME=1085\nRNGP_PAT_ONEMORE_GROUP_ATTR=1086\nRNGP_PAT_ONEMORE_INTERLEAVE_ATTR=1087\nRNGP_PAT_START_ATTR=1088\nRNGP_PAT_START_DATA=1089\nRNGP_PAT_START_EMPTY=1090\nRNGP_PAT_START_GROUP=1091\nRNGP_PAT_START_INTERLEAVE=1092\nRNGP_PAT_START_LIST=1093\nRNGP_PAT_START_ONEMORE=1094\nRNGP_PAT_START_TEXT=1095\nRNGP_PAT_START_VALUE=1096\nRNGP_PREFIX_UNDEFINED=1097\nRNGP_REF_CREATE_FAILED=1098\nRNGP_REF_CYCLE=1099\nRNGP_REF_NAME_INVALID=1100\nRNGP_REF_NO_DEF=1101\nRNGP_REF_NO_NAME=1102\nRNGP_REF_NOT_EMPTY=1103\nRNGP_START_CHOICE_AND_INTERLEAVE=1104\nRNGP_START_CONTENT=1105\nRNGP_START_EMPTY=1106\nRNGP_START_MISSING=1107\nRNGP_TEXT_EXPECTED=1108\nRNGP_TEXT_HAS_CHILD=1109\nRNGP_TYPE_MISSING=1110\nRNGP_TYPE_NOT_FOUND=1111\nRNGP_TYPE_VALUE=1112\nRNGP_UNKNOWN_ATTRIBUTE=1113\nRNGP_UNKNOWN_COMBINE=1114\nRNGP_UNKNOWN_CONSTRUCT=1115\nRNGP_UNKNOWN_TYPE_LIB=1116\nRNGP_URI_FRAGMENT=1117\nRNGP_URI_NOT_ABSOLUTE=1118\nRNGP_VALUE_EMPTY=1119\nRNGP_VALUE_NO_CONTENT=1120\nRNGP_XMLNS_NAME=1121\nRNGP_XML_NS=1122\nXPATH_EXPRESSION_OK=1200\nXPATH_NUMBER_ERROR=1201\nXPATH_UNFINISHED_LITERAL_ERROR=1202\nXPATH_START_LITERAL_ERROR=1203\nXPATH_VARIABLE_REF_ERROR=1204\nXPATH_UNDEF_VARIABLE_ERROR=1205\nXPATH_INVALID_PREDICATE_ERROR=1206\nXPATH_EXPR_ERROR=1207\nXPATH_UNCLOSED_ERROR=1208\nXPATH_UNKNOWN_FUNC_ERROR=1209\nXPATH_INVALID_OPERAND=1210\nXPATH_INVALID_TYPE=1211\nXPATH_INVALID_ARITY=1212\nXPATH_INVALID_CTXT_SIZE=1213\nXPATH_INVALID_CTXT_POSITION=1214\nXPATH_MEMORY_ERROR=1215\nXPTR_SYNTAX_ERROR=1216\nXPTR_RESOURCE_ERROR=1217\nXPTR_SUB_RESOURCE_ERROR=1218\nXPATH_UNDEF_PREFIX_ERROR=1219\nXPATH_ENCODING_ERROR=1220\nXPATH_INVALID_CHAR_ERROR=1221\nTREE_INVALID_HEX=1300\nTREE_INVALID_DEC=1301\nTREE""_UNTERMINATED_ENTITY=1302\n";
+static char __pyx_k_523[] = "TREE_NOT_UTF8=1303\nSAVE_NOT_UTF8=1400\nSAVE_CHAR_INVALID=1401\nSAVE_NO_DOCTYPE=1402\nSAVE_UNKNOWN_ENCODING=1403\nREGEXP_COMPILE_ERROR=1450\nIO_UNKNOWN=1500\nIO_EACCES=1501\nIO_EAGAIN=1502\nIO_EBADF=1503\nIO_EBADMSG=1504\nIO_EBUSY=1505\nIO_ECANCELED=1506\nIO_ECHILD=1507\nIO_EDEADLK=1508\nIO_EDOM=1509\nIO_EEXIST=1510\nIO_EFAULT=1511\nIO_EFBIG=1512\nIO_EINPROGRESS=1513\nIO_EINTR=1514\nIO_EINVAL=1515\nIO_EIO=1516\nIO_EISDIR=1517\nIO_EMFILE=1518\nIO_EMLINK=1519\nIO_EMSGSIZE=1520\nIO_ENAMETOOLONG=1521\nIO_ENFILE=1522\nIO_ENODEV=1523\nIO_ENOENT=1524\nIO_ENOEXEC=1525\nIO_ENOLCK=1526\nIO_ENOMEM=1527\nIO_ENOSPC=1528\nIO_ENOSYS=1529\nIO_ENOTDIR=1530\nIO_ENOTEMPTY=1531\nIO_ENOTSUP=1532\nIO_ENOTTY=1533\nIO_ENXIO=1534\nIO_EPERM=1535\nIO_EPIPE=1536\nIO_ERANGE=1537\nIO_EROFS=1538\nIO_ESPIPE=1539\nIO_ESRCH=1540\nIO_ETIMEDOUT=1541\nIO_EXDEV=1542\nIO_NETWORK_ATTEMPT=1543\nIO_ENCODER=1544\nIO_FLUSH=1545\nIO_WRITE=1546\nIO_NO_INPUT=1547\nIO_BUFFER_FULL=1548\nIO_LOAD_ERROR=1549\nIO_ENOTSOCK=1550\nIO_EISCONN=1551\nIO_ECONNREFUSED=1552\nIO_ENETUNREACH=1553\nIO_EADDRINUSE=1554\nIO_EALREADY=1555\nIO_EAFNOSUPPORT=1556\nXINCLUDE_RECURSION=1600\nXINCLUDE_PARSE_VALUE=1601\nXINCLUDE_ENTITY_DEF_MISMATCH=1602\nXINCLUDE_NO_HREF=1603\nXINCLUDE_NO_FALLBACK=1604\nXINCLUDE_HREF_URI=1605\nXINCLUDE_TEXT_FRAGMENT=1606\nXINCLUDE_TEXT_DOCUMENT=1607\nXINCLUDE_INVALID_CHAR=1608\nXINCLUDE_BUILD_FAILED=1609\nXINCLUDE_UNKNOWN_ENCODING=1610\nXINCLUDE_MULTIPLE_ROOT=1611\nXINCLUDE_XPTR_FAILED=1612\nXINCLUDE_XPTR_RESULT=1613\nXINCLUDE_INCLUDE_IN_INCLUDE=1614\nXINCLUDE_FALLBACKS_IN_INCLUDE=1615\nXINCLUDE_FALLBACK_NOT_IN_INCLUDE=1616\nXINCLUDE_DEPRECATED_NS=1617\nXINCLUDE_FRAGMENT_ID=1618\nCATALOG_MISSING_ATTR=1650\nCATALOG_ENTRY_BROKEN=1651\nCATALOG_PREFER_VALUE=1652\nCATALOG_NOT_CATALOG=1653\nCATALOG_RECURSION=1654\nSCHEMAP_PREFIX_UNDEFINED=1700\nSCHEMAP_ATTRFORMDEFAULT_VALUE=1701\nSCHEMAP_ATTRGRP_NONAME_NOREF=1702\nSCHEMAP_ATTR_NONAME_NOREF=1703\nSCHEMAP_COMPLEXTYPE_NONAME_NOREF=1704\nSCHEMAP_ELEMFORMDEFAULT_VALUE=""1705\nSCHEMAP_ELEM_NONAME_NOREF=1706\n";
+static char __pyx_k_524[] = "SCHEMAP_EXTENSION_NO_BASE=1707\nSCHEMAP_FACET_NO_VALUE=1708\nSCHEMAP_FAILED_BUILD_IMPORT=1709\nSCHEMAP_GROUP_NONAME_NOREF=1710\nSCHEMAP_IMPORT_NAMESPACE_NOT_URI=1711\nSCHEMAP_IMPORT_REDEFINE_NSNAME=1712\nSCHEMAP_IMPORT_SCHEMA_NOT_URI=1713\nSCHEMAP_INVALID_BOOLEAN=1714\nSCHEMAP_INVALID_ENUM=1715\nSCHEMAP_INVALID_FACET=1716\nSCHEMAP_INVALID_FACET_VALUE=1717\nSCHEMAP_INVALID_MAXOCCURS=1718\nSCHEMAP_INVALID_MINOCCURS=1719\nSCHEMAP_INVALID_REF_AND_SUBTYPE=1720\nSCHEMAP_INVALID_WHITE_SPACE=1721\nSCHEMAP_NOATTR_NOREF=1722\nSCHEMAP_NOTATION_NO_NAME=1723\nSCHEMAP_NOTYPE_NOREF=1724\nSCHEMAP_REF_AND_SUBTYPE=1725\nSCHEMAP_RESTRICTION_NONAME_NOREF=1726\nSCHEMAP_SIMPLETYPE_NONAME=1727\nSCHEMAP_TYPE_AND_SUBTYPE=1728\nSCHEMAP_UNKNOWN_ALL_CHILD=1729\nSCHEMAP_UNKNOWN_ANYATTRIBUTE_CHILD=1730\nSCHEMAP_UNKNOWN_ATTR_CHILD=1731\nSCHEMAP_UNKNOWN_ATTRGRP_CHILD=1732\nSCHEMAP_UNKNOWN_ATTRIBUTE_GROUP=1733\nSCHEMAP_UNKNOWN_BASE_TYPE=1734\nSCHEMAP_UNKNOWN_CHOICE_CHILD=1735\nSCHEMAP_UNKNOWN_COMPLEXCONTENT_CHILD=1736\nSCHEMAP_UNKNOWN_COMPLEXTYPE_CHILD=1737\nSCHEMAP_UNKNOWN_ELEM_CHILD=1738\nSCHEMAP_UNKNOWN_EXTENSION_CHILD=1739\nSCHEMAP_UNKNOWN_FACET_CHILD=1740\nSCHEMAP_UNKNOWN_FACET_TYPE=1741\nSCHEMAP_UNKNOWN_GROUP_CHILD=1742\nSCHEMAP_UNKNOWN_IMPORT_CHILD=1743\nSCHEMAP_UNKNOWN_LIST_CHILD=1744\nSCHEMAP_UNKNOWN_NOTATION_CHILD=1745\nSCHEMAP_UNKNOWN_PROCESSCONTENT_CHILD=1746\nSCHEMAP_UNKNOWN_REF=1747\nSCHEMAP_UNKNOWN_RESTRICTION_CHILD=1748\nSCHEMAP_UNKNOWN_SCHEMAS_CHILD=1749\nSCHEMAP_UNKNOWN_SEQUENCE_CHILD=1750\nSCHEMAP_UNKNOWN_SIMPLECONTENT_CHILD=1751\nSCHEMAP_UNKNOWN_SIMPLETYPE_CHILD=1752\nSCHEMAP_UNKNOWN_TYPE=1753\nSCHEMAP_UNKNOWN_UNION_CHILD=1754\nSCHEMAP_ELEM_DEFAULT_FIXED=1755\nSCHEMAP_REGEXP_INVALID=1756\nSCHEMAP_FAILED_LOAD=1757\nSCHEMAP_NOTHING_TO_PARSE=1758\nSCHEMAP_NOROOT=1759\nSCHEMAP_REDEFINED_GROUP=1760\nSCHEMAP_REDEFINED_TYPE=1761\nSCHEMAP_REDEFINED_ELEMENT=1762\nSCHEMAP_REDEFINED_ATTRGROUP=1763\nSCHEMAP_REDEFINED_ATTR=1764\nSCHEMAP_REDEFINED_NOTATION=1765\nSCHEMAP_FAILED_PARSE=1766\nSCH""EMAP_UNKNOWN_PREFIX=1767\n";
+static char __pyx_k_525[] = "SCHEMAP_DEF_AND_PREFIX=1768\nSCHEMAP_UNKNOWN_INCLUDE_CHILD=1769\nSCHEMAP_INCLUDE_SCHEMA_NOT_URI=1770\nSCHEMAP_INCLUDE_SCHEMA_NO_URI=1771\nSCHEMAP_NOT_SCHEMA=1772\nSCHEMAP_UNKNOWN_MEMBER_TYPE=1773\nSCHEMAP_INVALID_ATTR_USE=1774\nSCHEMAP_RECURSIVE=1775\nSCHEMAP_SUPERNUMEROUS_LIST_ITEM_TYPE=1776\nSCHEMAP_INVALID_ATTR_COMBINATION=1777\nSCHEMAP_INVALID_ATTR_INLINE_COMBINATION=1778\nSCHEMAP_MISSING_SIMPLETYPE_CHILD=1779\nSCHEMAP_INVALID_ATTR_NAME=1780\nSCHEMAP_REF_AND_CONTENT=1781\nSCHEMAP_CT_PROPS_CORRECT_1=1782\nSCHEMAP_CT_PROPS_CORRECT_2=1783\nSCHEMAP_CT_PROPS_CORRECT_3=1784\nSCHEMAP_CT_PROPS_CORRECT_4=1785\nSCHEMAP_CT_PROPS_CORRECT_5=1786\nSCHEMAP_DERIVATION_OK_RESTRICTION_1=1787\nSCHEMAP_DERIVATION_OK_RESTRICTION_2_1_1=1788\nSCHEMAP_DERIVATION_OK_RESTRICTION_2_1_2=1789\nSCHEMAP_DERIVATION_OK_RESTRICTION_2_2=1790\nSCHEMAP_DERIVATION_OK_RESTRICTION_3=1791\nSCHEMAP_WILDCARD_INVALID_NS_MEMBER=1792\nSCHEMAP_INTERSECTION_NOT_EXPRESSIBLE=1793\nSCHEMAP_UNION_NOT_EXPRESSIBLE=1794\nSCHEMAP_SRC_IMPORT_3_1=1795\nSCHEMAP_SRC_IMPORT_3_2=1796\nSCHEMAP_DERIVATION_OK_RESTRICTION_4_1=1797\nSCHEMAP_DERIVATION_OK_RESTRICTION_4_2=1798\nSCHEMAP_DERIVATION_OK_RESTRICTION_4_3=1799\nSCHEMAP_COS_CT_EXTENDS_1_3=1800\nSCHEMAV_NOROOT=1801\nSCHEMAV_UNDECLAREDELEM=1802\nSCHEMAV_NOTTOPLEVEL=1803\nSCHEMAV_MISSING=1804\nSCHEMAV_WRONGELEM=1805\nSCHEMAV_NOTYPE=1806\nSCHEMAV_NOROLLBACK=1807\nSCHEMAV_ISABSTRACT=1808\nSCHEMAV_NOTEMPTY=1809\nSCHEMAV_ELEMCONT=1810\nSCHEMAV_HAVEDEFAULT=1811\nSCHEMAV_NOTNILLABLE=1812\nSCHEMAV_EXTRACONTENT=1813\nSCHEMAV_INVALIDATTR=1814\nSCHEMAV_INVALIDELEM=1815\nSCHEMAV_NOTDETERMINIST=1816\nSCHEMAV_CONSTRUCT=1817\nSCHEMAV_INTERNAL=1818\nSCHEMAV_NOTSIMPLE=1819\nSCHEMAV_ATTRUNKNOWN=1820\nSCHEMAV_ATTRINVALID=1821\nSCHEMAV_VALUE=1822\nSCHEMAV_FACET=1823\nSCHEMAV_CVC_DATATYPE_VALID_1_2_1=1824\nSCHEMAV_CVC_DATATYPE_VALID_1_2_2=1825\nSCHEMAV_CVC_DATATYPE_VALID_1_2_3=1826\nSCHEMAV_CVC_TYPE_3_1_1=1827\nSCHEMAV_CVC_TYPE_3_1_2=1828\nSCHEMAV_CVC_FACET_VALID=1829\nSCHEMAV_CVC_LENGTH_VALID""=1830\n";
+static char __pyx_k_526[] = "SCHEMAV_CVC_MINLENGTH_VALID=1831\nSCHEMAV_CVC_MAXLENGTH_VALID=1832\nSCHEMAV_CVC_MININCLUSIVE_VALID=1833\nSCHEMAV_CVC_MAXINCLUSIVE_VALID=1834\nSCHEMAV_CVC_MINEXCLUSIVE_VALID=1835\nSCHEMAV_CVC_MAXEXCLUSIVE_VALID=1836\nSCHEMAV_CVC_TOTALDIGITS_VALID=1837\nSCHEMAV_CVC_FRACTIONDIGITS_VALID=1838\nSCHEMAV_CVC_PATTERN_VALID=1839\nSCHEMAV_CVC_ENUMERATION_VALID=1840\nSCHEMAV_CVC_COMPLEX_TYPE_2_1=1841\nSCHEMAV_CVC_COMPLEX_TYPE_2_2=1842\nSCHEMAV_CVC_COMPLEX_TYPE_2_3=1843\nSCHEMAV_CVC_COMPLEX_TYPE_2_4=1844\nSCHEMAV_CVC_ELT_1=1845\nSCHEMAV_CVC_ELT_2=1846\nSCHEMAV_CVC_ELT_3_1=1847\nSCHEMAV_CVC_ELT_3_2_1=1848\nSCHEMAV_CVC_ELT_3_2_2=1849\nSCHEMAV_CVC_ELT_4_1=1850\nSCHEMAV_CVC_ELT_4_2=1851\nSCHEMAV_CVC_ELT_4_3=1852\nSCHEMAV_CVC_ELT_5_1_1=1853\nSCHEMAV_CVC_ELT_5_1_2=1854\nSCHEMAV_CVC_ELT_5_2_1=1855\nSCHEMAV_CVC_ELT_5_2_2_1=1856\nSCHEMAV_CVC_ELT_5_2_2_2_1=1857\nSCHEMAV_CVC_ELT_5_2_2_2_2=1858\nSCHEMAV_CVC_ELT_6=1859\nSCHEMAV_CVC_ELT_7=1860\nSCHEMAV_CVC_ATTRIBUTE_1=1861\nSCHEMAV_CVC_ATTRIBUTE_2=1862\nSCHEMAV_CVC_ATTRIBUTE_3=1863\nSCHEMAV_CVC_ATTRIBUTE_4=1864\nSCHEMAV_CVC_COMPLEX_TYPE_3_1=1865\nSCHEMAV_CVC_COMPLEX_TYPE_3_2_1=1866\nSCHEMAV_CVC_COMPLEX_TYPE_3_2_2=1867\nSCHEMAV_CVC_COMPLEX_TYPE_4=1868\nSCHEMAV_CVC_COMPLEX_TYPE_5_1=1869\nSCHEMAV_CVC_COMPLEX_TYPE_5_2=1870\nSCHEMAV_ELEMENT_CONTENT=1871\nSCHEMAV_DOCUMENT_ELEMENT_MISSING=1872\nSCHEMAV_CVC_COMPLEX_TYPE_1=1873\nSCHEMAV_CVC_AU=1874\nSCHEMAV_CVC_TYPE_1=1875\nSCHEMAV_CVC_TYPE_2=1876\nSCHEMAV_CVC_IDC=1877\nSCHEMAV_CVC_WILDCARD=1878\nSCHEMAV_MISC=1879\nXPTR_UNKNOWN_SCHEME=1900\nXPTR_CHILDSEQ_START=1901\nXPTR_EVAL_FAILED=1902\nXPTR_EXTRA_OBJECTS=1903\nC14N_CREATE_CTXT=1950\nC14N_REQUIRES_UTF8=1951\nC14N_CREATE_STACK=1952\nC14N_INVALID_NODE=1953\nC14N_UNKNOW_NODE=1954\nC14N_RELATIVE_NAMESPACE=1955\nFTP_PASV_ANSWER=2000\nFTP_EPSV_ANSWER=2001\nFTP_ACCNT=2002\nFTP_URL_SYNTAX=2003\nHTTP_URL_SYNTAX=2020\nHTTP_USE_IP=2021\nHTTP_UNKNOWN_HOST=2022\nSCHEMAP_SRC_SIMPLE_TYPE_1=3000\nSCHEMAP_SRC_SIMPLE_TYPE_2=3001\nSCHEMAP_SRC_SIMPLE_TYPE_3=3002\nSCHE""MAP_SRC_SIMPLE_TYPE_4=3003\n";
+static char __pyx_k_527[] = "SCHEMAP_SRC_RESOLVE=3004\nSCHEMAP_SRC_RESTRICTION_BASE_OR_SIMPLETYPE=3005\nSCHEMAP_SRC_LIST_ITEMTYPE_OR_SIMPLETYPE=3006\nSCHEMAP_SRC_UNION_MEMBERTYPES_OR_SIMPLETYPES=3007\nSCHEMAP_ST_PROPS_CORRECT_1=3008\nSCHEMAP_ST_PROPS_CORRECT_2=3009\nSCHEMAP_ST_PROPS_CORRECT_3=3010\nSCHEMAP_COS_ST_RESTRICTS_1_1=3011\nSCHEMAP_COS_ST_RESTRICTS_1_2=3012\nSCHEMAP_COS_ST_RESTRICTS_1_3_1=3013\nSCHEMAP_COS_ST_RESTRICTS_1_3_2=3014\nSCHEMAP_COS_ST_RESTRICTS_2_1=3015\nSCHEMAP_COS_ST_RESTRICTS_2_3_1_1=3016\nSCHEMAP_COS_ST_RESTRICTS_2_3_1_2=3017\nSCHEMAP_COS_ST_RESTRICTS_2_3_2_1=3018\nSCHEMAP_COS_ST_RESTRICTS_2_3_2_2=3019\nSCHEMAP_COS_ST_RESTRICTS_2_3_2_3=3020\nSCHEMAP_COS_ST_RESTRICTS_2_3_2_4=3021\nSCHEMAP_COS_ST_RESTRICTS_2_3_2_5=3022\nSCHEMAP_COS_ST_RESTRICTS_3_1=3023\nSCHEMAP_COS_ST_RESTRICTS_3_3_1=3024\nSCHEMAP_COS_ST_RESTRICTS_3_3_1_2=3025\nSCHEMAP_COS_ST_RESTRICTS_3_3_2_2=3026\nSCHEMAP_COS_ST_RESTRICTS_3_3_2_1=3027\nSCHEMAP_COS_ST_RESTRICTS_3_3_2_3=3028\nSCHEMAP_COS_ST_RESTRICTS_3_3_2_4=3029\nSCHEMAP_COS_ST_RESTRICTS_3_3_2_5=3030\nSCHEMAP_COS_ST_DERIVED_OK_2_1=3031\nSCHEMAP_COS_ST_DERIVED_OK_2_2=3032\nSCHEMAP_S4S_ELEM_NOT_ALLOWED=3033\nSCHEMAP_S4S_ELEM_MISSING=3034\nSCHEMAP_S4S_ATTR_NOT_ALLOWED=3035\nSCHEMAP_S4S_ATTR_MISSING=3036\nSCHEMAP_S4S_ATTR_INVALID_VALUE=3037\nSCHEMAP_SRC_ELEMENT_1=3038\nSCHEMAP_SRC_ELEMENT_2_1=3039\nSCHEMAP_SRC_ELEMENT_2_2=3040\nSCHEMAP_SRC_ELEMENT_3=3041\nSCHEMAP_P_PROPS_CORRECT_1=3042\nSCHEMAP_P_PROPS_CORRECT_2_1=3043\nSCHEMAP_P_PROPS_CORRECT_2_2=3044\nSCHEMAP_E_PROPS_CORRECT_2=3045\nSCHEMAP_E_PROPS_CORRECT_3=3046\nSCHEMAP_E_PROPS_CORRECT_4=3047\nSCHEMAP_E_PROPS_CORRECT_5=3048\nSCHEMAP_E_PROPS_CORRECT_6=3049\nSCHEMAP_SRC_INCLUDE=3050\nSCHEMAP_SRC_ATTRIBUTE_1=3051\nSCHEMAP_SRC_ATTRIBUTE_2=3052\nSCHEMAP_SRC_ATTRIBUTE_3_1=3053\nSCHEMAP_SRC_ATTRIBUTE_3_2=3054\nSCHEMAP_SRC_ATTRIBUTE_4=3055\nSCHEMAP_NO_XMLNS=3056\nSCHEMAP_NO_XSI=3057\nSCHEMAP_COS_VALID_DEFAULT_1=3058\nSCHEMAP_COS_VALID_DEFAULT_2_1=3059\nSCHEMAP_COS_VALID_DEFAULT_2_2_1=3060\nSCHEMAP_COS_VALID_DEFA""ULT_2_2_2=3061\n";
+static char __pyx_k_528[] = "SCHEMAP_CVC_SIMPLE_TYPE=3062\nSCHEMAP_COS_CT_EXTENDS_1_1=3063\nSCHEMAP_SRC_IMPORT_1_1=3064\nSCHEMAP_SRC_IMPORT_1_2=3065\nSCHEMAP_SRC_IMPORT_2=3066\nSCHEMAP_SRC_IMPORT_2_1=3067\nSCHEMAP_SRC_IMPORT_2_2=3068\nSCHEMAP_INTERNAL=3069\nSCHEMAP_NOT_DETERMINISTIC=3070\nSCHEMAP_SRC_ATTRIBUTE_GROUP_1=3071\nSCHEMAP_SRC_ATTRIBUTE_GROUP_2=3072\nSCHEMAP_SRC_ATTRIBUTE_GROUP_3=3073\nSCHEMAP_MG_PROPS_CORRECT_1=3074\nSCHEMAP_MG_PROPS_CORRECT_2=3075\nSCHEMAP_SRC_CT_1=3076\nSCHEMAP_DERIVATION_OK_RESTRICTION_2_1_3=3077\nSCHEMAP_AU_PROPS_CORRECT_2=3078\nSCHEMAP_A_PROPS_CORRECT_2=3079\nSCHEMAP_C_PROPS_CORRECT=3080\nSCHEMAP_SRC_REDEFINE=3081\nSCHEMAP_SRC_IMPORT=3082\nSCHEMAP_WARN_SKIP_SCHEMA=3083\nSCHEMAP_WARN_UNLOCATED_SCHEMA=3084\nSCHEMAP_WARN_ATTR_REDECL_PROH=3085\nSCHEMAP_WARN_ATTR_POINTLESS_PROH=3086\nSCHEMAP_AG_PROPS_CORRECT=3087\nSCHEMAP_COS_CT_EXTENDS_1_2=3088\nSCHEMAP_AU_PROPS_CORRECT=3089\nSCHEMAP_A_PROPS_CORRECT_3=3090\nSCHEMAP_COS_ALL_LIMITED=3091\nSCHEMATRONV_ASSERT=4000\nSCHEMATRONV_REPORT=4001\nMODULE_OPEN=4900\nMODULE_CLOSE=4901\nCHECK_FOUND_ELEMENT=5000\nCHECK_FOUND_ATTRIBUTE=5001\nCHECK_FOUND_TEXT=5002\nCHECK_FOUND_CDATA=5003\nCHECK_FOUND_ENTITYREF=5004\nCHECK_FOUND_ENTITY=5005\nCHECK_FOUND_PI=5006\nCHECK_FOUND_COMMENT=5007\nCHECK_FOUND_DOCTYPE=5008\nCHECK_FOUND_FRAGMENT=5009\nCHECK_FOUND_NOTATION=5010\nCHECK_UNKNOWN_NODE=5011\nCHECK_ENTITY_TYPE=5012\nCHECK_NO_PARENT=5013\nCHECK_NO_DOC=5014\nCHECK_NO_NAME=5015\nCHECK_NO_ELEM=5016\nCHECK_WRONG_DOC=5017\nCHECK_NO_PREV=5018\nCHECK_WRONG_PREV=5019\nCHECK_NO_NEXT=5020\nCHECK_WRONG_NEXT=5021\nCHECK_NOT_DTD=5022\nCHECK_NOT_ATTR=5023\nCHECK_NOT_ATTR_DECL=5024\nCHECK_NOT_ELEM_DECL=5025\nCHECK_NOT_ENTITY_DECL=5026\nCHECK_NOT_NS_DECL=5027\nCHECK_NO_HREF=5028\nCHECK_WRONG_PARENT=5029\nCHECK_NS_SCOPE=5030\nCHECK_NS_ANCESTOR=5031\nCHECK_NOT_UTF8=5032\nCHECK_NO_DICT=5033\nCHECK_NOT_NCNAME=5034\nCHECK_OUTSIDE_DICT=5035\nCHECK_WRONG_NAME=5036\nCHECK_NAME_NOT_NULL=5037\nI18N_NO_NAME=6000\nI18N_NO_HANDLER=6001\nI18N_EXCESS_HANDLER=6002\nI18N""_CONV_FAILED=6003\n";
+static char __pyx_k_529[] = "I18N_NO_OUTPUT=6004\nCHECK_=6005\nCHECK_X=6006\n";
+static char __pyx_k_531[] = "RELAXNG_OK=0\nRELAXNG_ERR_MEMORY=1\nRELAXNG_ERR_TYPE=2\nRELAXNG_ERR_TYPEVAL=3\nRELAXNG_ERR_DUPID=4\nRELAXNG_ERR_TYPECMP=5\nRELAXNG_ERR_NOSTATE=6\nRELAXNG_ERR_NODEFINE=7\nRELAXNG_ERR_LISTEXTRA=8\nRELAXNG_ERR_LISTEMPTY=9\nRELAXNG_ERR_INTERNODATA=10\nRELAXNG_ERR_INTERSEQ=11\nRELAXNG_ERR_INTEREXTRA=12\nRELAXNG_ERR_ELEMNAME=13\nRELAXNG_ERR_ATTRNAME=14\nRELAXNG_ERR_ELEMNONS=15\nRELAXNG_ERR_ATTRNONS=16\nRELAXNG_ERR_ELEMWRONGNS=17\nRELAXNG_ERR_ATTRWRONGNS=18\nRELAXNG_ERR_ELEMEXTRANS=19\nRELAXNG_ERR_ATTREXTRANS=20\nRELAXNG_ERR_ELEMNOTEMPTY=21\nRELAXNG_ERR_NOELEM=22\nRELAXNG_ERR_NOTELEM=23\nRELAXNG_ERR_ATTRVALID=24\nRELAXNG_ERR_CONTENTVALID=25\nRELAXNG_ERR_EXTRACONTENT=26\nRELAXNG_ERR_INVALIDATTR=27\nRELAXNG_ERR_DATAELEM=28\nRELAXNG_ERR_VALELEM=29\nRELAXNG_ERR_LISTELEM=30\nRELAXNG_ERR_DATATYPE=31\nRELAXNG_ERR_VALUE=32\nRELAXNG_ERR_LIST=33\nRELAXNG_ERR_NOGRAMMAR=34\nRELAXNG_ERR_EXTRADATA=35\nRELAXNG_ERR_LACKDATA=36\nRELAXNG_ERR_INTERNAL=37\nRELAXNG_ERR_ELEMWRONG=38\nRELAXNG_ERR_TEXTWRONG=39\n";
+static char __pyx_k_533[] = "\\s+(\\w+)\\s*=\\s*(?:\\'([^\\']*)\\'|\"([^\"]*)\")";
+static char __pyx_k_568[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi";
+static char __pyx_k_569[] = "Base class of lxml registry errors.\n ";
+static char __pyx_k_570[] = "Error registering a namespace extension.\n ";
+static char __pyx_k_573[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/nsclasses.pxi";
+static char __pyx_k_576[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi";
+static char __pyx_k_577[] = "ParseError.__init__";
+static char __pyx_k_578[] = "Syntax error while parsing an XML document.\n\n For compatibility with ElementTree 1.3 and later.\n ";
+static char __pyx_k_579[] = "Syntax error while parsing an XML document.\n ";
+static char __pyx_k_580[] = "Internal lxml parser error.\n ";
+static char __pyx_k_586[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parsertarget.pxi";
+static char __pyx_k_587[] = "_TargetParserResult.__init__";
+static char __pyx_k_588[] = "A libxml2 error that occurred during serialisation.\n ";
+static char __pyx_k_591[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlid.pxi";
+static char __pyx_k_596[] = "Error during XInclude processing.\n ";
+static char __pyx_k_599[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/cleanup.pxi";
+static char __pyx_k_606[] = "Base class of all XPath errors.\n ";
+static char __pyx_k_607[] = "Error during XPath evaluation.\n ";
+static char __pyx_k_608[] = "Internal error looking up an XPath extension function.\n ";
+static char __pyx_k_609[] = "Error handling an XPath result.\n ";
+static char __pyx_k_610[] = "Number encoding";
+static char __pyx_k_611[] = "Unfinished literal";
+static char __pyx_k_612[] = "Start of literal";
+static char __pyx_k_613[] = "Expected $ for variable reference";
+static char __pyx_k_614[] = "Undefined variable";
+static char __pyx_k_615[] = "Invalid predicate";
+static char __pyx_k_616[] = "Invalid expression";
+static char __pyx_k_617[] = "Missing closing curly brace";
+static char __pyx_k_618[] = "Unregistered function";
+static char __pyx_k_619[] = "Invalid operand";
+static char __pyx_k_620[] = "Invalid type";
+static char __pyx_k_621[] = "Invalid number of arguments";
+static char __pyx_k_622[] = "Invalid context size";
+static char __pyx_k_623[] = "Invalid context position";
+static char __pyx_k_624[] = "Memory allocation error";
+static char __pyx_k_625[] = "Syntax error";
+static char __pyx_k_626[] = "Resource error";
+static char __pyx_k_627[] = "Sub resource error";
+static char __pyx_k_628[] = "Undefined namespace prefix";
+static char __pyx_k_629[] = "Encoding error";
+static char __pyx_k_630[] = "Char out of XML range";
+static char __pyx_k_631[] = "Invalid or incomplete context";
+static char __pyx_k_632[] = "Stack usage error";
+static char __pyx_k_635[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi";
+static char __pyx_k_638[] = "_ElementStringResult.getparent";
+static char __pyx_k_641[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi";
+static char __pyx_k_642[] = "(\"[^\"]*\")|('[^']*')";
+static char __pyx_k_644[] = "({[^}]+})";
+static char __pyx_k_646[] = "Base class of all XSLT errors.\n ";
+static char __pyx_k_647[] = "Error parsing a stylesheet document.\n ";
+static char __pyx_k_648[] = "Error running an XSL transformation.\n ";
+static char __pyx_k_649[] = "Error serialising an XSLT result.\n ";
+static char __pyx_k_650[] = "Error registering an XSLT extension.\n ";
+static char __pyx_k_653[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi";
+static char __pyx_k_656[] = "set_global_max_depth";
+static char __pyx_k_657[] = "\\s+href\\s*=\\s*(?:\\'([^\\']*)\\'|\"([^\"]*)\")";
+static char __pyx_k_659[] = "Validation error.\n\n Raised by all document validators when their ``assertValid(tree)``\n method fails.\n ";
+static char __pyx_k_660[] = "Base class for DTD errors.\n ";
+static char __pyx_k_661[] = "Error while parsing a DTD.\n ";
+static char __pyx_k_662[] = "Error while validating an XML document with a DTD.\n ";
+static char __pyx_k_663[] = "Base class for RelaxNG errors.\n ";
+static char __pyx_k_664[] = "Error while parsing an XML document as RelaxNG.\n ";
+static char __pyx_k_665[] = "Error while validating an XML document with a RelaxNG schema.\n ";
+static char __pyx_k_666[] = "Base class of all XML Schema errors\n ";
+static char __pyx_k_667[] = "Error while parsing an XML document as XML Schema.\n ";
+static char __pyx_k_668[] = "Error while validating an XML document with an XML Schema.\n ";
+static char __pyx_k_669[] = "boolean(//xs:attribute[@default or @fixed][1])";
+static char __pyx_k_671[] = "Base class of all Schematron errors.\n ";
+static char __pyx_k_672[] = "Error while parsing an XML document as Schematron schema.\n ";
+static char __pyx_k_673[] = "Error while validating an XML document with a Schematron schema.\n ";
+static char __pyx_k_674[] = "XML (line 2950)";
+static char __pyx_k_675[] = "XML(text, parser=None, base_url=None)\n\n Parses an XML document or fragment from a string constant.\n Returns the root node (or the result returned by a parser target).\n This function can be used to embed \"XML literals\" in Python code,\n like in\n\n >>> root = etree.XML(\"<root><test/></root>\")\n\n To override the parser with a different ``XMLParser`` you can pass it to\n the ``parser`` keyword argument.\n\n The ``base_url`` keyword argument allows to set the original base URL of\n the document to support relative Paths when looking up external entities\n (DTD, XInclude, ...).\n ";
static char __pyx_k__Ok[] = "Ok";
static char __pyx_k__PI[] = "PI";
static char __pyx_k__dc[] = "dc";
static char __pyx_k__rexp[] = "rexp";
static char __pyx_k__root[] = "root";
static char __pyx_k__self[] = "self";
+static char __pyx_k__send[] = "send";
static char __pyx_k__sort[] = "sort";
static char __pyx_k__stop[] = "stop";
static char __pyx_k__tags[] = "tags";
static char __pyx_k__nsmap[] = "nsmap";
static char __pyx_k__occur[] = "occur";
static char __pyx_k__parse[] = "parse";
+static char __pyx_k__print[] = "print";
static char __pyx_k__range[] = "range";
static char __pyx_k__split[] = "split";
static char __pyx_k__start[] = "start";
static char __pyx_k__strip[] = "strip";
static char __pyx_k__super[] = "super";
+static char __pyx_k__throw[] = "throw";
static char __pyx_k__upper[] = "upper";
static char __pyx_k__value[] = "value";
static char __pyx_k__write[] = "write";
static char __pyx_k__SubElement[] = "SubElement";
static char __pyx_k__ValueError[] = "ValueError";
static char __pyx_k__XPathError[] = "XPathError";
+static char __pyx_k____import__[] = "__import__";
static char __pyx_k____module__[] = "__module__";
static char __pyx_k__byte_count[] = "byte_count";
static char __pyx_k__close_file[] = "close_file";
static char __pyx_k__ErrorDomains[] = "ErrorDomains";
static char __pyx_k__LXML_VERSION[] = "LXML_VERSION";
static char __pyx_k__RelaxNGError[] = "RelaxNGError";
+static char __pyx_k____qualname__[] = "__qualname__";
static char __pyx_k___elementpath[] = "_elementpath";
static char __pyx_k___exc_context[] = "_exc_context";
static char __pyx_k__filter_types[] = "filter_types";
static char __pyx_k__XSLTExtension[] = "XSLTExtension";
static char __pyx_k__XSLTSaveError[] = "XSLTSaveError";
static char __pyx_k____docformat__[] = "__docformat__";
+static char __pyx_k____metaclass__[] = "__metaclass__";
static char __pyx_k__class_mapping[] = "class_mapping";
static char __pyx_k__compresslevel[] = "compresslevel";
static char __pyx_k__default_value[] = "default_value";
static char __pyx_k___append_log_message[] = "_append_log_message";
static char __pyx_k__build_smart_strings[] = "build_smart_strings";
static PyObject *__pyx_kp_s_1;
-static PyObject *__pyx_kp_u_100;
-static PyObject *__pyx_kp_s_101;
-static PyObject *__pyx_kp_u_101;
-static PyObject *__pyx_kp_u_102;
-static PyObject *__pyx_kp_b_103;
-static PyObject *__pyx_kp_u_103;
-static PyObject *__pyx_kp_u_107;
+static PyObject *__pyx_kp_s_100;
+static PyObject *__pyx_kp_s_102;
+static PyObject *__pyx_kp_u_104;
+static PyObject *__pyx_kp_s_105;
+static PyObject *__pyx_kp_u_105;
+static PyObject *__pyx_kp_u_106;
static PyObject *__pyx_kp_b_108;
-static PyObject *__pyx_kp_s_108;
-static PyObject *__pyx_kp_s_109;
-static PyObject *__pyx_kp_u_11;
-static PyObject *__pyx_kp_u_116;
-static PyObject *__pyx_kp_u_117;
-static PyObject *__pyx_kp_u_12;
-static PyObject *__pyx_kp_u_122;
-static PyObject *__pyx_kp_u_123;
+static PyObject *__pyx_kp_u_108;
+static PyObject *__pyx_kp_u_115;
+static PyObject *__pyx_kp_b_116;
+static PyObject *__pyx_kp_s_116;
+static PyObject *__pyx_kp_s_117;
static PyObject *__pyx_kp_u_124;
-static PyObject *__pyx_kp_s_125;
-static PyObject *__pyx_kp_s_128;
-static PyObject *__pyx_kp_u_129;
-static PyObject *__pyx_kp_u_13;
+static PyObject *__pyx_kp_u_125;
static PyObject *__pyx_kp_u_130;
static PyObject *__pyx_kp_u_131;
static PyObject *__pyx_kp_u_132;
-static PyObject *__pyx_kp_u_133;
-static PyObject *__pyx_kp_s_135;
-static PyObject *__pyx_kp_u_136;
+static PyObject *__pyx_kp_s_133;
+static PyObject *__pyx_kp_s_136;
static PyObject *__pyx_kp_u_137;
static PyObject *__pyx_kp_u_138;
static PyObject *__pyx_kp_u_139;
-static PyObject *__pyx_kp_u_14;
-static PyObject *__pyx_kp_u_143;
+static PyObject *__pyx_kp_u_140;
+static PyObject *__pyx_kp_u_141;
+static PyObject *__pyx_kp_s_143;
static PyObject *__pyx_kp_u_144;
-static PyObject *__pyx_n_s_145;
+static PyObject *__pyx_kp_u_145;
static PyObject *__pyx_kp_u_146;
static PyObject *__pyx_kp_u_147;
-static PyObject *__pyx_kp_u_148;
-static PyObject *__pyx_kp_u_149;
static PyObject *__pyx_kp_u_15;
-static PyObject *__pyx_kp_u_150;
-static PyObject *__pyx_kp_s_151;
-static PyObject *__pyx_kp_u_152;
-static PyObject *__pyx_n_u_153;
+static PyObject *__pyx_kp_u_151;
+static PyObject *__pyx_kp_u_153;
+static PyObject *__pyx_n_s_154;
+static PyObject *__pyx_kp_u_155;
+static PyObject *__pyx_kp_u_156;
+static PyObject *__pyx_kp_u_157;
+static PyObject *__pyx_kp_u_158;
static PyObject *__pyx_kp_u_159;
static PyObject *__pyx_kp_u_16;
-static PyObject *__pyx_kp_u_160;
+static PyObject *__pyx_kp_s_160;
static PyObject *__pyx_kp_u_161;
-static PyObject *__pyx_kp_u_162;
-static PyObject *__pyx_kp_u_163;
-static PyObject *__pyx_kp_u_164;
-static PyObject *__pyx_n_s_165;
-static PyObject *__pyx_n_s_166;
-static PyObject *__pyx_kp_u_167;
+static PyObject *__pyx_n_u_162;
static PyObject *__pyx_kp_u_168;
static PyObject *__pyx_kp_u_169;
static PyObject *__pyx_kp_u_17;
-static PyObject *__pyx_n_s_170;
+static PyObject *__pyx_kp_u_170;
static PyObject *__pyx_kp_u_171;
static PyObject *__pyx_kp_u_172;
static PyObject *__pyx_kp_u_173;
-static PyObject *__pyx_kp_u_174;
+static PyObject *__pyx_n_s_174;
+static PyObject *__pyx_n_s_175;
+static PyObject *__pyx_kp_u_176;
+static PyObject *__pyx_kp_u_177;
+static PyObject *__pyx_kp_u_178;
+static PyObject *__pyx_n_s_179;
static PyObject *__pyx_kp_u_18;
+static PyObject *__pyx_kp_u_180;
+static PyObject *__pyx_kp_u_181;
+static PyObject *__pyx_kp_u_182;
+static PyObject *__pyx_kp_u_183;
static PyObject *__pyx_kp_u_19;
static PyObject *__pyx_kp_u_20;
-static PyObject *__pyx_kp_u_208;
-static PyObject *__pyx_kp_u_209;
-static PyObject *__pyx_kp_b_21;
-static PyObject *__pyx_kp_s_21;
static PyObject *__pyx_kp_u_21;
-static PyObject *__pyx_kp_u_211;
-static PyObject *__pyx_kp_u_212;
-static PyObject *__pyx_kp_u_213;
-static PyObject *__pyx_kp_u_214;
-static PyObject *__pyx_kp_u_215;
-static PyObject *__pyx_kp_u_216;
static PyObject *__pyx_kp_u_217;
static PyObject *__pyx_kp_u_218;
-static PyObject *__pyx_kp_u_219;
+static PyObject *__pyx_kp_u_22;
+static PyObject *__pyx_kp_u_220;
static PyObject *__pyx_kp_u_221;
static PyObject *__pyx_kp_u_222;
+static PyObject *__pyx_kp_u_223;
+static PyObject *__pyx_kp_u_224;
+static PyObject *__pyx_kp_u_225;
+static PyObject *__pyx_kp_u_226;
+static PyObject *__pyx_kp_u_227;
+static PyObject *__pyx_kp_u_228;
static PyObject *__pyx_kp_u_23;
-static PyObject *__pyx_kp_u_233;
-static PyObject *__pyx_kp_u_237;
-static PyObject *__pyx_kp_u_238;
-static PyObject *__pyx_kp_u_239;
+static PyObject *__pyx_kp_u_230;
+static PyObject *__pyx_kp_u_231;
static PyObject *__pyx_kp_u_24;
-static PyObject *__pyx_kp_s_241;
-static PyObject *__pyx_kp_s_243;
-static PyObject *__pyx_kp_b_245;
-static PyObject *__pyx_kp_s_246;
-static PyObject *__pyx_kp_u_249;
+static PyObject *__pyx_kp_u_242;
+static PyObject *__pyx_kp_u_246;
+static PyObject *__pyx_kp_u_247;
+static PyObject *__pyx_kp_u_248;
+static PyObject *__pyx_kp_b_25;
static PyObject *__pyx_kp_s_25;
-static PyObject *__pyx_kp_s_251;
-static PyObject *__pyx_kp_s_253;
-static PyObject *__pyx_kp_s_258;
-static PyObject *__pyx_kp_s_259;
-static PyObject *__pyx_kp_s_26;
-static PyObject *__pyx_kp_s_261;
-static PyObject *__pyx_kp_u_263;
-static PyObject *__pyx_kp_u_264;
-static PyObject *__pyx_kp_u_265;
-static PyObject *__pyx_kp_s_28;
-static PyObject *__pyx_kp_u_280;
-static PyObject *__pyx_kp_s_282;
-static PyObject *__pyx_kp_u_288;
-static PyObject *__pyx_kp_u_291;
+static PyObject *__pyx_kp_u_25;
+static PyObject *__pyx_kp_s_250;
+static PyObject *__pyx_kp_s_252;
+static PyObject *__pyx_kp_b_254;
+static PyObject *__pyx_kp_s_255;
+static PyObject *__pyx_kp_u_258;
+static PyObject *__pyx_kp_s_260;
+static PyObject *__pyx_kp_s_264;
+static PyObject *__pyx_kp_u_27;
+static PyObject *__pyx_kp_s_270;
+static PyObject *__pyx_kp_s_271;
+static PyObject *__pyx_kp_s_273;
+static PyObject *__pyx_kp_u_275;
+static PyObject *__pyx_kp_u_276;
+static PyObject *__pyx_kp_u_277;
+static PyObject *__pyx_kp_u_28;
+static PyObject *__pyx_kp_s_29;
static PyObject *__pyx_kp_u_292;
-static PyObject *__pyx_kp_u_293;
static PyObject *__pyx_kp_s_294;
-static PyObject *__pyx_kp_s_295;
-static PyObject *__pyx_kp_u_296;
-static PyObject *__pyx_kp_u_297;
-static PyObject *__pyx_kp_u_298;
-static PyObject *__pyx_kp_u_299;
+static PyObject *__pyx_kp_s_30;
static PyObject *__pyx_kp_u_300;
-static PyObject *__pyx_kp_u_301;
-static PyObject *__pyx_kp_u_302;
static PyObject *__pyx_kp_u_303;
-static PyObject *__pyx_kp_b_307;
-static PyObject *__pyx_kp_u_308;
+static PyObject *__pyx_kp_u_304;
+static PyObject *__pyx_kp_u_305;
+static PyObject *__pyx_kp_s_308;
static PyObject *__pyx_kp_s_309;
-static PyObject *__pyx_kp_u_31;
static PyObject *__pyx_kp_u_310;
static PyObject *__pyx_kp_u_311;
static PyObject *__pyx_kp_u_312;
static PyObject *__pyx_kp_u_313;
static PyObject *__pyx_kp_u_314;
-static PyObject *__pyx_n_s_315;
+static PyObject *__pyx_kp_u_315;
static PyObject *__pyx_kp_u_316;
static PyObject *__pyx_kp_u_317;
-static PyObject *__pyx_kp_u_319;
-static PyObject *__pyx_kp_u_32;
-static PyObject *__pyx_kp_u_320;
+static PyObject *__pyx_kp_s_32;
+static PyObject *__pyx_kp_b_321;
+static PyObject *__pyx_kp_u_322;
static PyObject *__pyx_kp_s_323;
-static PyObject *__pyx_kp_s_33;
-static PyObject *__pyx_kp_u_335;
-static PyObject *__pyx_kp_u_336;
-static PyObject *__pyx_kp_u_337;
-static PyObject *__pyx_kp_u_338;
-static PyObject *__pyx_kp_u_339;
-static PyObject *__pyx_kp_s_34;
-static PyObject *__pyx_kp_u_341;
-static PyObject *__pyx_kp_u_343;
-static PyObject *__pyx_kp_s_344;
-static PyObject *__pyx_kp_s_348;
-static PyObject *__pyx_kp_u_349;
-static PyObject *__pyx_kp_s_35;
+static PyObject *__pyx_kp_u_324;
+static PyObject *__pyx_kp_u_325;
+static PyObject *__pyx_kp_u_326;
+static PyObject *__pyx_kp_u_327;
+static PyObject *__pyx_kp_u_328;
+static PyObject *__pyx_n_s_329;
+static PyObject *__pyx_kp_u_330;
+static PyObject *__pyx_kp_u_331;
+static PyObject *__pyx_kp_u_333;
+static PyObject *__pyx_kp_u_334;
+static PyObject *__pyx_kp_s_337;
+static PyObject *__pyx_kp_u_35;
static PyObject *__pyx_kp_u_350;
static PyObject *__pyx_kp_u_351;
-static PyObject *__pyx_kp_b_353;
+static PyObject *__pyx_kp_u_352;
static PyObject *__pyx_kp_u_353;
static PyObject *__pyx_kp_u_354;
-static PyObject *__pyx_kp_u_355;
static PyObject *__pyx_kp_u_356;
-static PyObject *__pyx_kp_u_357;
static PyObject *__pyx_kp_u_358;
-static PyObject *__pyx_kp_u_359;
-static PyObject *__pyx_kp_s_36;
-static PyObject *__pyx_kp_u_360;
-static PyObject *__pyx_kp_s_361;
-static PyObject *__pyx_kp_u_363;
+static PyObject *__pyx_kp_s_359;
+static PyObject *__pyx_kp_u_36;
+static PyObject *__pyx_kp_s_363;
static PyObject *__pyx_kp_u_364;
+static PyObject *__pyx_kp_u_365;
+static PyObject *__pyx_kp_u_366;
+static PyObject *__pyx_kp_b_368;
+static PyObject *__pyx_kp_u_368;
static PyObject *__pyx_kp_u_369;
static PyObject *__pyx_kp_s_37;
static PyObject *__pyx_kp_u_370;
-static PyObject *__pyx_kp_s_371;
-static PyObject *__pyx_kp_s_372;
-static PyObject *__pyx_kp_s_373;
-static PyObject *__pyx_kp_s_374;
-static PyObject *__pyx_kp_u_376;
+static PyObject *__pyx_kp_u_371;
+static PyObject *__pyx_kp_u_372;
+static PyObject *__pyx_kp_u_373;
+static PyObject *__pyx_kp_u_374;
+static PyObject *__pyx_kp_u_375;
+static PyObject *__pyx_kp_s_376;
static PyObject *__pyx_kp_u_378;
static PyObject *__pyx_kp_u_379;
-static PyObject *__pyx_kp_u_38;
-static PyObject *__pyx_kp_s_380;
-static PyObject *__pyx_kp_u_381;
+static PyObject *__pyx_kp_s_38;
static PyObject *__pyx_kp_u_384;
-static PyObject *__pyx_kp_u_387;
-static PyObject *__pyx_kp_u_389;
+static PyObject *__pyx_kp_u_385;
+static PyObject *__pyx_kp_s_386;
+static PyObject *__pyx_kp_s_387;
+static PyObject *__pyx_kp_s_388;
+static PyObject *__pyx_kp_s_389;
static PyObject *__pyx_kp_s_39;
-static PyObject *__pyx_kp_u_390;
static PyObject *__pyx_kp_u_391;
-static PyObject *__pyx_kp_s_392;
-static PyObject *__pyx_n_s_393;
+static PyObject *__pyx_kp_u_393;
static PyObject *__pyx_kp_u_394;
-static PyObject *__pyx_kp_b_396;
+static PyObject *__pyx_kp_s_395;
static PyObject *__pyx_kp_u_396;
-static PyObject *__pyx_kp_u_397;
-static PyObject *__pyx_kp_u_398;
-static PyObject *__pyx_kp_s_399;
+static PyObject *__pyx_kp_u_399;
static PyObject *__pyx_kp_u_4;
-static PyObject *__pyx_n_s_40;
-static PyObject *__pyx_n_s_400;
-static PyObject *__pyx_kp_u_401;
-static PyObject *__pyx_kp_s_402;
-static PyObject *__pyx_kp_u_403;
-static PyObject *__pyx_n_s_405;
-static PyObject *__pyx_kp_u_407;
-static PyObject *__pyx_kp_s_408;
+static PyObject *__pyx_kp_s_40;
+static PyObject *__pyx_kp_u_402;
+static PyObject *__pyx_kp_u_404;
+static PyObject *__pyx_kp_u_405;
+static PyObject *__pyx_kp_u_406;
+static PyObject *__pyx_kp_s_407;
+static PyObject *__pyx_n_s_408;
+static PyObject *__pyx_kp_u_409;
static PyObject *__pyx_kp_s_41;
-static PyObject *__pyx_n_s_410;
+static PyObject *__pyx_kp_b_411;
static PyObject *__pyx_kp_u_411;
-static PyObject *__pyx_kp_b_412;
-static PyObject *__pyx_n_s_413;
+static PyObject *__pyx_kp_u_412;
+static PyObject *__pyx_kp_u_413;
static PyObject *__pyx_kp_s_414;
-static PyObject *__pyx_kp_b_415;
+static PyObject *__pyx_n_s_415;
+static PyObject *__pyx_kp_u_416;
+static PyObject *__pyx_kp_s_417;
+static PyObject *__pyx_kp_u_418;
static PyObject *__pyx_kp_u_42;
-static PyObject *__pyx_kp_u_43;
-static PyObject *__pyx_kp_u_44;
-static PyObject *__pyx_kp_u_45;
-static PyObject *__pyx_kp_u_453;
-static PyObject *__pyx_n_s_454;
-static PyObject *__pyx_n_s_455;
-static PyObject *__pyx_n_s_456;
-static PyObject *__pyx_n_s_457;
-static PyObject *__pyx_n_s_458;
-static PyObject *__pyx_n_s_459;
-static PyObject *__pyx_kp_s_46;
+static PyObject *__pyx_n_s_420;
+static PyObject *__pyx_kp_u_422;
+static PyObject *__pyx_kp_s_423;
+static PyObject *__pyx_n_s_425;
+static PyObject *__pyx_kp_u_426;
+static PyObject *__pyx_kp_b_427;
+static PyObject *__pyx_n_s_428;
+static PyObject *__pyx_kp_s_429;
+static PyObject *__pyx_kp_s_43;
+static PyObject *__pyx_kp_b_430;
+static PyObject *__pyx_n_s_44;
+static PyObject *__pyx_kp_s_45;
static PyObject *__pyx_kp_u_46;
-static PyObject *__pyx_n_s_460;
-static PyObject *__pyx_n_s_461;
-static PyObject *__pyx_n_s_462;
-static PyObject *__pyx_n_s_463;
-static PyObject *__pyx_n_s_464;
-static PyObject *__pyx_n_s_465;
-static PyObject *__pyx_kp_b_467;
-static PyObject *__pyx_kp_b_468;
-static PyObject *__pyx_kp_b_469;
-static PyObject *__pyx_kp_b_470;
-static PyObject *__pyx_kp_b_471;
-static PyObject *__pyx_kp_b_472;
-static PyObject *__pyx_kp_b_473;
-static PyObject *__pyx_kp_b_474;
-static PyObject *__pyx_kp_s_478;
+static PyObject *__pyx_kp_u_468;
+static PyObject *__pyx_n_s_469;
+static PyObject *__pyx_kp_u_47;
+static PyObject *__pyx_n_s_470;
+static PyObject *__pyx_n_s_471;
+static PyObject *__pyx_n_s_472;
+static PyObject *__pyx_n_s_473;
+static PyObject *__pyx_n_s_474;
+static PyObject *__pyx_n_s_475;
+static PyObject *__pyx_n_s_476;
+static PyObject *__pyx_n_s_477;
+static PyObject *__pyx_n_s_478;
static PyObject *__pyx_n_s_479;
-static PyObject *__pyx_n_s_483;
-static PyObject *__pyx_kp_s_484;
-static PyObject *__pyx_kp_s_485;
-static PyObject *__pyx_kp_s_486;
-static PyObject *__pyx_kp_u_487;
-static PyObject *__pyx_kp_u_489;
-static PyObject *__pyx_kp_u_490;
-static PyObject *__pyx_kp_s_492;
-static PyObject *__pyx_kp_s_496;
-static PyObject *__pyx_kp_s_497;
-static PyObject *__pyx_kp_s_498;
+static PyObject *__pyx_kp_u_48;
+static PyObject *__pyx_n_s_480;
+static PyObject *__pyx_kp_b_482;
+static PyObject *__pyx_kp_b_483;
+static PyObject *__pyx_kp_b_484;
+static PyObject *__pyx_kp_b_485;
+static PyObject *__pyx_kp_b_486;
+static PyObject *__pyx_kp_b_487;
+static PyObject *__pyx_kp_b_488;
+static PyObject *__pyx_kp_b_489;
+static PyObject *__pyx_kp_u_49;
+static PyObject *__pyx_kp_s_493;
+static PyObject *__pyx_n_s_494;
+static PyObject *__pyx_n_s_498;
static PyObject *__pyx_kp_s_499;
static PyObject *__pyx_kp_b_5;
static PyObject *__pyx_kp_u_5;
-static PyObject *__pyx_kp_u_500;
+static PyObject *__pyx_kp_s_50;
+static PyObject *__pyx_kp_u_50;
+static PyObject *__pyx_kp_s_500;
+static PyObject *__pyx_kp_s_501;
static PyObject *__pyx_kp_u_502;
static PyObject *__pyx_kp_u_504;
static PyObject *__pyx_kp_u_505;
-static PyObject *__pyx_kp_u_506;
-static PyObject *__pyx_kp_u_507;
-static PyObject *__pyx_kp_u_508;
-static PyObject *__pyx_kp_u_509;
-static PyObject *__pyx_kp_u_510;
-static PyObject *__pyx_kp_u_511;
-static PyObject *__pyx_kp_u_512;
-static PyObject *__pyx_kp_u_513;
-static PyObject *__pyx_kp_u_514;
-static PyObject *__pyx_kp_u_516;
-static PyObject *__pyx_kp_u_518;
-static PyObject *__pyx_kp_u_54;
-static PyObject *__pyx_kp_s_553;
-static PyObject *__pyx_kp_s_554;
-static PyObject *__pyx_kp_s_555;
-static PyObject *__pyx_kp_s_558;
-static PyObject *__pyx_kp_s_56;
-static PyObject *__pyx_kp_s_561;
-static PyObject *__pyx_n_s_562;
-static PyObject *__pyx_kp_s_563;
-static PyObject *__pyx_kp_s_564;
-static PyObject *__pyx_kp_s_565;
-static PyObject *__pyx_kp_u_57;
-static PyObject *__pyx_kp_s_571;
-static PyObject *__pyx_n_s_572;
+static PyObject *__pyx_kp_s_507;
+static PyObject *__pyx_kp_s_511;
+static PyObject *__pyx_kp_s_512;
+static PyObject *__pyx_kp_s_513;
+static PyObject *__pyx_kp_s_514;
+static PyObject *__pyx_kp_u_515;
+static PyObject *__pyx_kp_u_517;
+static PyObject *__pyx_kp_u_519;
+static PyObject *__pyx_kp_u_520;
+static PyObject *__pyx_kp_u_521;
+static PyObject *__pyx_kp_u_522;
+static PyObject *__pyx_kp_u_523;
+static PyObject *__pyx_kp_u_524;
+static PyObject *__pyx_kp_u_525;
+static PyObject *__pyx_kp_u_526;
+static PyObject *__pyx_kp_u_527;
+static PyObject *__pyx_kp_u_528;
+static PyObject *__pyx_kp_u_529;
+static PyObject *__pyx_kp_u_531;
+static PyObject *__pyx_kp_u_533;
+static PyObject *__pyx_kp_s_568;
+static PyObject *__pyx_kp_s_569;
+static PyObject *__pyx_kp_s_570;
static PyObject *__pyx_kp_s_573;
static PyObject *__pyx_kp_s_576;
+static PyObject *__pyx_n_s_577;
+static PyObject *__pyx_kp_s_578;
+static PyObject *__pyx_kp_s_579;
static PyObject *__pyx_kp_u_58;
-static PyObject *__pyx_kp_s_581;
-static PyObject *__pyx_kp_s_584;
-static PyObject *__pyx_kp_u_59;
+static PyObject *__pyx_kp_s_580;
+static PyObject *__pyx_kp_s_586;
+static PyObject *__pyx_n_s_587;
+static PyObject *__pyx_kp_s_588;
static PyObject *__pyx_kp_s_591;
-static PyObject *__pyx_kp_s_592;
-static PyObject *__pyx_kp_s_593;
-static PyObject *__pyx_kp_s_594;
-static PyObject *__pyx_kp_b_595;
-static PyObject *__pyx_kp_b_596;
-static PyObject *__pyx_kp_b_597;
-static PyObject *__pyx_kp_b_598;
-static PyObject *__pyx_kp_b_599;
-static PyObject *__pyx_kp_u_60;
-static PyObject *__pyx_kp_b_600;
-static PyObject *__pyx_kp_b_601;
-static PyObject *__pyx_kp_b_602;
-static PyObject *__pyx_kp_b_603;
-static PyObject *__pyx_kp_b_604;
-static PyObject *__pyx_kp_b_605;
-static PyObject *__pyx_kp_b_606;
-static PyObject *__pyx_kp_b_607;
-static PyObject *__pyx_kp_b_608;
-static PyObject *__pyx_kp_b_609;
+static PyObject *__pyx_kp_s_596;
+static PyObject *__pyx_kp_s_599;
+static PyObject *__pyx_kp_s_60;
+static PyObject *__pyx_kp_s_606;
+static PyObject *__pyx_kp_s_607;
+static PyObject *__pyx_kp_s_608;
+static PyObject *__pyx_kp_s_609;
static PyObject *__pyx_kp_u_61;
static PyObject *__pyx_kp_b_610;
static PyObject *__pyx_kp_b_611;
static PyObject *__pyx_kp_b_615;
static PyObject *__pyx_kp_b_616;
static PyObject *__pyx_kp_b_617;
+static PyObject *__pyx_kp_b_618;
+static PyObject *__pyx_kp_b_619;
static PyObject *__pyx_kp_u_62;
-static PyObject *__pyx_kp_s_620;
-static PyObject *__pyx_n_s_623;
-static PyObject *__pyx_kp_s_626;
+static PyObject *__pyx_kp_b_620;
+static PyObject *__pyx_kp_b_621;
+static PyObject *__pyx_kp_b_622;
+static PyObject *__pyx_kp_b_623;
+static PyObject *__pyx_kp_b_624;
+static PyObject *__pyx_kp_b_625;
+static PyObject *__pyx_kp_b_626;
static PyObject *__pyx_kp_b_627;
+static PyObject *__pyx_kp_b_628;
static PyObject *__pyx_kp_b_629;
static PyObject *__pyx_kp_u_63;
-static PyObject *__pyx_kp_s_631;
-static PyObject *__pyx_kp_s_632;
-static PyObject *__pyx_kp_s_633;
-static PyObject *__pyx_kp_s_634;
+static PyObject *__pyx_kp_b_630;
+static PyObject *__pyx_kp_b_631;
+static PyObject *__pyx_kp_b_632;
static PyObject *__pyx_kp_s_635;
-static PyObject *__pyx_kp_s_638;
+static PyObject *__pyx_n_s_638;
static PyObject *__pyx_kp_u_64;
-static PyObject *__pyx_n_s_641;
-static PyObject *__pyx_kp_u_642;
-static PyObject *__pyx_kp_s_644;
-static PyObject *__pyx_kp_s_645;
+static PyObject *__pyx_kp_s_641;
+static PyObject *__pyx_kp_b_642;
+static PyObject *__pyx_kp_b_644;
static PyObject *__pyx_kp_s_646;
static PyObject *__pyx_kp_s_647;
static PyObject *__pyx_kp_s_648;
static PyObject *__pyx_kp_s_649;
static PyObject *__pyx_kp_u_65;
static PyObject *__pyx_kp_s_650;
-static PyObject *__pyx_kp_s_651;
-static PyObject *__pyx_kp_s_652;
static PyObject *__pyx_kp_s_653;
-static PyObject *__pyx_kp_u_654;
-static PyObject *__pyx_kp_s_656;
-static PyObject *__pyx_kp_s_657;
-static PyObject *__pyx_kp_s_658;
-static PyObject *__pyx_kp_u_659;
+static PyObject *__pyx_n_s_656;
+static PyObject *__pyx_kp_u_657;
+static PyObject *__pyx_kp_s_659;
static PyObject *__pyx_kp_u_66;
-static PyObject *__pyx_kp_u_660;
+static PyObject *__pyx_kp_s_660;
+static PyObject *__pyx_kp_s_661;
+static PyObject *__pyx_kp_s_662;
+static PyObject *__pyx_kp_s_663;
+static PyObject *__pyx_kp_s_664;
+static PyObject *__pyx_kp_s_665;
+static PyObject *__pyx_kp_s_666;
+static PyObject *__pyx_kp_s_667;
+static PyObject *__pyx_kp_s_668;
+static PyObject *__pyx_kp_u_669;
static PyObject *__pyx_kp_u_67;
+static PyObject *__pyx_kp_s_671;
+static PyObject *__pyx_kp_s_672;
+static PyObject *__pyx_kp_s_673;
+static PyObject *__pyx_kp_u_674;
+static PyObject *__pyx_kp_u_675;
static PyObject *__pyx_kp_u_68;
static PyObject *__pyx_kp_u_69;
static PyObject *__pyx_kp_u_70;
static PyObject *__pyx_kp_u_71;
-static PyObject *__pyx_kp_u_76;
-static PyObject *__pyx_kp_u_77;
-static PyObject *__pyx_n_s_78;
-static PyObject *__pyx_kp_u_79;
+static PyObject *__pyx_kp_u_72;
+static PyObject *__pyx_kp_u_73;
+static PyObject *__pyx_kp_u_74;
+static PyObject *__pyx_kp_u_75;
static PyObject *__pyx_kp_u_80;
static PyObject *__pyx_kp_u_81;
-static PyObject *__pyx_kp_u_82;
+static PyObject *__pyx_n_s_82;
static PyObject *__pyx_kp_u_83;
static PyObject *__pyx_kp_u_84;
-static PyObject *__pyx_n_s_85;
+static PyObject *__pyx_kp_u_85;
static PyObject *__pyx_kp_u_86;
static PyObject *__pyx_kp_u_87;
static PyObject *__pyx_kp_u_88;
static PyObject *__pyx_n_s_89;
-static PyObject *__pyx_kp_s_94;
-static PyObject *__pyx_kp_s_96;
+static PyObject *__pyx_kp_u_90;
+static PyObject *__pyx_kp_u_91;
+static PyObject *__pyx_kp_u_92;
+static PyObject *__pyx_n_s_93;
static PyObject *__pyx_kp_s_98;
static PyObject *__pyx_n_b__A;
static PyObject *__pyx_n_b__ASCII;
static PyObject *__pyx_n_s____exit__;
static PyObject *__pyx_n_s____getattribute__;
static PyObject *__pyx_n_s____hash__;
+static PyObject *__pyx_n_s____import__;
static PyObject *__pyx_n_s____init__;
static PyObject *__pyx_n_s____main__;
+static PyObject *__pyx_n_s____metaclass__;
static PyObject *__pyx_n_s____module__;
static PyObject *__pyx_n_s____name__;
static PyObject *__pyx_n_s____next__;
+static PyObject *__pyx_n_s____qualname__;
static PyObject *__pyx_n_s____test__;
static PyObject *__pyx_n_s____unicode__;
static PyObject *__pyx_n_s____version__;
static PyObject *__pyx_n_s__prefix;
static PyObject *__pyx_n_s__prefix_utf;
static PyObject *__pyx_n_s__pretty_print;
+static PyObject *__pyx_n_s__print;
static PyObject *__pyx_n_s__profile_run;
static PyObject *__pyx_n_s__public_id;
static PyObject *__pyx_n_b__py;
static PyObject *__pyx_n_s__search;
static PyObject *__pyx_n_s__self;
static PyObject *__pyx_n_s__self_node;
+static PyObject *__pyx_n_s__send;
static PyObject *__pyx_n_s__seq;
static PyObject *__pyx_n_s__set_default_parser;
static PyObject *__pyx_n_s__smart_strings;
static PyObject *__pyx_n_b__test;
static PyObject *__pyx_n_s__test;
static PyObject *__pyx_n_s__text;
+static PyObject *__pyx_n_s__throw;
static PyObject *__pyx_n_s__tostring;
static PyObject *__pyx_n_s__tostringlist;
static PyObject *__pyx_n_s__tounicode;
static PyObject *__pyx_n_s__xslt_input;
static PyObject *__pyx_int_0;
static PyObject *__pyx_int_1;
+static PyObject *__pyx_int_2;
+static PyObject *__pyx_int_3;
+static PyObject *__pyx_int_4;
+static PyObject *__pyx_int_5;
static PyObject *__pyx_int_neg_1;
static PyObject *__pyx_int_100;
static PyObject *__pyx_int_neg_100;
static PyObject *__pyx_int_neg_200;
static PyObject *__pyx_int_neg_300;
static PyObject *__pyx_int_32768;
-static PyObject *__pyx_k_72;
-static PyObject *__pyx_k_73;
-static PyObject *__pyx_k_74;
-static PyObject *__pyx_k_75;
-static PyObject *__pyx_k_90;
-static PyObject *__pyx_k_91;
-static PyObject *__pyx_k_92;
-static PyObject *__pyx_k_93;
-static PyObject *__pyx_k_104;
-static PyObject *__pyx_k_105;
-static PyObject *__pyx_k_106;
-static PyObject *__pyx_k_110;
-static PyObject *__pyx_k_111;
+static PyObject *__pyx_k_76;
+static PyObject *__pyx_k_77;
+static PyObject *__pyx_k_78;
+static PyObject *__pyx_k_79;
+static PyObject *__pyx_k_94;
+static PyObject *__pyx_k_95;
+static PyObject *__pyx_k_96;
+static PyObject *__pyx_k_97;
static PyObject *__pyx_k_112;
static PyObject *__pyx_k_113;
+static PyObject *__pyx_k_114;
static PyObject *__pyx_k_118;
+static PyObject *__pyx_k_119;
+static PyObject *__pyx_k_120;
+static PyObject *__pyx_k_121;
static PyObject *__pyx_k_126;
-static PyObject *__pyx_k_175;
-static PyObject *__pyx_k_176;
-static PyObject *__pyx_k_177;
-static PyObject *__pyx_k_178;
-static PyObject *__pyx_k_179;
-static PyObject *__pyx_k_180;
-static PyObject *__pyx_k_181;
-static PyObject *__pyx_k_182;
-static PyObject *__pyx_k_183;
+static PyObject *__pyx_k_134;
static PyObject *__pyx_k_184;
static PyObject *__pyx_k_185;
static PyObject *__pyx_k_186;
static PyObject *__pyx_k_205;
static PyObject *__pyx_k_206;
static PyObject *__pyx_k_207;
-static PyObject *__pyx_k_268;
-static PyObject *__pyx_k_269;
-static PyObject *__pyx_k_270;
-static PyObject *__pyx_k_271;
-static PyObject *__pyx_k_272;
-static PyObject *__pyx_k_273;
-static PyObject *__pyx_k_274;
-static PyObject *__pyx_k_275;
-static PyObject *__pyx_k_276;
-static PyObject *__pyx_k_277;
-static PyObject *__pyx_k_278;
-static PyObject *__pyx_k_279;
-static PyObject *__pyx_k_321;
-static PyObject *__pyx_k_322;
-static PyObject *__pyx_k_324;
-static PyObject *__pyx_k_325;
-static PyObject *__pyx_k_326;
-static PyObject *__pyx_k_327;
-static PyObject *__pyx_k_328;
-static PyObject *__pyx_k_329;
-static PyObject *__pyx_k_330;
-static PyObject *__pyx_k_331;
+static PyObject *__pyx_k_208;
+static PyObject *__pyx_k_209;
+static PyObject *__pyx_k_210;
+static PyObject *__pyx_k_211;
+static PyObject *__pyx_k_212;
+static PyObject *__pyx_k_213;
+static PyObject *__pyx_k_214;
+static PyObject *__pyx_k_215;
+static PyObject *__pyx_k_216;
+static PyObject *__pyx_k_280;
+static PyObject *__pyx_k_281;
+static PyObject *__pyx_k_282;
+static PyObject *__pyx_k_283;
+static PyObject *__pyx_k_284;
+static PyObject *__pyx_k_285;
+static PyObject *__pyx_k_286;
+static PyObject *__pyx_k_287;
+static PyObject *__pyx_k_288;
+static PyObject *__pyx_k_289;
+static PyObject *__pyx_k_290;
+static PyObject *__pyx_k_291;
+static PyObject *__pyx_k_335;
+static PyObject *__pyx_k_336;
+static PyObject *__pyx_k_338;
+static PyObject *__pyx_k_339;
static PyObject *__pyx_k_340;
-static PyObject *__pyx_k_346;
-static PyObject *__pyx_k_347;
-static PyObject *__pyx_k_395;
+static PyObject *__pyx_k_341;
+static PyObject *__pyx_k_342;
+static PyObject *__pyx_k_343;
+static PyObject *__pyx_k_344;
+static PyObject *__pyx_k_345;
+static PyObject *__pyx_k_355;
+static PyObject *__pyx_k_361;
+static PyObject *__pyx_k_362;
+static PyObject *__pyx_k_410;
+static PyObject *__pyx_k_slice_8;
static PyObject *__pyx_k_tuple_2;
static PyObject *__pyx_k_tuple_3;
static PyObject *__pyx_k_tuple_6;
static PyObject *__pyx_k_tuple_7;
-static PyObject *__pyx_k_tuple_8;
static PyObject *__pyx_k_tuple_9;
-static PyObject *__pyx_k_tuple_10;
-static PyObject *__pyx_k_tuple_27;
-static PyObject *__pyx_k_tuple_29;
-static PyObject *__pyx_k_tuple_30;
-static PyObject *__pyx_k_tuple_47;
-static PyObject *__pyx_k_tuple_55;
-static PyObject *__pyx_k_tuple_95;
-static PyObject *__pyx_k_tuple_97;
+static PyObject *__pyx_k_slice_10;
+static PyObject *__pyx_k_slice_12;
+static PyObject *__pyx_k_slice_14;
+static PyObject *__pyx_k_tuple_11;
+static PyObject *__pyx_k_tuple_13;
+static PyObject *__pyx_k_tuple_31;
+static PyObject *__pyx_k_tuple_33;
+static PyObject *__pyx_k_tuple_34;
+static PyObject *__pyx_k_tuple_51;
+static PyObject *__pyx_k_tuple_59;
static PyObject *__pyx_k_tuple_99;
-static PyObject *__pyx_k_slice_127;
-static PyObject *__pyx_k_tuple_114;
-static PyObject *__pyx_k_tuple_115;
-static PyObject *__pyx_k_tuple_119;
-static PyObject *__pyx_k_tuple_120;
-static PyObject *__pyx_k_tuple_121;
-static PyObject *__pyx_k_tuple_134;
-static PyObject *__pyx_k_tuple_210;
-static PyObject *__pyx_k_tuple_220;
-static PyObject *__pyx_k_tuple_240;
-static PyObject *__pyx_k_tuple_242;
-static PyObject *__pyx_k_tuple_244;
-static PyObject *__pyx_k_tuple_247;
-static PyObject *__pyx_k_tuple_252;
-static PyObject *__pyx_k_tuple_254;
+static PyObject *__pyx_k_slice_107;
+static PyObject *__pyx_k_slice_109;
+static PyObject *__pyx_k_slice_110;
+static PyObject *__pyx_k_slice_111;
+static PyObject *__pyx_k_slice_135;
+static PyObject *__pyx_k_slice_152;
+static PyObject *__pyx_k_slice_262;
+static PyObject *__pyx_k_slice_263;
+static PyObject *__pyx_k_slice_266;
+static PyObject *__pyx_k_slice_306;
+static PyObject *__pyx_k_slice_307;
+static PyObject *__pyx_k_slice_347;
+static PyObject *__pyx_k_tuple_101;
+static PyObject *__pyx_k_tuple_103;
+static PyObject *__pyx_k_tuple_122;
+static PyObject *__pyx_k_tuple_123;
+static PyObject *__pyx_k_tuple_127;
+static PyObject *__pyx_k_tuple_128;
+static PyObject *__pyx_k_tuple_129;
+static PyObject *__pyx_k_tuple_142;
+static PyObject *__pyx_k_tuple_219;
+static PyObject *__pyx_k_tuple_229;
+static PyObject *__pyx_k_tuple_249;
+static PyObject *__pyx_k_tuple_251;
+static PyObject *__pyx_k_tuple_253;
static PyObject *__pyx_k_tuple_256;
-static PyObject *__pyx_k_tuple_257;
-static PyObject *__pyx_k_tuple_260;
-static PyObject *__pyx_k_tuple_262;
-static PyObject *__pyx_k_tuple_266;
-static PyObject *__pyx_k_tuple_267;
-static PyObject *__pyx_k_tuple_281;
-static PyObject *__pyx_k_tuple_283;
-static PyObject *__pyx_k_tuple_284;
-static PyObject *__pyx_k_tuple_285;
-static PyObject *__pyx_k_tuple_286;
-static PyObject *__pyx_k_tuple_287;
-static PyObject *__pyx_k_tuple_289;
-static PyObject *__pyx_k_tuple_290;
-static PyObject *__pyx_k_tuple_304;
-static PyObject *__pyx_k_tuple_305;
-static PyObject *__pyx_k_tuple_306;
+static PyObject *__pyx_k_tuple_261;
+static PyObject *__pyx_k_tuple_265;
+static PyObject *__pyx_k_tuple_268;
+static PyObject *__pyx_k_tuple_269;
+static PyObject *__pyx_k_tuple_272;
+static PyObject *__pyx_k_tuple_274;
+static PyObject *__pyx_k_tuple_278;
+static PyObject *__pyx_k_tuple_279;
+static PyObject *__pyx_k_tuple_293;
+static PyObject *__pyx_k_tuple_295;
+static PyObject *__pyx_k_tuple_296;
+static PyObject *__pyx_k_tuple_297;
+static PyObject *__pyx_k_tuple_298;
+static PyObject *__pyx_k_tuple_299;
+static PyObject *__pyx_k_tuple_301;
+static PyObject *__pyx_k_tuple_302;
static PyObject *__pyx_k_tuple_318;
-static PyObject *__pyx_k_tuple_333;
-static PyObject *__pyx_k_tuple_342;
-static PyObject *__pyx_k_tuple_345;
-static PyObject *__pyx_k_tuple_352;
-static PyObject *__pyx_k_tuple_365;
-static PyObject *__pyx_k_tuple_375;
-static PyObject *__pyx_k_tuple_377;
-static PyObject *__pyx_k_tuple_382;
-static PyObject *__pyx_k_tuple_383;
-static PyObject *__pyx_k_tuple_385;
-static PyObject *__pyx_k_tuple_388;
-static PyObject *__pyx_k_tuple_404;
-static PyObject *__pyx_k_tuple_406;
-static PyObject *__pyx_k_tuple_409;
-static PyObject *__pyx_k_tuple_466;
-static PyObject *__pyx_k_tuple_475;
-static PyObject *__pyx_k_tuple_476;
-static PyObject *__pyx_k_tuple_480;
-static PyObject *__pyx_k_tuple_482;
-static PyObject *__pyx_k_tuple_488;
-static PyObject *__pyx_k_tuple_493;
-static PyObject *__pyx_k_tuple_494;
-static PyObject *__pyx_k_tuple_501;
+static PyObject *__pyx_k_tuple_319;
+static PyObject *__pyx_k_tuple_320;
+static PyObject *__pyx_k_tuple_332;
+static PyObject *__pyx_k_tuple_348;
+static PyObject *__pyx_k_tuple_357;
+static PyObject *__pyx_k_tuple_360;
+static PyObject *__pyx_k_tuple_367;
+static PyObject *__pyx_k_tuple_380;
+static PyObject *__pyx_k_tuple_390;
+static PyObject *__pyx_k_tuple_392;
+static PyObject *__pyx_k_tuple_397;
+static PyObject *__pyx_k_tuple_398;
+static PyObject *__pyx_k_tuple_400;
+static PyObject *__pyx_k_tuple_403;
+static PyObject *__pyx_k_tuple_419;
+static PyObject *__pyx_k_tuple_421;
+static PyObject *__pyx_k_tuple_424;
+static PyObject *__pyx_k_tuple_481;
+static PyObject *__pyx_k_tuple_490;
+static PyObject *__pyx_k_tuple_491;
+static PyObject *__pyx_k_tuple_495;
+static PyObject *__pyx_k_tuple_497;
static PyObject *__pyx_k_tuple_503;
-static PyObject *__pyx_k_tuple_515;
-static PyObject *__pyx_k_tuple_517;
-static PyObject *__pyx_k_tuple_519;
-static PyObject *__pyx_k_tuple_521;
-static PyObject *__pyx_k_tuple_523;
-static PyObject *__pyx_k_tuple_525;
-static PyObject *__pyx_k_tuple_527;
-static PyObject *__pyx_k_tuple_529;
-static PyObject *__pyx_k_tuple_531;
-static PyObject *__pyx_k_tuple_533;
-static PyObject *__pyx_k_tuple_535;
-static PyObject *__pyx_k_tuple_537;
-static PyObject *__pyx_k_tuple_539;
-static PyObject *__pyx_k_tuple_541;
-static PyObject *__pyx_k_tuple_543;
-static PyObject *__pyx_k_tuple_545;
-static PyObject *__pyx_k_tuple_547;
-static PyObject *__pyx_k_tuple_549;
-static PyObject *__pyx_k_tuple_551;
+static PyObject *__pyx_k_tuple_508;
+static PyObject *__pyx_k_tuple_509;
+static PyObject *__pyx_k_tuple_516;
+static PyObject *__pyx_k_tuple_518;
+static PyObject *__pyx_k_tuple_530;
+static PyObject *__pyx_k_tuple_532;
+static PyObject *__pyx_k_tuple_534;
+static PyObject *__pyx_k_tuple_536;
+static PyObject *__pyx_k_tuple_538;
+static PyObject *__pyx_k_tuple_540;
+static PyObject *__pyx_k_tuple_542;
+static PyObject *__pyx_k_tuple_544;
+static PyObject *__pyx_k_tuple_546;
+static PyObject *__pyx_k_tuple_548;
+static PyObject *__pyx_k_tuple_550;
+static PyObject *__pyx_k_tuple_552;
+static PyObject *__pyx_k_tuple_554;
static PyObject *__pyx_k_tuple_556;
-static PyObject *__pyx_k_tuple_559;
+static PyObject *__pyx_k_tuple_558;
+static PyObject *__pyx_k_tuple_560;
+static PyObject *__pyx_k_tuple_562;
+static PyObject *__pyx_k_tuple_564;
static PyObject *__pyx_k_tuple_566;
-static PyObject *__pyx_k_tuple_569;
+static PyObject *__pyx_k_tuple_571;
static PyObject *__pyx_k_tuple_574;
-static PyObject *__pyx_k_tuple_577;
-static PyObject *__pyx_k_tuple_579;
-static PyObject *__pyx_k_tuple_582;
-static PyObject *__pyx_k_tuple_585;
-static PyObject *__pyx_k_tuple_587;
+static PyObject *__pyx_k_tuple_581;
+static PyObject *__pyx_k_tuple_584;
static PyObject *__pyx_k_tuple_589;
-static PyObject *__pyx_k_tuple_618;
-static PyObject *__pyx_k_tuple_621;
-static PyObject *__pyx_k_tuple_624;
-static PyObject *__pyx_k_tuple_628;
-static PyObject *__pyx_k_tuple_630;
+static PyObject *__pyx_k_tuple_592;
+static PyObject *__pyx_k_tuple_594;
+static PyObject *__pyx_k_tuple_597;
+static PyObject *__pyx_k_tuple_600;
+static PyObject *__pyx_k_tuple_602;
+static PyObject *__pyx_k_tuple_604;
+static PyObject *__pyx_k_tuple_633;
static PyObject *__pyx_k_tuple_636;
static PyObject *__pyx_k_tuple_639;
static PyObject *__pyx_k_tuple_643;
-static PyObject *__pyx_k_tuple_655;
-static PyObject *__pyx_k_codeobj_477;
-static PyObject *__pyx_k_codeobj_481;
-static PyObject *__pyx_k_codeobj_491;
-static PyObject *__pyx_k_codeobj_495;
-static PyObject *__pyx_k_codeobj_520;
-static PyObject *__pyx_k_codeobj_522;
-static PyObject *__pyx_k_codeobj_524;
-static PyObject *__pyx_k_codeobj_526;
-static PyObject *__pyx_k_codeobj_528;
-static PyObject *__pyx_k_codeobj_530;
-static PyObject *__pyx_k_codeobj_532;
-static PyObject *__pyx_k_codeobj_534;
-static PyObject *__pyx_k_codeobj_536;
-static PyObject *__pyx_k_codeobj_538;
-static PyObject *__pyx_k_codeobj_540;
-static PyObject *__pyx_k_codeobj_542;
-static PyObject *__pyx_k_codeobj_544;
-static PyObject *__pyx_k_codeobj_546;
-static PyObject *__pyx_k_codeobj_548;
-static PyObject *__pyx_k_codeobj_550;
-static PyObject *__pyx_k_codeobj_552;
+static PyObject *__pyx_k_tuple_645;
+static PyObject *__pyx_k_tuple_651;
+static PyObject *__pyx_k_tuple_654;
+static PyObject *__pyx_k_tuple_658;
+static PyObject *__pyx_k_tuple_670;
+static PyObject *__pyx_k_codeobj_492;
+static PyObject *__pyx_k_codeobj_496;
+static PyObject *__pyx_k_codeobj_506;
+static PyObject *__pyx_k_codeobj_510;
+static PyObject *__pyx_k_codeobj_535;
+static PyObject *__pyx_k_codeobj_537;
+static PyObject *__pyx_k_codeobj_539;
+static PyObject *__pyx_k_codeobj_541;
+static PyObject *__pyx_k_codeobj_543;
+static PyObject *__pyx_k_codeobj_545;
+static PyObject *__pyx_k_codeobj_547;
+static PyObject *__pyx_k_codeobj_549;
+static PyObject *__pyx_k_codeobj_551;
+static PyObject *__pyx_k_codeobj_553;
+static PyObject *__pyx_k_codeobj_555;
static PyObject *__pyx_k_codeobj_557;
-static PyObject *__pyx_k_codeobj_560;
+static PyObject *__pyx_k_codeobj_559;
+static PyObject *__pyx_k_codeobj_561;
+static PyObject *__pyx_k_codeobj_563;
+static PyObject *__pyx_k_codeobj_565;
static PyObject *__pyx_k_codeobj_567;
-static PyObject *__pyx_k_codeobj_568;
-static PyObject *__pyx_k_codeobj_570;
+static PyObject *__pyx_k_codeobj_572;
static PyObject *__pyx_k_codeobj_575;
-static PyObject *__pyx_k_codeobj_578;
-static PyObject *__pyx_k_codeobj_580;
+static PyObject *__pyx_k_codeobj_582;
static PyObject *__pyx_k_codeobj_583;
-static PyObject *__pyx_k_codeobj_586;
-static PyObject *__pyx_k_codeobj_588;
+static PyObject *__pyx_k_codeobj_585;
static PyObject *__pyx_k_codeobj_590;
-static PyObject *__pyx_k_codeobj_619;
-static PyObject *__pyx_k_codeobj_622;
-static PyObject *__pyx_k_codeobj_625;
+static PyObject *__pyx_k_codeobj_593;
+static PyObject *__pyx_k_codeobj_595;
+static PyObject *__pyx_k_codeobj_598;
+static PyObject *__pyx_k_codeobj_601;
+static PyObject *__pyx_k_codeobj_603;
+static PyObject *__pyx_k_codeobj_605;
+static PyObject *__pyx_k_codeobj_634;
static PyObject *__pyx_k_codeobj_637;
static PyObject *__pyx_k_codeobj_640;
+static PyObject *__pyx_k_codeobj_652;
+static PyObject *__pyx_k_codeobj_655;
/* Python wrapper */
static PyObject *__pyx_pw_4lxml_5etree_1register_namespace(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_4lxml_5etree_1register_namespace(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_prefix = 0;
PyObject *__pyx_v_uri = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("register_namespace (wrapper)", 0);
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "items");
{__pyx_filename = __pyx_f[0]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
- __pyx_t_1 = PyDict_Items(__pyx_v_4lxml_5etree__DEFAULT_NAMESPACE_PREFIXES); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyDict_Items(__pyx_v_4lxml_5etree__DEFAULT_NAMESPACE_PREFIXES); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_message = 0;
PyObject *__pyx_v_error_log = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
__pyx_t_3 = PyObject_Call(__pyx_builtin_super, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
- __pyx_t_2 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s____init__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s____init__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
*/
__pyx_t_3 = __pyx_f_4lxml_5etree___copyGlobalErrorLog(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 188; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
- if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__error_log, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 188; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s__error_log, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 188; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
goto __pyx_L4;
}
*
* cdef object _Error = Error if python.PY_VERSION_HEX >= 0x02050000 else None
*/
- __pyx_t_3 = PyObject_GetAttr(__pyx_v_error_log, __pyx_n_s__copy); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_error_log, __pyx_n_s__copy); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_4 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__error_log, __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s__error_log, __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
}
__pyx_L4:;
* for item in l:
* try:
*/
- __pyx_t_1 = PyObject_GetAttr(__pyx_v_version, __pyx_n_s__decode); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_version, __pyx_n_s__decode); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_k_tuple_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__replace); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s__replace); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_k_tuple_6), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__split); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s__split); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_k_tuple_7), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
- __pyx_t_1 = __Pyx_PySequence_GetSlice(__pyx_t_3, 0, 4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetSlice(__pyx_t_3, 0, 4, NULL, NULL, &__pyx_k_slice_8, 0, 1, 1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_v_l = __pyx_t_1;
* count = item[3:]
* item = -300
*/
- __pyx_t_11 = PyObject_GetAttr(__pyx_v_item, __pyx_n_s__startswith); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
+ __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_item, __pyx_n_s__startswith); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
__Pyx_GOTREF(__pyx_t_11);
- __pyx_t_12 = PyObject_Call(__pyx_t_11, ((PyObject *)__pyx_k_tuple_8), NULL); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
+ __pyx_t_12 = PyObject_Call(__pyx_t_11, ((PyObject *)__pyx_k_tuple_9), NULL); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely(__pyx_t_13 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
* item = -300
* elif item.startswith(u'alpha'):
*/
- __pyx_t_12 = __Pyx_PySequence_GetSlice(__pyx_v_item, 3, PY_SSIZE_T_MAX); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 216; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
+ __pyx_t_12 = __Pyx_PyObject_GetSlice(__pyx_v_item, 3, 0, NULL, NULL, &__pyx_k_slice_10, 1, 0, 1); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 216; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
__Pyx_GOTREF(__pyx_t_12);
__Pyx_XDECREF(__pyx_v_count);
__pyx_v_count = __pyx_t_12;
* count = item[5:]
* item = -200
*/
- __pyx_t_12 = PyObject_GetAttr(__pyx_v_item, __pyx_n_s__startswith); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
+ __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_item, __pyx_n_s__startswith); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
__Pyx_GOTREF(__pyx_t_12);
- __pyx_t_11 = PyObject_Call(__pyx_t_12, ((PyObject *)__pyx_k_tuple_9), NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
+ __pyx_t_11 = PyObject_Call(__pyx_t_12, ((PyObject *)__pyx_k_tuple_11), NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
__Pyx_GOTREF(__pyx_t_11);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_13 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
* item = -200
* elif item.startswith(u'beta'):
*/
- __pyx_t_11 = __Pyx_PySequence_GetSlice(__pyx_v_item, 5, PY_SSIZE_T_MAX); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
+ __pyx_t_11 = __Pyx_PyObject_GetSlice(__pyx_v_item, 5, 0, NULL, NULL, &__pyx_k_slice_12, 1, 0, 1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
__Pyx_GOTREF(__pyx_t_11);
__Pyx_XDECREF(__pyx_v_count);
__pyx_v_count = __pyx_t_11;
* count = item[4:]
* item = -100
*/
- __pyx_t_11 = PyObject_GetAttr(__pyx_v_item, __pyx_n_s__startswith); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
+ __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_item, __pyx_n_s__startswith); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
__Pyx_GOTREF(__pyx_t_11);
- __pyx_t_12 = PyObject_Call(__pyx_t_11, ((PyObject *)__pyx_k_tuple_10), NULL); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
+ __pyx_t_12 = PyObject_Call(__pyx_t_11, ((PyObject *)__pyx_k_tuple_13), NULL); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely(__pyx_t_13 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
* item = -100
* else:
*/
- __pyx_t_12 = __Pyx_PySequence_GetSlice(__pyx_v_item, 4, PY_SSIZE_T_MAX); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
+ __pyx_t_12 = __Pyx_PyObject_GetSlice(__pyx_v_item, 4, 0, NULL, NULL, &__pyx_k_slice_14, 1, 0, 1); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
__Pyx_GOTREF(__pyx_t_12);
__Pyx_XDECREF(__pyx_v_count);
__pyx_v_count = __pyx_t_12;
* return tuple(version_list)
*
*/
- __pyx_t_14 = PyList_Append(__pyx_v_version_list, __pyx_v_item); if (unlikely(__pyx_t_14 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 228; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_version_list, __pyx_v_item); if (unlikely(__pyx_t_14 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 228; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append");
{__pyx_filename = __pyx_f[0]; __pyx_lineno = 263; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
- __pyx_t_1 = PyList_Append(__pyx_v_self->_storage, __pyx_v_obj); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 263; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyList_Append(__pyx_v_self->_storage, __pyx_v_obj); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 263; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":264
* cdef int add(self, obj) except -1:
* return 0
*
*/
- if (__Pyx_PySequence_DelSlice(((PyObject *)__pyx_v_self->_storage), 0, PY_SSIZE_T_MAX) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 267; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (unlikely(((PyObject *)__pyx_v_self->_storage) == Py_None)) {
+ PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
+ {__pyx_filename = __pyx_f[0]; __pyx_lineno = 267; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ }
+ if (__Pyx_PyObject_DelSlice(((PyObject *)__pyx_v_self->_storage), 0, 0, NULL, NULL, NULL, 0, 0, 1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 267; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":268
* cdef int clear(self) except -1:
*
* cdef void _store_exception(self, exception):
*/
- __pyx_t_1 = PyObject_GetAttr(__pyx_v_4lxml_5etree_sys, __pyx_n_s__exc_info); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 278; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_sys, __pyx_n_s__exc_info); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 278; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 278; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
*/
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!(!__pyx_f_4lxml_5etree_hasProxy(__pyx_v_c_node)))) {
- PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_u_11));
+ PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_u_15));
{__pyx_filename = __pyx_f[3]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
#endif
*/
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!(__pyx_v_c_node->_private == ((void *)__pyx_v_proxy)))) {
- PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_u_12));
+ PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_u_16));
{__pyx_filename = __pyx_f[3]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
#endif
* c_child = c_node.children
* while c_child is not NULL:
*/
- __pyx_t_1 = PyNumber_Multiply(__pyx_v_indent, ((PyObject *)__pyx_kp_u_13)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyNumber_Multiply(__pyx_v_indent, ((PyObject *)__pyx_kp_u_17)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyInt_FromLong(((long)__pyx_v_c_node)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_2 = PyObject_Call(__pyx_builtin_id, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
- __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_14), __pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_18), __pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_1));
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_t_1));
__pyx_t_2 = PyObject_Call(__pyx_builtin_id, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
- __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_15), __pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_19), __pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_1));
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_t_1));
* if doc is None:
* raise ValueError, u"Input object has no document: %s" % \
*/
- __pyx_t_2 = PyBytes_FromString(_fqtypename(__pyx_v_input)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyBytes_FromString(_fqtypename(__pyx_v_input)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_2));
- __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_16), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_20), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_3));
__Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
__Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_t_3), 0, 0);
* _assertValidDoc(doc)
* return doc
*/
- __pyx_t_3 = PyBytes_FromString(_fqtypename(__pyx_v_input)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyBytes_FromString(_fqtypename(__pyx_v_input)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_3));
- __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_17), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_21), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_2));
__Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
__Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_2), 0, 0);
* if node is None:
* raise ValueError, u"Input object has no element: %s" % \
*/
- __pyx_t_2 = PyBytes_FromString(_fqtypename(__pyx_v_input)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyBytes_FromString(_fqtypename(__pyx_v_input)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_2));
- __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_16), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_20), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_3));
__Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
__Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_t_3), 0, 0);
* _assertValidNode(node)
* return node
*/
- __pyx_t_3 = PyBytes_FromString(_fqtypename(__pyx_v_input)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyBytes_FromString(_fqtypename(__pyx_v_input)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_3));
- __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_18), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_22), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_2));
__Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
__Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_2), 0, 0);
* return 0
*
*/
- __pyx_t_5 = PyObject_GetAttr(((PyObject *)__pyx_v_element), __pyx_n_s___init); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_element), __pyx_n_s___init); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_6 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
* if None in nsmap and len(nsdefs) > 1:
* # Move the default namespace to the end. This makes sure libxml2
*/
- __pyx_t_4 = PyObject_GetAttr(__pyx_v_nsmap, __pyx_n_s__items); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_nsmap, __pyx_n_s__items); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
* nsdefs.append(item)
*
*/
- __pyx_t_4 = PyObject_GetAttr(((PyObject *)__pyx_v_nsdefs), __pyx_n_s__remove); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_nsdefs), __pyx_n_s__remove); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
*
* for prefix, href in nsdefs:
*/
- __pyx_t_9 = PyList_Append(__pyx_v_nsdefs, ((PyObject *)__pyx_v_item)); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_nsdefs, ((PyObject *)__pyx_v_item)); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L5;
}
__pyx_L5:;
* if extra is not None and extra:
* if attrib is None:
*/
- __pyx_t_4 = PyBytes_FromString(_fqtypename(__pyx_v_attrib)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_PyBytes_FromString(_fqtypename(__pyx_v_attrib)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_4));
- __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_19), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 251; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_23), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 251; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_5));
__Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
__Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_t_5), 0, 0);
* if attrib:
* is_html = doc._parser._for_html
*/
- __pyx_t_5 = PyObject_GetAttr(__pyx_v_attrib, __pyx_n_s__update); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 257; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_attrib, __pyx_n_s__update); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 257; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 257; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
* attr_ns_utf, attr_name_utf = _getNsTag(name)
* if not is_html:
*/
- __pyx_t_6 = PyObject_GetAttr(__pyx_v_attrib, __pyx_n_s__items); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 260; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_attrib, __pyx_n_s__items); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 260; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_4 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 260; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 586; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __Pyx_INCREF(((PyObject *)__pyx_kp_u_20));
- PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_kp_u_20));
- __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_20));
+ __Pyx_INCREF(((PyObject *)__pyx_kp_u_24));
+ PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_kp_u_24));
+ __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_24));
__Pyx_INCREF(__pyx_v_xml_string);
PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_xml_string);
__Pyx_GIVEREF(__pyx_v_xml_string);
*/
__Pyx_XDECREF(__pyx_r);
if ((__pyx_v_scount > 0)) {
- __Pyx_INCREF(((PyObject *)__pyx_kp_s_21));
- __pyx_t_4 = ((PyObject *)__pyx_kp_s_21);
+ __Pyx_INCREF(((PyObject *)__pyx_kp_s_25));
+ __pyx_t_4 = ((PyObject *)__pyx_kp_s_25);
} else {
__Pyx_INCREF(Py_None);
__pyx_t_4 = Py_None;
* while c_node is not NULL:
* result += <unsigned char*>c_node.content
*/
- __Pyx_INCREF(((PyObject *)__pyx_kp_b_21));
- __pyx_v_result = __pyx_kp_b_21;
+ __Pyx_INCREF(((PyObject *)__pyx_kp_b_25));
+ __pyx_v_result = __pyx_kp_b_25;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":626
* # the rest is not performance critical anymore
* cdef void _removeText(xmlNode* c_node):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_6 = __Pyx_PyBytes_AsUString(((PyObject *)__pyx_v_result)); if (unlikely((!__pyx_t_6) && PyErr_Occurred())) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 629; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_PyObject_AsUString(((PyObject *)__pyx_v_result)); if (unlikely((!__pyx_t_6) && PyErr_Occurred())) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 629; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_t_5 = __pyx_f_4lxml_5etree_funicode(((const xmlChar *)((unsigned char *)__pyx_t_6))); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 629; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
__pyx_r = __pyx_t_5;
* cdef inline bint _hasChild(xmlNode* c_node):
*/
__Pyx_XDECREF(((PyObject *)__pyx_r));
- __pyx_t_1 = ((PyObject *)PyBytes_FromFormat(__pyx_k_22, __pyx_v_c_ns->prefix, PyBytes_AS_STRING(__pyx_v_tag))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 688; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = ((PyObject *)PyBytes_FromFormat(__pyx_k_26, __pyx_v_c_ns->prefix, PyBytes_AS_STRING(__pyx_v_tag))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 688; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(((struct LxmlDocument *)__pyx_t_1), __pyx_v_c_node)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 753; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- __pyx_t_5 = PyList_Append(__pyx_v_result, __pyx_t_4); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 753; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_4); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 753; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":754
__Pyx_GIVEREF(__pyx_t_4);
__pyx_t_5 = 0;
__pyx_t_4 = 0;
- __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_23), ((PyObject *)__pyx_t_7)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1093; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_27), ((PyObject *)__pyx_t_7)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1093; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_4));
__Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
__Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_4), 0, 0);
#ifndef CYTHON_WITHOUT_ASSERTIONS
__pyx_t_3 = (((PyObject *)__pyx_v_element) != Py_None);
if (unlikely(!__pyx_t_3)) {
- PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_u_24));
+ PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_u_28));
{__pyx_filename = __pyx_f[4]; __pyx_lineno = 1099; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
#endif
#ifndef CYTHON_WITHOUT_ASSERTIONS
__pyx_t_3 = (((PyObject *)__pyx_v_element) != Py_None);
if (unlikely(!__pyx_t_3)) {
- PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_u_24));
+ PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_u_28));
{__pyx_filename = __pyx_f[4]; __pyx_lineno = 1103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
#endif
#ifndef CYTHON_WITHOUT_ASSERTIONS
__pyx_t_2 = (((PyObject *)__pyx_v_element) != Py_None);
if (unlikely(!__pyx_t_2)) {
- PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_u_24));
+ PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_u_28));
{__pyx_filename = __pyx_f[4]; __pyx_lineno = 1142; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
#endif
#ifndef CYTHON_WITHOUT_ASSERTIONS
__pyx_t_2 = (((PyObject *)__pyx_v_element) != Py_None);
if (unlikely(!__pyx_t_2)) {
- PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_u_24));
+ PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_u_28));
{__pyx_filename = __pyx_f[4]; __pyx_lineno = 1159; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
#endif
#ifndef CYTHON_WITHOUT_ASSERTIONS
__pyx_t_2 = (((PyObject *)__pyx_v_element) != Py_None);
if (unlikely(!__pyx_t_2)) {
- PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_u_24));
+ PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_u_28));
{__pyx_filename = __pyx_f[4]; __pyx_lineno = 1184; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
#endif
#ifndef CYTHON_WITHOUT_ASSERTIONS
__pyx_t_2 = (((PyObject *)__pyx_v_element) != Py_None);
if (unlikely(!__pyx_t_2)) {
- PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_u_24));
+ PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_u_28));
{__pyx_filename = __pyx_f[4]; __pyx_lineno = 1189; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
#endif
__pyx_t_1 = __pyx_t_2;
__pyx_t_2 = 0;
} else {
- __Pyx_INCREF(((PyObject *)__pyx_kp_s_21));
- __pyx_t_1 = ((PyObject *)__pyx_kp_s_21);
+ __Pyx_INCREF(((PyObject *)__pyx_kp_s_25));
+ __pyx_t_1 = ((PyObject *)__pyx_kp_s_25);
}
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
* cdef bytes _utf8(object s):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = PyBytes_FromStringAndSize(((const char*)__pyx_v_s) + 0, __pyx_v_slen - 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1314; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyBytes_FromStringAndSize(((const char*)__pyx_v_s) + 0, __pyx_v_slen - 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1314; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_1));
__Pyx_INCREF(((PyObject *)((PyObject*)__pyx_t_1)));
__pyx_r = ((PyObject *)__pyx_t_1);
* if invalid:
* raise ValueError(
*/
- __pyx_t_5 = PyObject_GetAttr(((PyObject *)Py_TYPE(__pyx_v_s)), __pyx_n_s____name__); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)Py_TYPE(__pyx_v_s)), __pyx_n_s____name__); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
- __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_25), __pyx_t_5); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_29), __pyx_t_5); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_4));
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
* "All strings must be XML compatible: Unicode or ASCII, no NULL bytes or control characters")
* return utf8_string
*/
- __pyx_t_4 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_27), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1335; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_31), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1335; __pyx_clineno = __LINE__; goto __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;
* try:
* return python.PyUnicode_AsEncodedString(
*/
- __pyx_t_3 = __Pyx_PyBytes_AsUString(__pyx_v_filename8); if (unlikely((!__pyx_t_3) && PyErr_Occurred())) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1374; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyObject_AsUString(__pyx_v_filename8); if (unlikely((!__pyx_t_3) && PyErr_Occurred())) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1374; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_t_1 = __pyx_f_4lxml_5etree__isFilePath(((unsigned char *)__pyx_t_3));
if (__pyx_t_1) {
*
* cdef object _decodeFilename(const_xmlChar* c_path):
*/
- __pyx_t_2 = PyObject_Call(__pyx_builtin_TypeError, ((PyObject *)__pyx_k_tuple_29), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1382; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyObject_Call(__pyx_builtin_TypeError, ((PyObject *)__pyx_k_tuple_33), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1382; __pyx_clineno = __LINE__; goto __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;
*/
static PyObject *__pyx_f_4lxml_5etree__decodeFilename(const xmlChar *__pyx_v_c_path) {
- int __pyx_v_c_len;
+ PyObject *__pyx_r = NULL;
+ __Pyx_RefNannyDeclarations
+ PyObject *__pyx_t_1 = NULL;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
+ __Pyx_RefNannySetupContext("_decodeFilename", 0);
+
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1387
+ * 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_filename = __pyx_f[4]; __pyx_lineno = 1387; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_1);
+ __pyx_r = __pyx_t_1;
+ __pyx_t_1 = 0;
+ goto __pyx_L0;
+
+ __pyx_r = Py_None; __Pyx_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ __Pyx_XDECREF(__pyx_t_1);
+ __Pyx_AddTraceback("lxml.etree._decodeFilename", __pyx_clineno, __pyx_lineno, __pyx_filename);
+ __pyx_r = 0;
+ __pyx_L0:;
+ __Pyx_XGIVEREF(__pyx_r);
+ __Pyx_RefNannyFinishContext();
+ return __pyx_r;
+}
+
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1389
+ * return _decodeFilenameWithLength(c_path, tree.xmlStrlen(c_path))
+ *
+ * cdef object _decodeFilenameWithLength(const_xmlChar* c_path, size_t c_len): # <<<<<<<<<<<<<<
+ * u"""Make the filename a unicode string if we are in Py3.
+ * """
+ */
+
+static PyObject *__pyx_f_4lxml_5etree__decodeFilenameWithLength(const xmlChar *__pyx_v_c_path, size_t __pyx_v_c_len) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
int __pyx_t_1;
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
- __Pyx_RefNannySetupContext("_decodeFilename", 0);
+ __Pyx_RefNannySetupContext("_decodeFilenameWithLength", 0);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1387
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1392
* u"""Make the filename a unicode string if we are in Py3.
* """
- * c_len = tree.xmlStrlen(c_path) # <<<<<<<<<<<<<<
- * if _isFilePath(c_path):
- * try:
- */
- __pyx_v_c_len = xmlStrlen(__pyx_v_c_path);
-
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1388
- * """
- * c_len = tree.xmlStrlen(c_path)
* if _isFilePath(c_path): # <<<<<<<<<<<<<<
* try:
* return python.PyUnicode_Decode(
__pyx_t_1 = __pyx_f_4lxml_5etree__isFilePath(__pyx_v_c_path);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1389
- * c_len = tree.xmlStrlen(c_path)
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1393
+ * """
* if _isFilePath(c_path):
* try: # <<<<<<<<<<<<<<
* return python.PyUnicode_Decode(
__Pyx_XGOTREF(__pyx_t_4);
/*try:*/ {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1390
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1394
* if _isFilePath(c_path):
* try:
* return python.PyUnicode_Decode( # <<<<<<<<<<<<<<
*/
__Pyx_XDECREF(__pyx_r);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1391
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1395
* try:
* return python.PyUnicode_Decode(
* <const_char*>c_path, c_len, _C_FILENAME_ENCODING, NULL) # <<<<<<<<<<<<<<
* except UnicodeDecodeError:
* pass
*/
- __pyx_t_5 = ((PyObject *)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_filename = __pyx_f[4]; __pyx_lineno = 1390; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
+ __pyx_t_5 = ((PyObject *)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_filename = __pyx_f[4]; __pyx_lineno = 1394; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
__Pyx_GOTREF(__pyx_t_5);
__pyx_r = __pyx_t_5;
__pyx_t_5 = 0;
__pyx_L4_error:;
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1392
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1396
* return python.PyUnicode_Decode(
* <const_char*>c_path, c_len, _C_FILENAME_ENCODING, NULL)
* except UnicodeDecodeError: # <<<<<<<<<<<<<<
}
__pyx_L3:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1394
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1398
* except UnicodeDecodeError:
* pass
* try: # <<<<<<<<<<<<<<
__Pyx_XGOTREF(__pyx_t_2);
/*try:*/ {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1395
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1399
* 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 = ((PyObject *)__Pyx_decode_c_string(((char *)((unsigned char *)__pyx_v_c_path)), 0, __pyx_v_c_len, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1395; __pyx_clineno = __LINE__; goto __pyx_L12_error;}
+ __pyx_t_5 = ((PyObject *)__Pyx_decode_c_string(((char *)((unsigned char *)__pyx_v_c_path)), 0, __pyx_v_c_len, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1399; __pyx_clineno = __LINE__; goto __pyx_L12_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_5));
__pyx_r = ((PyObject *)__pyx_t_5);
__pyx_t_5 = 0;
__pyx_L12_error:;
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1396
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1400
* try:
* return (<unsigned char*>c_path)[:c_len].decode('UTF-8')
* except UnicodeDecodeError: # <<<<<<<<<<<<<<
*/
__pyx_t_6 = PyErr_ExceptionMatches(__pyx_builtin_UnicodeDecodeError);
if (__pyx_t_6) {
- __Pyx_AddTraceback("lxml.etree._decodeFilename", __pyx_clineno, __pyx_lineno, __pyx_filename);
- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_7, &__pyx_t_8) < 0) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1396; __pyx_clineno = __LINE__; goto __pyx_L14_except_error;}
+ __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_filename = __pyx_f[4]; __pyx_lineno = 1400; __pyx_clineno = __LINE__; goto __pyx_L14_except_error;}
__Pyx_GOTREF(__pyx_t_5);
__Pyx_GOTREF(__pyx_t_7);
__Pyx_GOTREF(__pyx_t_8);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1398
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1402
* 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 = ((PyObject *)__Pyx_decode_c_string(((char *)((unsigned char *)__pyx_v_c_path)), 0, __pyx_v_c_len, NULL, __pyx_k__replace, PyUnicode_DecodeLatin1)); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1398; __pyx_clineno = __LINE__; goto __pyx_L14_except_error;}
+ __pyx_t_9 = ((PyObject *)__Pyx_decode_c_string(((char *)((unsigned char *)__pyx_v_c_path)), 0, __pyx_v_c_len, NULL, __pyx_k__replace, PyUnicode_DecodeLatin1)); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1402; __pyx_clineno = __LINE__; goto __pyx_L14_except_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_9));
__pyx_r = ((PyObject *)__pyx_t_9);
__pyx_t_9 = 0;
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_9);
- __Pyx_AddTraceback("lxml.etree._decodeFilename", __pyx_clineno, __pyx_lineno, __pyx_filename);
+ __Pyx_AddTraceback("lxml.etree._decodeFilenameWithLength", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1400
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1404
* 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);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1405
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1409
* """
* cdef char* c_filename
* if filename is None: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_v_filename == Py_None);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1406
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1410
* cdef char* c_filename
* if filename is None:
* return None # <<<<<<<<<<<<<<
goto __pyx_L3;
}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1407
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1411
* if filename is None:
* return None
* elif isinstance(filename, bytes): # <<<<<<<<<<<<<<
__pyx_t_1 = PyBytes_Check(__pyx_v_filename);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1408
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1412
* return None
* elif isinstance(filename, bytes):
* if not check_string_utf8(<bytes>filename): # <<<<<<<<<<<<<<
__pyx_t_1 = (!__pyx_f_4lxml_5etree_check_string_utf8(((PyObject*)__pyx_v_filename)));
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1410
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1414
* if not check_string_utf8(<bytes>filename):
* # plain ASCII!
* return filename # <<<<<<<<<<<<<<
}
__pyx_L4:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1411
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1415
* # plain ASCII!
* return filename
* c_filename = _cstr(<bytes>filename) # <<<<<<<<<<<<<<
*/
__pyx_v_c_filename = PyBytes_AS_STRING(__pyx_v_filename);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1412
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1416
* return filename
* c_filename = _cstr(<bytes>filename)
* try: # <<<<<<<<<<<<<<
__Pyx_XGOTREF(__pyx_t_4);
/*try:*/ {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1415
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1419
* # 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_filename = __pyx_f[4]; __pyx_lineno = 1415; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+ {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1419; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
}
- __pyx_t_5 = PyBytes_GET_SIZE(((PyObject *)((PyObject*)__pyx_v_filename))); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1415; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+ __pyx_t_5 = PyBytes_GET_SIZE(((PyObject *)((PyObject*)__pyx_v_filename))); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1419; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1416
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1420
* filename = python.PyUnicode_Decode(
* c_filename, len(<bytes>filename),
* _C_FILENAME_ENCODING, NULL) # <<<<<<<<<<<<<<
* except UnicodeDecodeError as decode_exc:
* try:
*/
- __pyx_t_6 = ((PyObject *)PyUnicode_Decode(__pyx_v_c_filename, __pyx_t_5, __pyx_v_4lxml_5etree__C_FILENAME_ENCODING, NULL)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1414; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+ __pyx_t_6 = ((PyObject *)PyUnicode_Decode(__pyx_v_c_filename, __pyx_t_5, __pyx_v_4lxml_5etree__C_FILENAME_ENCODING, NULL)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1418; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_v_filename);
__pyx_v_filename = __pyx_t_6;
__pyx_L5_error:;
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1417
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1421
* c_filename, len(<bytes>filename),
* _C_FILENAME_ENCODING, NULL)
* except UnicodeDecodeError as decode_exc: # <<<<<<<<<<<<<<
__pyx_t_7 = PyErr_ExceptionMatches(__pyx_builtin_UnicodeDecodeError);
if (__pyx_t_7) {
__Pyx_AddTraceback("lxml.etree._encodeFilenameUTF8", __pyx_clineno, __pyx_lineno, __pyx_filename);
- if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_8, &__pyx_t_9) < 0) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1417; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
+ if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_8, &__pyx_t_9) < 0) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1421; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
__Pyx_GOTREF(__pyx_t_6);
__Pyx_GOTREF(__pyx_t_8);
__Pyx_GOTREF(__pyx_t_9);
__Pyx_INCREF(__pyx_t_8);
__pyx_v_decode_exc = __pyx_t_8;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1418
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1422
* _C_FILENAME_ENCODING, NULL)
* except UnicodeDecodeError as decode_exc:
* try: # <<<<<<<<<<<<<<
__Pyx_XGOTREF(__pyx_t_12);
/*try:*/ {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1420
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1424
* 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 '%s'", "decode");
- {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1420; __pyx_clineno = __LINE__; goto __pyx_L15_error;}
+ {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1424; __pyx_clineno = __LINE__; goto __pyx_L15_error;}
}
- __pyx_t_13 = ((PyObject *)__Pyx_decode_bytes(((PyObject *)((PyObject*)__pyx_v_filename)), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1420; __pyx_clineno = __LINE__; goto __pyx_L15_error;}
+ __pyx_t_13 = ((PyObject *)__Pyx_decode_bytes(((PyObject *)((PyObject*)__pyx_v_filename)), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1424; __pyx_clineno = __LINE__; goto __pyx_L15_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_13));
__Pyx_DECREF(((PyObject *)__pyx_t_13)); __pyx_t_13 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1421
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1425
* # try if it's proper UTF-8
* (<bytes>filename).decode('utf8')
* return filename # <<<<<<<<<<<<<<
__pyx_L15_error:;
__Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1422
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1426
* (<bytes>filename).decode('utf8')
* return filename
* except UnicodeDecodeError: # <<<<<<<<<<<<<<
__pyx_t_7 = PyErr_ExceptionMatches(__pyx_builtin_UnicodeDecodeError);
if (__pyx_t_7) {
__Pyx_AddTraceback("lxml.etree._encodeFilenameUTF8", __pyx_clineno, __pyx_lineno, __pyx_filename);
- if (__Pyx_GetException(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15) < 0) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1422; __pyx_clineno = __LINE__; goto __pyx_L17_except_error;}
+ if (__Pyx_GetException(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15) < 0) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1426; __pyx_clineno = __LINE__; goto __pyx_L17_except_error;}
__Pyx_GOTREF(__pyx_t_13);
__Pyx_GOTREF(__pyx_t_14);
__Pyx_GOTREF(__pyx_t_15);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1423
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1427
* 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_filename = __pyx_f[4]; __pyx_lineno = 1423; __pyx_clineno = __LINE__; goto __pyx_L17_except_error;}
+ {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1427; __pyx_clineno = __LINE__; goto __pyx_L17_except_error;}
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
}
__pyx_L3:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1424
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1428
* except UnicodeDecodeError:
* raise decode_exc # otherwise re-raise original exception
* if isinstance(filename, unicode): # <<<<<<<<<<<<<<
__pyx_t_1 = PyUnicode_Check(__pyx_v_filename);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1425
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1429
* 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 '%s'", "encode");
- {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1429; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
- __pyx_t_9 = ((PyObject *)PyUnicode_AsUTF8String(((PyObject*)__pyx_v_filename))); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_9 = ((PyObject *)PyUnicode_AsUTF8String(((PyObject*)__pyx_v_filename))); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1429; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_9));
__pyx_r = ((PyObject *)__pyx_t_9);
__pyx_t_9 = 0;
}
/*else*/ {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1427
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1431
* return (<unicode>filename).encode('utf8')
* else:
* raise TypeError("Argument must be string or unicode.") # <<<<<<<<<<<<<<
*
* cdef tuple _getNsTag(tag):
*/
- __pyx_t_9 = PyObject_Call(__pyx_builtin_TypeError, ((PyObject *)__pyx_k_tuple_30), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1427; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_9 = PyObject_Call(__pyx_builtin_TypeError, ((PyObject *)__pyx_k_tuple_34), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1431; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_9);
__Pyx_Raise(__pyx_t_9, 0, 0, 0);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
- {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1427; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1431; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
__pyx_L25:;
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1429
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1433
* raise TypeError("Argument must be string or unicode.")
*
* cdef tuple _getNsTag(tag): # <<<<<<<<<<<<<<
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("_getNsTag", 0);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1433
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1437
* Return None for NS uri if no namespace URI provided.
* """
* return __getNsTag(tag, 0) # <<<<<<<<<<<<<<
* cdef tuple _getNsTagWithEmptyNs(tag):
*/
__Pyx_XDECREF(((PyObject *)__pyx_r));
- __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree___getNsTag(__pyx_v_tag, 0)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1433; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree___getNsTag(__pyx_v_tag, 0)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1437; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1435
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1439
* return __getNsTag(tag, 0)
*
* cdef tuple _getNsTagWithEmptyNs(tag): # <<<<<<<<<<<<<<
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("_getNsTagWithEmptyNs", 0);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1440
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1444
* part is '{}'.
* """
* return __getNsTag(tag, 1) # <<<<<<<<<<<<<<
* cdef tuple __getNsTag(tag, bint empty_ns):
*/
__Pyx_XDECREF(((PyObject *)__pyx_r));
- __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree___getNsTag(__pyx_v_tag, 1)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1440; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree___getNsTag(__pyx_v_tag, 1)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1444; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1442
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1446
* return __getNsTag(tag, 1)
*
* cdef tuple __getNsTag(tag, bint empty_ns): # <<<<<<<<<<<<<<
__Pyx_RefNannySetupContext("__getNsTag", 0);
__Pyx_INCREF(__pyx_v_tag);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1447
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1451
* cdef Py_ssize_t taglen
* cdef Py_ssize_t nslen
* cdef bytes ns = None # <<<<<<<<<<<<<<
__Pyx_INCREF(Py_None);
__pyx_v_ns = ((PyObject*)Py_None);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1449
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1453
* cdef bytes ns = None
* # _isString() is much faster than isinstance()
* if not _isString(tag) and isinstance(tag, QName): # <<<<<<<<<<<<<<
}
if (__pyx_t_3) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1450
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1454
* # _isString() is much faster than isinstance()
* if not _isString(tag) and isinstance(tag, QName):
* tag = (<QName>tag).text # <<<<<<<<<<<<<<
}
__pyx_L3:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1451
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1455
* 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 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_tag)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1451; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_tag)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1455; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_v_tag);
__pyx_v_tag = __pyx_t_4;
__pyx_t_4 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1452
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1456
* tag = (<QName>tag).text
* tag = _utf8(tag)
* c_tag = _cstr(tag) # <<<<<<<<<<<<<<
*/
__pyx_v_c_tag = PyBytes_AS_STRING(__pyx_v_tag);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1453
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1457
* tag = _utf8(tag)
* c_tag = _cstr(tag)
* if c_tag[0] == c'{': # <<<<<<<<<<<<<<
__pyx_t_3 = ((__pyx_v_c_tag[0]) == '{');
if (__pyx_t_3) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1454
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1458
* c_tag = _cstr(tag)
* if c_tag[0] == c'{':
* c_tag += 1 # <<<<<<<<<<<<<<
*/
__pyx_v_c_tag = (__pyx_v_c_tag + 1);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1455
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1459
* 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, '}');
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1456
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1460
* c_tag += 1
* c_ns_end = cstring_h.strchr(c_tag, c'}')
* if c_ns_end is NULL: # <<<<<<<<<<<<<<
__pyx_t_3 = (__pyx_v_c_ns_end == NULL);
if (__pyx_t_3) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1457
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1461
* c_ns_end = cstring_h.strchr(c_tag, c'}')
* if c_ns_end is NULL:
* raise ValueError, u"Invalid tag name" # <<<<<<<<<<<<<<
* nslen = c_ns_end - c_tag
* taglen = python.PyBytes_GET_SIZE(tag) - nslen - 2
*/
- __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_31), 0, 0);
- {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1457; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_35), 0, 0);
+ {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1461; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L5;
}
__pyx_L5:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1458
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1462
* 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);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1459
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1463
* 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);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1460
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1464
* nslen = c_ns_end - c_tag
* taglen = python.PyBytes_GET_SIZE(tag) - nslen - 2
* if taglen == 0: # <<<<<<<<<<<<<<
__pyx_t_3 = (__pyx_v_taglen == 0);
if (__pyx_t_3) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1461
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1465
* taglen = python.PyBytes_GET_SIZE(tag) - nslen - 2
* if taglen == 0:
* raise ValueError, u"Empty tag name" # <<<<<<<<<<<<<<
* if nslen > 0:
* ns = <bytes>c_tag[:nslen]
*/
- __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_32), 0, 0);
- {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1461; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_36), 0, 0);
+ {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1465; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L6;
}
__pyx_L6:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1462
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1466
* if taglen == 0:
* raise ValueError, u"Empty tag name"
* if nslen > 0: # <<<<<<<<<<<<<<
__pyx_t_3 = (__pyx_v_nslen > 0);
if (__pyx_t_3) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1463
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1467
* raise ValueError, u"Empty tag name"
* if nslen > 0:
* ns = <bytes>c_tag[:nslen] # <<<<<<<<<<<<<<
* elif empty_ns:
* ns = b''
*/
- __pyx_t_4 = PyBytes_FromStringAndSize(((const char*)__pyx_v_c_tag) + 0, __pyx_v_nslen - 0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1463; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_PyBytes_FromStringAndSize(__pyx_v_c_tag + 0, __pyx_v_nslen - 0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1467; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_4));
__Pyx_INCREF(((PyObject *)((PyObject*)__pyx_t_4)));
__Pyx_DECREF(((PyObject *)__pyx_v_ns));
goto __pyx_L7;
}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1464
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1468
* if nslen > 0:
* ns = <bytes>c_tag[:nslen]
* elif empty_ns: # <<<<<<<<<<<<<<
*/
if (__pyx_v_empty_ns) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1465
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1469
* ns = <bytes>c_tag[:nslen]
* elif empty_ns:
* ns = b'' # <<<<<<<<<<<<<<
* tag = <bytes>c_ns_end[1:taglen+1]
* elif python.PyBytes_GET_SIZE(tag) == 0:
*/
- __Pyx_INCREF(((PyObject *)__pyx_kp_b_21));
+ __Pyx_INCREF(((PyObject *)__pyx_kp_b_25));
__Pyx_DECREF(((PyObject *)__pyx_v_ns));
- __pyx_v_ns = __pyx_kp_b_21;
+ __pyx_v_ns = __pyx_kp_b_25;
goto __pyx_L7;
}
__pyx_L7:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1466
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1470
* 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_4 = PyBytes_FromStringAndSize(((const char*)__pyx_v_c_ns_end) + 1, (__pyx_v_taglen + 1) - 1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1466; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_PyBytes_FromStringAndSize(__pyx_v_c_ns_end + 1, (__pyx_v_taglen + 1) - 1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1470; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_4));
__Pyx_INCREF(((PyObject *)((PyObject*)__pyx_t_4)));
__Pyx_DECREF(__pyx_v_tag);
goto __pyx_L4;
}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1467
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1471
* ns = b''
* tag = <bytes>c_ns_end[1:taglen+1]
* elif python.PyBytes_GET_SIZE(tag) == 0: # <<<<<<<<<<<<<<
__pyx_t_3 = (PyBytes_GET_SIZE(__pyx_v_tag) == 0);
if (__pyx_t_3) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1468
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1472
* tag = <bytes>c_ns_end[1:taglen+1]
* elif python.PyBytes_GET_SIZE(tag) == 0:
* raise ValueError, u"Empty tag name" # <<<<<<<<<<<<<<
* return ns, tag
*
*/
- __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_32), 0, 0);
- {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1468; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_36), 0, 0);
+ {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1472; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L4;
}
__pyx_L4:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1469
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1473
* elif python.PyBytes_GET_SIZE(tag) == 0:
* raise ValueError, u"Empty tag name"
* return ns, tag # <<<<<<<<<<<<<<
* cdef inline int _pyXmlNameIsValid(name_utf8):
*/
__Pyx_XDECREF(((PyObject *)__pyx_r));
- __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1469; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1473; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
__Pyx_INCREF(((PyObject *)__pyx_v_ns));
PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_ns));
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1471
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1475
* return ns, tag
*
* cdef inline int _pyXmlNameIsValid(name_utf8): # <<<<<<<<<<<<<<
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_pyXmlNameIsValid", 0);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1472
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1476
*
* cdef inline int _pyXmlNameIsValid(name_utf8):
* return _xmlNameIsValid(_xcstr(name_utf8)) # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1474
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1478
* return _xmlNameIsValid(_xcstr(name_utf8))
*
* cdef inline int _pyHtmlNameIsValid(name_utf8): # <<<<<<<<<<<<<<
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_pyHtmlNameIsValid", 0);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1475
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1479
*
* cdef inline int _pyHtmlNameIsValid(name_utf8):
* return _htmlNameIsValid(_xcstr(name_utf8)) # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1477
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1481
* return _htmlNameIsValid(_xcstr(name_utf8))
*
* cdef inline int _xmlNameIsValid(const_xmlChar* c_name): # <<<<<<<<<<<<<<
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_xmlNameIsValid", 0);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1478
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1482
*
* cdef inline int _xmlNameIsValid(const_xmlChar* c_name):
* return tree.xmlValidateNCName(c_name, 0) == 0 # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1480
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1484
* return tree.xmlValidateNCName(c_name, 0) == 0
*
* cdef int _htmlNameIsValid(const_xmlChar* c_name): # <<<<<<<<<<<<<<
int __pyx_t_3;
__Pyx_RefNannySetupContext("_htmlNameIsValid", 0);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1482
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1486
* cdef int _htmlNameIsValid(const_xmlChar* c_name):
* cdef xmlChar c
* if c_name is NULL or c_name[0] == c'\0': # <<<<<<<<<<<<<<
}
if (__pyx_t_3) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1483
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1487
* cdef xmlChar c
* if c_name is NULL or c_name[0] == c'\0':
* return 0 # <<<<<<<<<<<<<<
}
__pyx_L3:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1484
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1488
* if c_name is NULL or c_name[0] == c'\0':
* return 0
* while c_name[0] != c'\0': # <<<<<<<<<<<<<<
__pyx_t_3 = ((__pyx_v_c_name[0]) != '\x00');
if (!__pyx_t_3) break;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1485
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1489
* return 0
* while c_name[0] != c'\0':
* c = c_name[0] # <<<<<<<<<<<<<<
*/
__pyx_v_c = (__pyx_v_c_name[0]);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1486
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1490
* while c_name[0] != c'\0':
* c = c_name[0]
* if c in (c'&', c'<', c'>', c'/', c'"', c"'", # <<<<<<<<<<<<<<
case '"':
case '\'':
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1487
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1491
* c = c_name[0]
* if c in (c'&', c'<', c'>', c'/', c'"', c"'",
* c'\t', c'\n', c'\x0B', c'\x0C', c'\r', c' '): # <<<<<<<<<<<<<<
case '\r':
case ' ':
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1488
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1492
* if c in (c'&', c'<', c'>', c'/', c'"', c"'",
* c'\t', c'\n', c'\x0B', c'\x0C', c'\r', c' '):
* return 0 # <<<<<<<<<<<<<<
break;
}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1489
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1493
* c'\t', c'\n', c'\x0B', c'\x0C', c'\r', c' '):
* return 0
* c_name += 1 # <<<<<<<<<<<<<<
__pyx_v_c_name = (__pyx_v_c_name + 1);
}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1490
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1494
* return 0
* c_name += 1
* return 1 # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1492
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1496
* return 1
*
* cdef bint _characterReferenceIsValid(const_xmlChar* c_name): # <<<<<<<<<<<<<<
int __pyx_t_3;
__Pyx_RefNannySetupContext("_characterReferenceIsValid", 0);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1494
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1498
* 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');
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1495
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1499
* cdef bint is_hex
* if c_name[0] == c'x':
* c_name += 1 # <<<<<<<<<<<<<<
*/
__pyx_v_c_name = (__pyx_v_c_name + 1);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1496
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1500
* if c_name[0] == c'x':
* c_name += 1
* is_hex = 1 # <<<<<<<<<<<<<<
}
/*else*/ {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1498
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1502
* is_hex = 1
* else:
* is_hex = 0 # <<<<<<<<<<<<<<
}
__pyx_L3:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1499
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1503
* else:
* is_hex = 0
* if c_name[0] == c'\0': # <<<<<<<<<<<<<<
__pyx_t_1 = ((__pyx_v_c_name[0]) == '\x00');
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1500
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1504
* is_hex = 0
* if c_name[0] == c'\0':
* return 0 # <<<<<<<<<<<<<<
}
__pyx_L4:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1501
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1505
* if c_name[0] == c'\0':
* return 0
* while c_name[0] != c'\0': # <<<<<<<<<<<<<<
__pyx_t_1 = ((__pyx_v_c_name[0]) != '\x00');
if (!__pyx_t_1) break;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1502
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1506
* return 0
* while c_name[0] != c'\0':
* if c_name[0] < c'0' or c_name[0] > c'9': # <<<<<<<<<<<<<<
}
if (__pyx_t_3) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1503
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1507
* while c_name[0] != c'\0':
* if c_name[0] < c'0' or c_name[0] > c'9':
* if not is_hex: # <<<<<<<<<<<<<<
__pyx_t_3 = (!__pyx_v_is_hex);
if (__pyx_t_3) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1504
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1508
* if c_name[0] < c'0' or c_name[0] > c'9':
* if not is_hex:
* return 0 # <<<<<<<<<<<<<<
}
__pyx_L8:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1505
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1509
* if not is_hex:
* return 0
* if not (c'a' <= c_name[0] <= c'f'): # <<<<<<<<<<<<<<
__pyx_t_1 = (!__pyx_t_3);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1506
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1510
* return 0
* if not (c'a' <= c_name[0] <= c'f'):
* if not (c'A' <= c_name[0] <= c'F'): # <<<<<<<<<<<<<<
__pyx_t_3 = (!__pyx_t_1);
if (__pyx_t_3) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1507
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1511
* if not (c'a' <= c_name[0] <= c'f'):
* if not (c'A' <= c_name[0] <= c'F'):
* return 0 # <<<<<<<<<<<<<<
}
__pyx_L7:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1508
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1512
* if not (c'A' <= c_name[0] <= c'F'):
* return 0
* c_name += 1 # <<<<<<<<<<<<<<
__pyx_v_c_name = (__pyx_v_c_name + 1);
}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1509
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1513
* return 0
* c_name += 1
* return 1 # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1511
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1515
* return 1
*
* cdef int _tagValidOrRaise(tag_utf) except -1: # <<<<<<<<<<<<<<
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("_tagValidOrRaise", 0);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1512
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1516
*
* cdef int _tagValidOrRaise(tag_utf) except -1:
* if not _pyXmlNameIsValid(tag_utf): # <<<<<<<<<<<<<<
__pyx_t_1 = (!__pyx_f_4lxml_5etree__pyXmlNameIsValid(__pyx_v_tag_utf));
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1514
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1518
* if not _pyXmlNameIsValid(tag_utf):
* raise ValueError("Invalid tag name %r" %
* (<bytes>tag_utf).decode('utf8')) # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_tag_utf == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "decode");
- {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1514; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1518; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
- __pyx_t_2 = ((PyObject *)__Pyx_decode_bytes(((PyObject *)((PyObject*)__pyx_v_tag_utf)), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1514; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = ((PyObject *)__Pyx_decode_bytes(((PyObject *)((PyObject*)__pyx_v_tag_utf)), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1518; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_2));
- __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_33), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1513; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_37), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1517; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_3));
__Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
- __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1513; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1517; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_t_3));
__Pyx_GIVEREF(((PyObject *)__pyx_t_3));
__pyx_t_3 = 0;
- __pyx_t_3 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1513; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1517; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(((PyObject *)__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_filename = __pyx_f[4]; __pyx_lineno = 1513; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1517; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L3;
}
__pyx_L3:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1515
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1519
* raise ValueError("Invalid tag name %r" %
* (<bytes>tag_utf).decode('utf8'))
* return 0 # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1517
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1521
* return 0
*
* cdef int _htmlTagValidOrRaise(tag_utf) except -1: # <<<<<<<<<<<<<<
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("_htmlTagValidOrRaise", 0);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1518
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1522
*
* cdef int _htmlTagValidOrRaise(tag_utf) except -1:
* if not _pyHtmlNameIsValid(tag_utf): # <<<<<<<<<<<<<<
__pyx_t_1 = (!__pyx_f_4lxml_5etree__pyHtmlNameIsValid(__pyx_v_tag_utf));
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1520
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1524
* if not _pyHtmlNameIsValid(tag_utf):
* raise ValueError("Invalid HTML tag name %r" %
* (<bytes>tag_utf).decode('utf8')) # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_tag_utf == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "decode");
- {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1524; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
- __pyx_t_2 = ((PyObject *)__Pyx_decode_bytes(((PyObject *)((PyObject*)__pyx_v_tag_utf)), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = ((PyObject *)__Pyx_decode_bytes(((PyObject *)((PyObject*)__pyx_v_tag_utf)), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1524; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_2));
- __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_34), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1519; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_38), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1523; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_3));
__Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
- __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1519; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1523; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_t_3));
__Pyx_GIVEREF(((PyObject *)__pyx_t_3));
__pyx_t_3 = 0;
- __pyx_t_3 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1519; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1523; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(((PyObject *)__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_filename = __pyx_f[4]; __pyx_lineno = 1519; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1523; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L3;
}
__pyx_L3:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1521
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1525
* raise ValueError("Invalid HTML tag name %r" %
* (<bytes>tag_utf).decode('utf8'))
* return 0 # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1523
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1527
* return 0
*
* cdef int _attributeValidOrRaise(name_utf) except -1: # <<<<<<<<<<<<<<
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("_attributeValidOrRaise", 0);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1524
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1528
*
* cdef int _attributeValidOrRaise(name_utf) except -1:
* if not _pyXmlNameIsValid(name_utf): # <<<<<<<<<<<<<<
__pyx_t_1 = (!__pyx_f_4lxml_5etree__pyXmlNameIsValid(__pyx_v_name_utf));
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1526
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1530
* if not _pyXmlNameIsValid(name_utf):
* raise ValueError("Invalid attribute name %r" %
* (<bytes>name_utf).decode('utf8')) # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_name_utf == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "decode");
- {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1526; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1530; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
- __pyx_t_2 = ((PyObject *)__Pyx_decode_bytes(((PyObject *)((PyObject*)__pyx_v_name_utf)), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1526; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = ((PyObject *)__Pyx_decode_bytes(((PyObject *)((PyObject*)__pyx_v_name_utf)), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1530; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_2));
- __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_35), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1525; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_39), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1529; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_3));
__Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
- __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1525; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1529; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_t_3));
__Pyx_GIVEREF(((PyObject *)__pyx_t_3));
__pyx_t_3 = 0;
- __pyx_t_3 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1525; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1529; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(((PyObject *)__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_filename = __pyx_f[4]; __pyx_lineno = 1525; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1529; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L3;
}
__pyx_L3:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1527
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1531
* raise ValueError("Invalid attribute name %r" %
* (<bytes>name_utf).decode('utf8'))
* return 0 # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1529
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1533
* return 0
*
* cdef int _prefixValidOrRaise(tag_utf) except -1: # <<<<<<<<<<<<<<
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("_prefixValidOrRaise", 0);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1530
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1534
*
* cdef int _prefixValidOrRaise(tag_utf) except -1:
* if not _pyXmlNameIsValid(tag_utf): # <<<<<<<<<<<<<<
__pyx_t_1 = (!__pyx_f_4lxml_5etree__pyXmlNameIsValid(__pyx_v_tag_utf));
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1532
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1536
* if not _pyXmlNameIsValid(tag_utf):
* raise ValueError("Invalid namespace prefix %r" %
* (<bytes>tag_utf).decode('utf8')) # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_tag_utf == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "decode");
- {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1532; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1536; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
- __pyx_t_2 = ((PyObject *)__Pyx_decode_bytes(((PyObject *)((PyObject*)__pyx_v_tag_utf)), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1532; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = ((PyObject *)__Pyx_decode_bytes(((PyObject *)((PyObject*)__pyx_v_tag_utf)), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1536; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_2));
- __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_36), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1531; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_40), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1535; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_3));
__Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
- __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1531; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1535; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_t_3));
__Pyx_GIVEREF(((PyObject *)__pyx_t_3));
__pyx_t_3 = 0;
- __pyx_t_3 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1531; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1535; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(((PyObject *)__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_filename = __pyx_f[4]; __pyx_lineno = 1531; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1535; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L3;
}
__pyx_L3:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1533
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1537
* raise ValueError("Invalid namespace prefix %r" %
* (<bytes>tag_utf).decode('utf8'))
* return 0 # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1535
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1539
* return 0
*
* cdef int _uriValidOrRaise(uri_utf) except -1: # <<<<<<<<<<<<<<
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("_uriValidOrRaise", 0);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1536
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1540
*
* 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));
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1537
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1541
* 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);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1539
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1543
* if c_uri is NULL:
* raise ValueError("Invalid namespace URI %r" %
* (<bytes>uri_utf).decode('utf8')) # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_uri_utf == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "decode");
- {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1539; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1543; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
- __pyx_t_2 = ((PyObject *)__Pyx_decode_bytes(((PyObject *)((PyObject*)__pyx_v_uri_utf)), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1539; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = ((PyObject *)__Pyx_decode_bytes(((PyObject *)((PyObject*)__pyx_v_uri_utf)), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1543; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_2));
- __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_37), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1538; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_41), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1542; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_3));
__Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
- __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1538; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1542; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_t_3));
__Pyx_GIVEREF(((PyObject *)__pyx_t_3));
__pyx_t_3 = 0;
- __pyx_t_3 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1538; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1542; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(((PyObject *)__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_filename = __pyx_f[4]; __pyx_lineno = 1538; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1542; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L3;
}
__pyx_L3:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1540
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1544
* raise ValueError("Invalid namespace URI %r" %
* (<bytes>uri_utf).decode('utf8'))
* uri.xmlFreeURI(c_uri) # <<<<<<<<<<<<<<
*/
xmlFreeURI(__pyx_v_c_uri);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1541
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1545
* (<bytes>uri_utf).decode('utf8'))
* uri.xmlFreeURI(c_uri)
* return 0 # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1543
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1547
* return 0
*
* cdef inline object _namespacedName(xmlNode* c_node): # <<<<<<<<<<<<<<
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("_namespacedName", 0);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1544
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1548
*
* 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_filename = __pyx_f[4]; __pyx_lineno = 1544; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[4]; __pyx_lineno = 1548; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1546
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1550
* return _namespacedNameFromNsName(_getNs(c_node), c_node.name)
*
* cdef object _namespacedNameFromNsName(const_xmlChar* href, const_xmlChar* name): # <<<<<<<<<<<<<<
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("_namespacedNameFromNsName", 0);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1547
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1551
*
* cdef object _namespacedNameFromNsName(const_xmlChar* href, const_xmlChar* name):
* if href is NULL: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_v_href == NULL);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1548
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1552
* 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_filename = __pyx_f[4]; __pyx_lineno = 1548; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __pyx_f_4lxml_5etree_funicode(__pyx_v_name); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1552; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_r = __pyx_t_2;
__pyx_t_2 = 0;
goto __pyx_L3;
}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1549
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1553
* if href is NULL:
* return funicode(name)
* elif python.LXML_UNICODE_STRINGS and python.PY_VERSION_HEX >= 0x02060000: # <<<<<<<<<<<<<<
}
if (__pyx_t_3) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1550
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1554
* return funicode(name)
* elif python.LXML_UNICODE_STRINGS and python.PY_VERSION_HEX >= 0x02060000:
* return python.PyUnicode_FromFormat("{%s}%s", href, name) # <<<<<<<<<<<<<<
* s = python.PyBytes_FromFormat("{%s}%s", href, name)
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_2 = ((PyObject *)PyUnicode_FromFormat(__pyx_k_38, __pyx_v_href, __pyx_v_name)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1550; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = ((PyObject *)PyUnicode_FromFormat(__pyx_k_42, __pyx_v_href, __pyx_v_name)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1554; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_r = __pyx_t_2;
__pyx_t_2 = 0;
}
/*else*/ {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1552
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1556
* return python.PyUnicode_FromFormat("{%s}%s", href, name)
* else:
* s = python.PyBytes_FromFormat("{%s}%s", href, name) # <<<<<<<<<<<<<<
* if python.LXML_UNICODE_STRINGS or isutf8(_xcstr(s)):
* return (<bytes>s).decode('utf8')
*/
- __pyx_t_2 = ((PyObject *)PyBytes_FromFormat(__pyx_k_38, __pyx_v_href, __pyx_v_name)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1552; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = ((PyObject *)PyBytes_FromFormat(__pyx_k_42, __pyx_v_href, __pyx_v_name)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1556; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_v_s = ((PyObject*)__pyx_t_2);
__pyx_t_2 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1553
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1557
* else:
* s = python.PyBytes_FromFormat("{%s}%s", href, name)
* if python.LXML_UNICODE_STRINGS or isutf8(_xcstr(s)): # <<<<<<<<<<<<<<
}
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1554
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1558
* s = python.PyBytes_FromFormat("{%s}%s", href, name)
* if python.LXML_UNICODE_STRINGS or isutf8(_xcstr(s)):
* return (<bytes>s).decode('utf8') # <<<<<<<<<<<<<<
__Pyx_XDECREF(__pyx_r);
if (unlikely(((PyObject *)__pyx_v_s) == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "decode");
- {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1554; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1558; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
- __pyx_t_2 = ((PyObject *)__Pyx_decode_bytes(((PyObject *)((PyObject*)__pyx_v_s)), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1554; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = ((PyObject *)__Pyx_decode_bytes(((PyObject *)((PyObject*)__pyx_v_s)), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1558; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_2));
__pyx_r = ((PyObject *)__pyx_t_2);
__pyx_t_2 = 0;
}
/*else*/ {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1556
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1560
* return (<bytes>s).decode('utf8')
* else:
* return s # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1558
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1562
* return s
*
* cdef _getFilenameForFile(source): # <<<<<<<<<<<<<<
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("_getFilenameForFile", 0);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1564
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1568
* """
* # urllib2 provides a geturl() method
* try: # <<<<<<<<<<<<<<
__Pyx_XGOTREF(__pyx_t_3);
/*try:*/ {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1565
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1569
* # urllib2 provides a geturl() method
* try:
* return source.geturl() # <<<<<<<<<<<<<<
* pass
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_4 = PyObject_GetAttr(__pyx_v_source, __pyx_n_s__geturl); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1565; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_source, __pyx_n_s__geturl); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1569; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
__Pyx_GOTREF(__pyx_t_4);
- __pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1565; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ __pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1569; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_r = __pyx_t_5;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1566
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1570
* try:
* return source.geturl()
* except: # <<<<<<<<<<<<<<
__pyx_L10_try_end:;
}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1569
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1573
* pass
* # file instances have a name attribute
* try: # <<<<<<<<<<<<<<
__Pyx_XGOTREF(__pyx_t_1);
/*try:*/ {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1570
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1574
* # file instances have a name attribute
* try:
* filename = source.name # <<<<<<<<<<<<<<
* if _isString(filename):
* return os_path_abspath(filename)
*/
- __pyx_t_5 = PyObject_GetAttr(__pyx_v_source, __pyx_n_s__name); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1570; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_source, __pyx_n_s__name); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1574; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
__Pyx_GOTREF(__pyx_t_5);
__pyx_v_filename = __pyx_t_5;
__pyx_t_5 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1571
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1575
* try:
* filename = source.name
* if _isString(filename): # <<<<<<<<<<<<<<
__pyx_t_6 = _isString(__pyx_v_filename);
if (__pyx_t_6) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1572
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1576
* filename = source.name
* if _isString(filename):
* return os_path_abspath(filename) # <<<<<<<<<<<<<<
* pass
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1572; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
+ __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1576; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
__Pyx_GOTREF(__pyx_t_5);
__Pyx_INCREF(__pyx_v_filename);
PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_filename);
__Pyx_GIVEREF(__pyx_v_filename);
- __pyx_t_4 = PyObject_Call(__pyx_v_4lxml_5etree_os_path_abspath, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1572; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
+ __pyx_t_4 = PyObject_Call(__pyx_v_4lxml_5etree_os_path_abspath, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1576; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
__pyx_r = __pyx_t_4;
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1573
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1577
* if _isString(filename):
* return os_path_abspath(filename)
* except: # <<<<<<<<<<<<<<
__pyx_L18_try_end:;
}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1576
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1580
* pass
* # gzip file instances have a filename attribute (before Py3k)
* try: # <<<<<<<<<<<<<<
__Pyx_XGOTREF(__pyx_t_3);
/*try:*/ {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1577
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1581
* # gzip file instances have a filename attribute (before Py3k)
* try:
* filename = source.filename # <<<<<<<<<<<<<<
* if _isString(filename):
* return os_path_abspath(filename)
*/
- __pyx_t_4 = PyObject_GetAttr(__pyx_v_source, __pyx_n_s__filename); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1577; __pyx_clineno = __LINE__; goto __pyx_L20_error;}
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_source, __pyx_n_s__filename); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1581; __pyx_clineno = __LINE__; goto __pyx_L20_error;}
__Pyx_GOTREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_v_filename);
__pyx_v_filename = __pyx_t_4;
__pyx_t_4 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1578
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1582
* try:
* filename = source.filename
* if _isString(filename): # <<<<<<<<<<<<<<
__pyx_t_6 = _isString(__pyx_v_filename);
if (__pyx_t_6) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1579
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1583
* filename = source.filename
* if _isString(filename):
* return os_path_abspath(filename) # <<<<<<<<<<<<<<
* pass
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1579; __pyx_clineno = __LINE__; goto __pyx_L20_error;}
+ __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1583; __pyx_clineno = __LINE__; goto __pyx_L20_error;}
__Pyx_GOTREF(__pyx_t_4);
__Pyx_INCREF(__pyx_v_filename);
PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_filename);
__Pyx_GIVEREF(__pyx_v_filename);
- __pyx_t_5 = PyObject_Call(__pyx_v_4lxml_5etree_os_path_abspath, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1579; __pyx_clineno = __LINE__; goto __pyx_L20_error;}
+ __pyx_t_5 = PyObject_Call(__pyx_v_4lxml_5etree_os_path_abspath, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1583; __pyx_clineno = __LINE__; goto __pyx_L20_error;}
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
__pyx_r = __pyx_t_5;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1580
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1584
* if _isString(filename):
* return os_path_abspath(filename)
* except: # <<<<<<<<<<<<<<
__pyx_L27_try_end:;
}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1583
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1587
* pass
* # can't determine filename
* return None # <<<<<<<<<<<<<<
*/
__pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__getGlobalErrorLog()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__clear); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s__clear); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
* else:
* size = cstring_h.strlen(error.message)
*/
- __Pyx_INCREF(((PyObject *)__pyx_kp_s_39));
- __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_39));
+ __Pyx_INCREF(((PyObject *)__pyx_kp_s_43));
+ __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_43));
__Pyx_GOTREF(__pyx_v_self->message);
__Pyx_DECREF(__pyx_v_self->message);
- __pyx_v_self->message = ((PyObject *)__pyx_kp_s_39);
+ __pyx_v_self->message = ((PyObject *)__pyx_kp_s_43);
goto __pyx_L3;
}
/*else*/ {
* error.message, size, 'backslashreplace')
* except:
*/
- __pyx_t_14 = __Pyx_GetName(__pyx_m, __pyx_n_s__python); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L15_error;}
+ __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s__python); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L15_error;}
__Pyx_GOTREF(__pyx_t_14);
- __pyx_t_15 = PyObject_GetAttr(__pyx_t_14, __pyx_n_s_40); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L15_error;}
+ __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_44); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L15_error;}
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
* except:
* self.message = '<undecodable error message>'
*/
- __pyx_t_14 = PyBytes_FromString(__pyx_v_error->message); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L15_error;}
+ __pyx_t_14 = __Pyx_PyBytes_FromString(__pyx_v_error->message); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L15_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_14));
__pyx_t_16 = __Pyx_PyInt_FromSize_t(__pyx_v_size); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L15_error;}
__Pyx_GOTREF(__pyx_t_16);
* if error.file is NULL:
* self.filename = u'<string>'
*/
- __Pyx_INCREF(((PyObject *)__pyx_kp_s_41));
- __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_41));
+ __Pyx_INCREF(((PyObject *)__pyx_kp_s_45));
+ __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_45));
__Pyx_GOTREF(__pyx_v_self->message);
__Pyx_DECREF(__pyx_v_self->message);
- __pyx_v_self->message = ((PyObject *)__pyx_kp_s_41);
+ __pyx_v_self->message = ((PyObject *)__pyx_kp_s_45);
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
* else:
* self.filename = _decodeFilename(<const_xmlChar*>error.file)
*/
- __Pyx_INCREF(((PyObject *)__pyx_kp_u_42));
- __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_42));
+ __Pyx_INCREF(((PyObject *)__pyx_kp_u_46));
+ __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_46));
__Pyx_GOTREF(__pyx_v_self->filename);
__Pyx_DECREF(__pyx_v_self->filename);
- __pyx_v_self->filename = ((PyObject *)__pyx_kp_u_42);
+ __pyx_v_self->filename = ((PyObject *)__pyx_kp_u_46);
goto __pyx_L25;
}
/*else*/ {
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyInt_FromLong(__pyx_v_self->column); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_3 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__level_name); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__level_name); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":101
*
* property domain_name:
*/
- __pyx_t_4 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__domain_name); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__domain_name); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
- __pyx_t_5 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__type_name); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__type_name); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_6 = PyTuple_New(7); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_3 = 0;
__pyx_t_4 = 0;
__pyx_t_5 = 0;
- __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_43), ((PyObject *)__pyx_t_6)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_47), ((PyObject *)__pyx_t_6)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_5));
__Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
__pyx_r = ((PyObject *)__pyx_t_5);
* property type_name:
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__ErrorDomains); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__ErrorDomains); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s___getName); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s___getName); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = PyInt_FromLong(__pyx_v_self->domain); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
*/
__pyx_t_1 = PyInt_FromLong(__pyx_v_self->domain); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__ErrorDomains); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__ErrorDomains); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_3 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__RELAXNGV); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s__RELAXNGV); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
* else:
* getName = ErrorTypes._getName
*/
- __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__RelaxNGErrorTypes); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__RelaxNGErrorTypes); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_3 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s___getName); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s___getName); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_v_getName = __pyx_t_3;
* return getName(self.type, u"unknown")
*
*/
- __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__ErrorTypes); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s__ErrorTypes); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_2 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s___getName); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s___getName); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_v_getName = __pyx_t_2;
* cdef class _BaseErrorLog:
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__ErrorLevels); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 123; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__ErrorLevels); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 123; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s___getName); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 123; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s___getName); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 123; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = PyInt_FromLong(__pyx_v_self->level); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 123; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
static int __pyx_pw_4lxml_5etree_13_BaseErrorLog_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_first_error = 0;
PyObject *__pyx_v_last_error = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
if (unlikely(__pyx_skip_dispatch)) ;
/* Check if overridden in Python */
else if (unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0)) {
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__copy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__copy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)__pyx_pw_4lxml_5etree_13_BaseErrorLog_3copy)) {
__Pyx_XDECREF(__pyx_r);
* cpdef receive(self, _LogEntry entry):
*/
__Pyx_XDECREF(__pyx_r);
- __Pyx_INCREF(((PyObject *)__pyx_kp_u_21));
- __pyx_r = ((PyObject *)__pyx_kp_u_21);
+ __Pyx_INCREF(((PyObject *)__pyx_kp_u_25));
+ __pyx_r = ((PyObject *)__pyx_kp_u_25);
goto __pyx_L0;
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
if (unlikely(__pyx_skip_dispatch)) ;
/* Check if overridden in Python */
else if (unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0)) {
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__receive); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__receive); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)__pyx_pw_4lxml_5etree_13_BaseErrorLog_7receive)) {
__Pyx_XDECREF(__pyx_r);
/* Python wrapper */
static PyObject *__pyx_pw_4lxml_5etree_13_BaseErrorLog_7receive(PyObject *__pyx_v_self, PyObject *__pyx_v_entry); /*proto*/
static PyObject *__pyx_pw_4lxml_5etree_13_BaseErrorLog_7receive(PyObject *__pyx_v_self, PyObject *__pyx_v_entry) {
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("receive (wrapper)", 0);
* entry._setError(error)
* is_error = error.level == xmlerror.XML_ERR_ERROR or \
*/
- __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_4lxml_5etree__LogEntry)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __pyx_tp_new_4lxml_5etree__LogEntry(((PyTypeObject *)((PyObject*)__pyx_ptype_4lxml_5etree__LogEntry)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
if (!(likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_4lxml_5etree__LogEntry)))) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_v_entry = ((struct __pyx_obj_4lxml_5etree__LogEntry *)__pyx_t_1);
* entry._setGeneric(domain, type, level, line, message, filename)
* is_error = level == xmlerror.XML_ERR_ERROR or \
*/
- __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_4lxml_5etree__LogEntry)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 165; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __pyx_tp_new_4lxml_5etree__LogEntry(((PyTypeObject *)((PyObject*)__pyx_ptype_4lxml_5etree__LogEntry)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 165; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
if (!(likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_4lxml_5etree__LogEntry)))) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 165; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_v_entry = ((struct __pyx_obj_4lxml_5etree__LogEntry *)__pyx_t_1);
__Pyx_GIVEREF(__pyx_t_3);
__pyx_t_2 = 0;
__pyx_t_3 = 0;
- __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_44), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_48), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_3));
__Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_v_message);
PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3);
__Pyx_GIVEREF(__pyx_t_3);
__pyx_t_3 = 0;
- __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_45), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 194; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_49), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 194; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_3));
__Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_v_message);
__Pyx_GIVEREF(__pyx_t_3);
__pyx_t_2 = 0;
__pyx_t_3 = 0;
- __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_44), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_48), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_3));
__Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_v_message);
PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
__Pyx_GIVEREF(__pyx_t_3);
__pyx_t_3 = 0;
- __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_45), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_49), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_3));
__Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_v_message);
PyObject *__pyx_v_entries = 0;
PyObject *__pyx_v_first_error = 0;
PyObject *__pyx_v_last_error = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
* if last_error is None:
* last_error = entries[-1]
*/
- __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_entries, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_2) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_entries, 0, sizeof(long), PyInt_FromLong, 0, 0, 1); if (!__pyx_t_2) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_v_first_error);
__pyx_v_first_error = __pyx_t_2;
* _BaseErrorLog.__init__(self, first_error, last_error)
* self._entries = entries
*/
- __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_entries, -1, sizeof(long), PyInt_FromLong); if (!__pyx_t_2) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_entries, -1, sizeof(long), PyInt_FromLong, 0, 1, 1); if (!__pyx_t_2) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_v_last_error);
__pyx_v_last_error = __pyx_t_2;
* self._entries = entries
*
*/
- __pyx_t_2 = PyObject_GetAttr(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__BaseErrorLog)), __pyx_n_s____init__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 224; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__BaseErrorLog)), __pyx_n_s____init__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 224; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 224; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
if (unlikely(__pyx_skip_dispatch)) ;
/* Check if overridden in Python */
else if (unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0)) {
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__copy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 227; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__copy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 227; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)__pyx_pw_4lxml_5etree_13_ListErrorLog_3copy)) {
__Pyx_XDECREF(__pyx_r);
*/
__pyx_t_3 = PyObject_Repr(__pyx_v_entry); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 239; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_4 = PyList_Append(__pyx_v_l, __pyx_t_3); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 239; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_PyList_Append(__pyx_v_l, __pyx_t_3); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 239; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
* def __getitem__(self, index):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = ((PyObject *)PyUnicode_Join(__pyx_kp_u_46, ((PyObject *)__pyx_v_l))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 240; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = ((PyObject *)PyUnicode_Join(__pyx_kp_u_50, ((PyObject *)__pyx_v_l))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 240; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
* return True
* return False
*/
- __pyx_t_3 = PyObject_GetAttr(__pyx_v_entry, __pyx_n_s__type); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 250; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_entry, __pyx_n_s__type); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 250; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_4 = PyObject_RichCompare(__pyx_t_3, __pyx_v_error_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 250; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
* return _ListErrorLog(filtered, None, None)
*
*/
- __pyx_t_5 = PyList_Append(__pyx_v_filtered, ((PyObject *)__pyx_v_entry)); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 269; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_PyList_Append(__pyx_v_filtered, ((PyObject *)__pyx_v_entry)); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 269; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L6;
}
__pyx_L6:;
* return _ListErrorLog(filtered, None, None)
*
*/
- __pyx_t_5 = PyList_Append(__pyx_v_filtered, ((PyObject *)__pyx_v_entry)); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 284; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_PyList_Append(__pyx_v_filtered, ((PyObject *)__pyx_v_entry)); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 284; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L6;
}
__pyx_L6:;
* return _ListErrorLog(filtered, None, None)
*
*/
- __pyx_t_5 = PyList_Append(__pyx_v_filtered, ((PyObject *)__pyx_v_entry)); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 299; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_PyList_Append(__pyx_v_filtered, ((PyObject *)__pyx_v_entry)); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 299; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L6;
}
__pyx_L6:;
* return _ListErrorLog(filtered, None, None)
*
*/
- __pyx_t_6 = PyList_Append(__pyx_v_filtered, ((PyObject *)__pyx_v_entry)); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 311; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_PyList_Append(__pyx_v_filtered, ((PyObject *)__pyx_v_entry)); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 311; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L5;
}
__pyx_L5:;
* def filter_from_errors(self):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__filter_from_level); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 319; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__filter_from_level); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 319; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__ErrorLevels); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 319; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__ErrorLevels); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 319; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_3 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__FATAL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 319; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s__FATAL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 319; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 319; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
* def filter_from_warnings(self):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__filter_from_level); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 326; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__filter_from_level); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 326; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__ErrorLevels); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 326; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__ErrorLevels); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 326; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_3 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__ERROR); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 326; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s__ERROR); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 326; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 326; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
* @cython.final
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__filter_from_level); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__filter_from_level); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__ErrorLevels); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__ErrorLevels); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_3 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__WARNING); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s__WARNING); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
*
* @cython.final
*/
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__ListErrorLog)), __pyx_n_s____init__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 352; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__ListErrorLog)), __pyx_n_s____init__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 352; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 352; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
*
* cdef _ErrorLogContext context = _ErrorLogContext.__new__(_ErrorLogContext)
*/
- if (__Pyx_PySequence_DelSlice(((PyObject *)__pyx_v_self->__pyx_base._entries), 0, PY_SSIZE_T_MAX) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 365; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (unlikely(((PyObject *)__pyx_v_self->__pyx_base._entries) == Py_None)) {
+ PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
+ {__pyx_filename = __pyx_f[1]; __pyx_lineno = 365; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ }
+ if (__Pyx_PyObject_DelSlice(((PyObject *)__pyx_v_self->__pyx_base._entries), 0, 0, NULL, NULL, NULL, 0, 0, 1) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 365; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":367
* del self._entries[:]
* context.old_error_func = xmlerror.xmlStructuredError
* context.old_error_context = xmlerror.xmlStructuredErrorContext
*/
- __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_4lxml_5etree__ErrorLogContext)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 367; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __pyx_tp_new_4lxml_5etree__ErrorLogContext(((PyTypeObject *)((PyObject*)__pyx_ptype_4lxml_5etree__ErrorLogContext)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 367; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
if (!(likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_4lxml_5etree__ErrorLogContext)))) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 367; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_v_context = ((struct __pyx_obj_4lxml_5etree__ErrorLogContext *)__pyx_t_1);
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append");
{__pyx_filename = __pyx_f[1]; __pyx_lineno = 370; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
- __pyx_t_2 = PyList_Append(__pyx_v_self->_logContexts, ((PyObject *)__pyx_v_context)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 370; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyList_Append(__pyx_v_self->_logContexts, ((PyObject *)__pyx_v_context)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 370; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":372
* self._logContexts.append(context)
if (unlikely(__pyx_skip_dispatch)) ;
/* Check if overridden in Python */
else if (unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0)) {
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__clear); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 382; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__clear); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 382; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)__pyx_pw_4lxml_5etree_9_ErrorLog_7clear)) {
__Pyx_XDECREF(__pyx_r);
*
* cpdef copy(self):
*/
- if (__Pyx_PySequence_DelSlice(((PyObject *)__pyx_v_self->__pyx_base._entries), 0, PY_SSIZE_T_MAX) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (unlikely(((PyObject *)__pyx_v_self->__pyx_base._entries) == Py_None)) {
+ PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
+ {__pyx_filename = __pyx_f[1]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ }
+ if (__Pyx_PyObject_DelSlice(((PyObject *)__pyx_v_self->__pyx_base._entries), 0, 0, NULL, NULL, NULL, 0, 0, 1) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
if (unlikely(__pyx_skip_dispatch)) ;
/* Check if overridden in Python */
else if (unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0)) {
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__copy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 386; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__copy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 386; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)__pyx_pw_4lxml_5etree_9_ErrorLog_9copy)) {
__Pyx_XDECREF(__pyx_r);
*
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = __Pyx_PySequence_GetSlice(((PyObject *)__pyx_v_self->__pyx_base._entries), 0, PY_SSIZE_T_MAX); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (unlikely(((PyObject *)__pyx_v_self->__pyx_base._entries) == Py_None)) {
+ PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
+ {__pyx_filename = __pyx_f[1]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ }
+ __pyx_t_1 = __Pyx_PyList_GetSlice(((PyObject *)__pyx_v_self->__pyx_base._entries), 0, PY_SSIZE_T_MAX); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_1));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":390
* cpdef receive(self, _LogEntry entry):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = __Pyx_PySequence_GetSlice(((PyObject *)__pyx_v_self->__pyx_base._entries), 0, PY_SSIZE_T_MAX); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 393; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (unlikely(((PyObject *)__pyx_v_self->__pyx_base._entries) == Py_None)) {
+ PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
+ {__pyx_filename = __pyx_f[1]; __pyx_lineno = 393; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ }
+ __pyx_t_1 = __Pyx_PyList_GetSlice(((PyObject *)__pyx_v_self->__pyx_base._entries), 0, PY_SSIZE_T_MAX); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 393; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_1));
__pyx_t_2 = PyObject_GetIter(((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 393; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
if (unlikely(__pyx_skip_dispatch)) ;
/* Check if overridden in Python */
else if (unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0)) {
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__receive); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__receive); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)__pyx_pw_4lxml_5etree_9_ErrorLog_13receive)) {
__Pyx_XDECREF(__pyx_r);
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append");
{__pyx_filename = __pyx_f[1]; __pyx_lineno = 398; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
- __pyx_t_5 = PyList_Append(__pyx_v_self->__pyx_base._entries, ((PyObject *)__pyx_v_entry)); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 398; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_PyList_Append(__pyx_v_self->__pyx_base._entries, ((PyObject *)__pyx_v_entry)); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 398; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
/* Python wrapper */
static PyObject *__pyx_pw_4lxml_5etree_9_ErrorLog_13receive(PyObject *__pyx_v_self, PyObject *__pyx_v_entry); /*proto*/
static PyObject *__pyx_pw_4lxml_5etree_9_ErrorLog_13receive(PyObject *__pyx_v_self, PyObject *__pyx_v_entry) {
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("receive (wrapper)", 0);
static int __pyx_pw_4lxml_5etree_15_DomainErrorLog_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4lxml_5etree_15_DomainErrorLog_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_domains = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
* self._accepted_domains = tuple(domains)
*
*/
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__ErrorLog)), __pyx_n_s____init__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 402; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__ErrorLog)), __pyx_n_s____init__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 402; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 402; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)(&PyTuple_Type))), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 403; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
- if (PyObject_SetAttr(((PyObject *)__pyx_v_self), __pyx_n_s___accepted_domains, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 403; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s___accepted_domains, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 403; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_r = 0;
if (unlikely(__pyx_skip_dispatch)) ;
/* Check if overridden in Python */
else if (unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0)) {
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__receive); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__receive); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)__pyx_pw_4lxml_5etree_15_DomainErrorLog_3receive)) {
__Pyx_XDECREF(__pyx_r);
*/
__pyx_t_1 = PyInt_FromLong(__pyx_v_entry->domain); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 406; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_3 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s___accepted_domains); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 406; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s___accepted_domains); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 406; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_4 = (__Pyx_PySequence_Contains(__pyx_t_1, __pyx_t_3, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 406; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
/* Python wrapper */
static PyObject *__pyx_pw_4lxml_5etree_15_DomainErrorLog_3receive(PyObject *__pyx_v_self, PyObject *__pyx_v_entry); /*proto*/
static PyObject *__pyx_pw_4lxml_5etree_15_DomainErrorLog_3receive(PyObject *__pyx_v_self, PyObject *__pyx_v_entry) {
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("receive (wrapper)", 0);
static int __pyx_pw_4lxml_5etree_17_RotatingErrorLog_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4lxml_5etree_17_RotatingErrorLog_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_max_len = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
* self._max_len = max_len
*
*/
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__ErrorLog)), __pyx_n_s____init__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 412; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__ErrorLog)), __pyx_n_s____init__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 412; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 412; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
if (unlikely(__pyx_skip_dispatch)) ;
/* Check if overridden in Python */
else if (unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0)) {
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__receive); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 415; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__receive); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 415; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)__pyx_pw_4lxml_5etree_17_RotatingErrorLog_3receive)) {
__Pyx_XDECREF(__pyx_r);
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
{__pyx_filename = __pyx_f[1]; __pyx_lineno = 417; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
- if (__Pyx_DelItemInt(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base._entries), 0, sizeof(long), PyInt_FromLong) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 417; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__Pyx_DelItemInt(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base._entries), 0, sizeof(long), PyInt_FromLong, 1, 0, 1) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 417; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L3;
}
__pyx_L3:;
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append");
{__pyx_filename = __pyx_f[1]; __pyx_lineno = 418; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
- __pyx_t_5 = PyList_Append(__pyx_v_self->__pyx_base.__pyx_base._entries, ((PyObject *)__pyx_v_entry)); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 418; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_PyList_Append(__pyx_v_self->__pyx_base.__pyx_base._entries, ((PyObject *)__pyx_v_entry)); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 418; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
/* Python wrapper */
static PyObject *__pyx_pw_4lxml_5etree_17_RotatingErrorLog_3receive(PyObject *__pyx_v_self, PyObject *__pyx_v_entry); /*proto*/
static PyObject *__pyx_pw_4lxml_5etree_17_RotatingErrorLog_3receive(PyObject *__pyx_v_self, PyObject *__pyx_v_entry) {
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("receive (wrapper)", 0);
static int __pyx_pw_4lxml_5etree_10PyErrorLog_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_logger_name = 0;
PyObject *__pyx_v_logger = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
* import logging
* self.level_map = {
*/
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__BaseErrorLog)), __pyx_n_s____init__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 444; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__BaseErrorLog)), __pyx_n_s____init__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 444; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 444; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
* ErrorLevels.ERROR : logging.ERROR,
* ErrorLevels.FATAL : logging.CRITICAL
*/
- __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__ErrorLevels); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__ErrorLevels); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__WARNING); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s__WARNING); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- __pyx_t_2 = PyObject_GetAttr(__pyx_v_logging, __pyx_n_s__WARNING); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_logging, __pyx_n_s__WARNING); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
if (PyDict_SetItem(__pyx_t_3, __pyx_t_1, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
* ErrorLevels.FATAL : logging.CRITICAL
* }
*/
- __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__ErrorLevels); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 448; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__ErrorLevels); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 448; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__ERROR); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 448; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s__ERROR); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 448; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- __pyx_t_2 = PyObject_GetAttr(__pyx_v_logging, __pyx_n_s__ERROR); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 448; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_logging, __pyx_n_s__ERROR); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 448; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
if (PyDict_SetItem(__pyx_t_3, __pyx_t_1, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
* }
* self._map_level = self.level_map.get
*/
- __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__ErrorLevels); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 449; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__ErrorLevels); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 449; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__FATAL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 449; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s__FATAL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 449; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- __pyx_t_2 = PyObject_GetAttr(__pyx_v_logging, __pyx_n_s__CRITICAL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 449; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_logging, __pyx_n_s__CRITICAL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 449; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
if (PyDict_SetItem(__pyx_t_3, __pyx_t_1, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
* if logger is None:
* if logger_name:
*/
- __pyx_t_3 = PyObject_GetAttr(((PyObject *)__pyx_v_self->level_map), __pyx_n_s__get); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 451; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->level_map), __pyx_n_s__get); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 451; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__Pyx_GIVEREF(__pyx_t_3);
__Pyx_GOTREF(__pyx_v_self->_map_level);
* else:
* logger = logging.getLogger()
*/
- __pyx_t_3 = PyObject_GetAttr(__pyx_v_logging, __pyx_n_s__getLogger); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 454; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_logging, __pyx_n_s__getLogger); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 454; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 454; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
* self._log = logger.log
*
*/
- __pyx_t_1 = PyObject_GetAttr(__pyx_v_logging, __pyx_n_s__getLogger); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 456; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_logging, __pyx_n_s__getLogger); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 456; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 456; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
*
* cpdef copy(self):
*/
- __pyx_t_2 = PyObject_GetAttr(__pyx_v_logger, __pyx_n_s__log); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 457; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_logger, __pyx_n_s__log); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 457; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__Pyx_GIVEREF(__pyx_t_2);
__Pyx_GOTREF(__pyx_v_self->_log);
if (unlikely(__pyx_skip_dispatch)) ;
/* Check if overridden in Python */
else if (unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0)) {
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__copy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 459; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__copy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 459; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)__pyx_pw_4lxml_5etree_10PyErrorLog_3copy)) {
__Pyx_XDECREF(__pyx_r);
PyObject *__pyx_v_log_entry = 0;
PyObject *__pyx_v_message = 0;
PyObject *__pyx_v_args = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("log (wrapper)", 0);
* message, *args
* )
*/
- __pyx_t_1 = PyObject_GetAttr(__pyx_v_log_entry, __pyx_n_s__level); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 477; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_log_entry, __pyx_n_s__level); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 477; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 477; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
if (unlikely(__pyx_skip_dispatch)) ;
/* Check if overridden in Python */
else if (unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0)) {
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__receive); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 481; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__receive); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 481; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)__pyx_pw_4lxml_5etree_10PyErrorLog_7receive)) {
__Pyx_XDECREF(__pyx_r);
*
* # thread-local, global list log to collect error output messages from
*/
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__log); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__log); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_3 = PyObject_Repr(((PyObject *)__pyx_v_log_entry)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
static PyObject *__pyx_pw_4lxml_5etree_10PyErrorLog_7receive(PyObject *__pyx_v_self, PyObject *__pyx_v_log_entry); /*proto*/
static char __pyx_doc_4lxml_5etree_10PyErrorLog_6receive[] = "receive(self, log_entry)\n\n Receive a _LogEntry instance from the logging system. Calls\n the .log() method with appropriate parameters::\n\n self.log(log_entry, repr(log_entry))\n\n You can override this method to provide your own log output\n format.\n ";
static PyObject *__pyx_pw_4lxml_5etree_10PyErrorLog_7receive(PyObject *__pyx_v_self, PyObject *__pyx_v_log_entry) {
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("receive (wrapper)", 0);
* return log
*
*/
- __pyx_t_9 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__RotatingErrorLog)), ((PyObject *)__pyx_k_tuple_47), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 510; __pyx_clineno = __LINE__; goto __pyx_L6_except_error;}
+ __pyx_t_9 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__RotatingErrorLog)), ((PyObject *)__pyx_k_tuple_51), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 510; __pyx_clineno = __LINE__; goto __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);
static char __pyx_doc_4lxml_5etree_4use_global_python_log[] = "use_global_python_log(log)\n\n Replace the global error log by an etree.PyErrorLog that uses the\n standard Python logging package.\n\n Note that this disables access to the global error log from exceptions.\n Parsers, XSLT etc. will continue to provide their normal local error log.\n\n Note: prior to lxml 2.2, this changed the error log globally.\n Since lxml 2.2, the global error log is local to a thread and this\n function will only set the global error log of the current thread.\n ";
static PyMethodDef __pyx_mdef_4lxml_5etree_5use_global_python_log = {__Pyx_NAMESTR("use_global_python_log"), (PyCFunction)__pyx_pw_4lxml_5etree_5use_global_python_log, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_4use_global_python_log)};
static PyObject *__pyx_pw_4lxml_5etree_5use_global_python_log(PyObject *__pyx_self, PyObject *__pyx_v_log) {
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("use_global_python_log (wrapper)", 0);
* c_error.file = cvarargs.va_charptr(args)
* if c_error.file and \
*/
- __pyx_t_3 = (strstr(__pyx_v_msg, __pyx_k_48) != 0);
+ __pyx_t_3 = (strstr(__pyx_v_msg, __pyx_k_52) != 0);
if (__pyx_t_3) {
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":576
* 'string://__STRING__XSLT', 23) == 0:
* c_error.file = '<xslt>'
*/
- __pyx_t_3 = (strncmp(__pyx_v_c_error.file, __pyx_k_49, 23) == 0);
+ __pyx_t_3 = (strncmp(__pyx_v_c_error.file, __pyx_k_53, 23) == 0);
__pyx_t_2 = __pyx_t_3;
} else {
__pyx_t_2 = (__pyx_v_c_error.file != 0);
* else:
* c_error.file = NULL
*/
- __pyx_v_c_error.file = __pyx_k_50;
+ __pyx_v_c_error.file = __pyx_k_54;
goto __pyx_L6;
}
__pyx_L6:;
* c_error.line = cvarargs.va_int(args)
* else:
*/
- __pyx_t_2 = (strstr(__pyx_v_msg, __pyx_k_51) != 0);
+ __pyx_t_2 = (strstr(__pyx_v_msg, __pyx_k_55) != 0);
if (__pyx_t_2) {
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":584
* c_element = cvarargs.va_charptr(args)
* else:
*/
- __pyx_t_2 = (strstr(__pyx_v_msg, __pyx_k_52) != 0);
+ __pyx_t_2 = (strstr(__pyx_v_msg, __pyx_k_56) != 0);
if (__pyx_t_2) {
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":588
* elif c_element is NULL:
* c_error.message = c_text
*/
- __pyx_v_c_error.message = __pyx_k_21;
+ __pyx_v_c_error.message = __pyx_k_25;
}
__pyx_L10:;
goto __pyx_L9;
* c_error.message = c_message
*
*/
- sprintf(__pyx_v_c_message, __pyx_k_53, __pyx_v_c_text, __pyx_v_c_element);
+ sprintf(__pyx_v_c_message, __pyx_k_57, __pyx_v_c_text, __pyx_v_c_element);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":614
* (text_size + 12 + element_size + 1) * sizeof(char))
* const_defs = ((ErrorLevels, __ERROR_LEVELS),
* (ErrorDomains, __ERROR_DOMAINS),
*/
- __pyx_t_1 = PyObject_GetAttr(__pyx_v_4lxml_5etree_re, __pyx_n_s__compile); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 633; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_re, __pyx_n_s__compile); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 633; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_k_tuple_55), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 633; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_k_tuple_59), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 633; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__findall); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 633; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s__findall); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 633; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_v_find_constants = __pyx_t_1;
* (ErrorDomains, __ERROR_DOMAINS),
* (ErrorTypes, __PARSER_ERROR_TYPES),
*/
- __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__ErrorLevels); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 634; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__ErrorLevels); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 634; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 634; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
* (ErrorTypes, __PARSER_ERROR_TYPES),
* (RelaxNGErrorTypes, __RELAXNG_ERROR_TYPES))
*/
- __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__ErrorDomains); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 635; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__ErrorDomains); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 635; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 635; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
* (RelaxNGErrorTypes, __RELAXNG_ERROR_TYPES))
* for cls, constant_tuple in const_defs:
*/
- __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__ErrorTypes); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 636; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__ErrorTypes); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 636; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 636; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
* for cls, constant_tuple in const_defs:
* reverse_dict = {}
*/
- __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__RelaxNGErrorTypes); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 637; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__RelaxNGErrorTypes); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 637; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 637; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
* cls._getName = reverse_dict.get
* for constants in constant_tuple:
*/
- if (PyObject_SetAttr(__pyx_v_cls, __pyx_n_s___names, ((PyObject *)__pyx_v_reverse_dict)) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 640; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_cls, __pyx_n_s___names, ((PyObject *)__pyx_v_reverse_dict)) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 640; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":641
* reverse_dict = {}
* for constants in constant_tuple:
* #print len(constants) + 1
*/
- __pyx_t_5 = PyObject_GetAttr(((PyObject *)__pyx_v_reverse_dict), __pyx_n_s__get); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 641; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_reverse_dict), __pyx_n_s__get); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 641; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
- if (PyObject_SetAttr(__pyx_v_cls, __pyx_n_s___getName, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 641; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_cls, __pyx_n_s___getName, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 641; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":642
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
{__pyx_filename = __pyx_f[0]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
- __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject *)__pyx_v_4lxml_5etree__PREFIX_CACHE), __pyx_v_self->_ns_counter, sizeof(int), PyInt_FromLong); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject *)__pyx_v_4lxml_5etree__PREFIX_CACHE), __pyx_v_self->_ns_counter, sizeof(int), PyInt_FromLong, 0, 1, 1); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
if (!(likely(PyBytes_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected bytes, got %.200s", Py_TYPE(__pyx_t_1)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_v_ns = ((PyObject*)__pyx_t_1);
* if self._prefix_tail is not None:
* ns += self._prefix_tail
*/
- __pyx_t_1 = ((PyObject *)PyBytes_FromFormat(__pyx_k_56, __pyx_v_self->_ns_counter)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 402; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = ((PyObject *)PyBytes_FromFormat(__pyx_k_60, __pyx_v_self->_ns_counter)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 402; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_ns = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
__Pyx_GIVEREF(__pyx_t_3);
__pyx_t_2 = 0;
__pyx_t_3 = 0;
- __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_57), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 427; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_61), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 427; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_3));
__Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_t_3));
__Pyx_GOTREF(__pyx_t_1);
for (__pyx_t_2 = 0; __pyx_t_2 < 30; __pyx_t_2+=1) {
__pyx_v_i = __pyx_t_2;
- __pyx_t_3 = ((PyObject *)PyBytes_FromFormat(__pyx_k_56, __pyx_v_i)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 468; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = ((PyObject *)PyBytes_FromFormat(__pyx_k_60, __pyx_v_i)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 468; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
- if (unlikely(__Pyx_PyList_Append(__pyx_t_1, (PyObject*)__pyx_t_3))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 468; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_3))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 468; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
- __pyx_t_3 = ((PyObject *)PyList_AsTuple(__pyx_t_1)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 468; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = ((PyObject *)PyList_AsTuple(((PyObject*)__pyx_t_1))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 468; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_3));
__Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
__pyx_r = ((PyObject*)__pyx_t_3);
* result._c_doc = c_doc
* result._ns_counter = 0
*/
- __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_4lxml_5etree__Document)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 476; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __pyx_tp_new_4lxml_5etree__Document(((PyTypeObject *)((PyObject*)__pyx_ptype_4lxml_5etree__Document)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 476; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
if (!(likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_4lxml_5etree__Document)))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 476; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_v_result = ((struct LxmlDocument *)__pyx_t_1);
static int __pyx_pw_4lxml_5etree_7DocInfo_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4lxml_5etree_7DocInfo_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_tree = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
*
* property root_name:
*/
- __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_58), 0, 0);
+ __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_62), 0, 0);
{__pyx_filename = __pyx_f[0]; __pyx_lineno = 494; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L5;
}
__Pyx_INCREF(__pyx_v_system_url);
PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_system_url);
__Pyx_GIVEREF(__pyx_v_system_url);
- __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_59), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 559; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_63), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 559; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_4));
__Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
__pyx_r = ((PyObject *)__pyx_t_4);
__Pyx_INCREF(__pyx_v_public_id);
PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_public_id);
__Pyx_GIVEREF(__pyx_v_public_id);
- __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_60), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_64), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_1));
__Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
__pyx_r = ((PyObject *)__pyx_t_1);
__Pyx_INCREF(__pyx_v_system_url);
PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_system_url);
__Pyx_GIVEREF(__pyx_v_system_url);
- __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_61), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 565; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_65), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 565; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_4));
__Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
__pyx_r = ((PyObject *)__pyx_t_4);
* return u""
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_62), __pyx_v_root_name); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 568; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_66), __pyx_v_root_name); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 568; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_4));
__pyx_r = ((PyObject *)__pyx_t_4);
__pyx_t_4 = 0;
* property internalDTD:
*/
__Pyx_XDECREF(__pyx_r);
- __Pyx_INCREF(((PyObject *)__pyx_kp_u_21));
- __pyx_r = ((PyObject *)__pyx_kp_u_21);
+ __Pyx_INCREF(((PyObject *)__pyx_kp_u_25));
+ __pyx_r = ((PyObject *)__pyx_kp_u_25);
goto __pyx_L0;
}
__pyx_L5:;
* if python.PySlice_Check(x):
* # slice assignment
*/
- __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_63), 0, 0);
+ __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_67), 0, 0);
{__pyx_filename = __pyx_f[0]; __pyx_lineno = 626; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L3;
}
* c_source_doc = element._c_node.doc
* c_next = element._c_node.next
*/
- __Pyx_Raise(__pyx_builtin_IndexError, ((PyObject *)__pyx_kp_u_64), 0, 0);
+ __Pyx_Raise(__pyx_builtin_IndexError, ((PyObject *)__pyx_kp_u_68), 0, 0);
{__pyx_filename = __pyx_f[0]; __pyx_lineno = 643; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L6;
}
* _removeText(c_node.next)
* _removeNode(self._doc, c_node)
*/
- __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_65), __pyx_v_x); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 680; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_69), __pyx_v_x); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 680; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_4));
__Pyx_Raise(__pyx_builtin_IndexError, ((PyObject *)__pyx_t_4), 0, 0);
__Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
* def __copy__(self):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s____copy__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 686; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s____copy__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 686; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 686; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
static PyObject *__pyx_pw_4lxml_5etree_8_Element_13set(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_key = 0;
PyObject *__pyx_v_value = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("set (wrapper)", 0);
static PyObject *__pyx_pw_4lxml_5etree_8_Element_15append(PyObject *__pyx_v_self, PyObject *__pyx_v_element); /*proto*/
static char __pyx_doc_4lxml_5etree_8_Element_14append[] = "append(self, element)\n\n Adds a subelement to the end of this element.\n ";
static PyObject *__pyx_pw_4lxml_5etree_8_Element_15append(PyObject *__pyx_v_self, PyObject *__pyx_v_element) {
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("append (wrapper)", 0);
static PyObject *__pyx_pw_4lxml_5etree_8_Element_17addnext(PyObject *__pyx_v_self, PyObject *__pyx_v_element); /*proto*/
static char __pyx_doc_4lxml_5etree_8_Element_16addnext[] = "addnext(self, element)\n\n Adds the element as a following sibling directly after this\n element.\n\n This is normally used to set a processing instruction or comment after\n the root node of a document. Note that tail text is automatically\n discarded when adding at the root level.\n ";
static PyObject *__pyx_pw_4lxml_5etree_8_Element_17addnext(PyObject *__pyx_v_self, PyObject *__pyx_v_element) {
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("addnext (wrapper)", 0);
* element.tail = None
* _appendSibling(self, element)
*/
- __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_66), 0, 0);
+ __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_70), 0, 0);
{__pyx_filename = __pyx_f[0]; __pyx_lineno = 739; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L5;
}
* _appendSibling(self, element)
*
*/
- if (PyObject_SetAttr(((PyObject *)__pyx_v_element), __pyx_n_s__tail, Py_None) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 740; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_element), __pyx_n_s__tail, Py_None) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 740; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L3;
}
__pyx_L3:;
static PyObject *__pyx_pw_4lxml_5etree_8_Element_19addprevious(PyObject *__pyx_v_self, PyObject *__pyx_v_element); /*proto*/
static char __pyx_doc_4lxml_5etree_8_Element_18addprevious[] = "addprevious(self, element)\n\n Adds the element as a preceding sibling directly before this\n element.\n\n This is normally used to set a processing instruction or comment\n before the root node of a document. Note that tail text is\n automatically discarded when adding at the root level.\n ";
static PyObject *__pyx_pw_4lxml_5etree_8_Element_19addprevious(PyObject *__pyx_v_self, PyObject *__pyx_v_element) {
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("addprevious (wrapper)", 0);
* element.tail = None
* _prependSibling(self, element)
*/
- __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_66), 0, 0);
+ __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_70), 0, 0);
{__pyx_filename = __pyx_f[0]; __pyx_lineno = 758; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L5;
}
* _prependSibling(self, element)
*
*/
- if (PyObject_SetAttr(((PyObject *)__pyx_v_element), __pyx_n_s__tail, Py_None) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 759; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_element), __pyx_n_s__tail, Py_None) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 759; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L3;
}
__pyx_L3:;
* _assertValidNode(element)
* _appendChild(self, element)
*/
- __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_24), 0, 0);
+ __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_28), 0, 0);
{__pyx_filename = __pyx_f[0]; __pyx_lineno = 771; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L5;
}
static PyObject *__pyx_pw_4lxml_5etree_8_Element_25insert(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_index = 0;
struct LxmlElement *__pyx_v_element = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("insert (wrapper)", 0);
static PyObject *__pyx_pw_4lxml_5etree_8_Element_27remove(PyObject *__pyx_v_self, PyObject *__pyx_v_element); /*proto*/
static char __pyx_doc_4lxml_5etree_8_Element_26remove[] = "remove(self, element)\n\n Removes a matching subelement. Unlike the find methods, this\n method compares elements based on identity, not on tag value\n or contents.\n ";
static PyObject *__pyx_pw_4lxml_5etree_8_Element_27remove(PyObject *__pyx_v_self, PyObject *__pyx_v_element) {
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("remove (wrapper)", 0);
* c_next = element._c_node.next
* tree.xmlUnlinkNode(c_node)
*/
- __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_67), 0, 0);
+ __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_71), 0, 0);
{__pyx_filename = __pyx_f[0]; __pyx_lineno = 839; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L3;
}
static PyObject *__pyx_pw_4lxml_5etree_8_Element_29replace(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
struct LxmlElement *__pyx_v_old_element = 0;
struct LxmlElement *__pyx_v_new_element = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("replace (wrapper)", 0);
* c_old_next = c_old_node.next
* c_new_node = new_element._c_node
*/
- __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_67), 0, 0);
+ __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_71), 0, 0);
{__pyx_filename = __pyx_f[0]; __pyx_lineno = 862; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L3;
}
* def __getitem__(self, x):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__tag); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1033; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__tag); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1033; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1033; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__Pyx_GIVEREF(__pyx_t_3);
__pyx_t_1 = 0;
__pyx_t_3 = 0;
- __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_68), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1033; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_72), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1033; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_3));
__Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
__pyx_r = ((PyObject *)__pyx_t_3);
__pyx_t_6 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(((struct LxmlDocument *)__pyx_t_3), __pyx_v_c_node)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1060; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- __pyx_t_7 = PyList_Append(__pyx_v_result, __pyx_t_6); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1060; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_6); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1060; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1061
* return _elementFactory(self._doc, c_node)
*
*/
- __Pyx_Raise(__pyx_builtin_IndexError, ((PyObject *)__pyx_kp_u_64), 0, 0);
+ __Pyx_Raise(__pyx_builtin_IndexError, ((PyObject *)__pyx_kp_u_68), 0, 0);
{__pyx_filename = __pyx_f[0]; __pyx_lineno = 1069; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L11;
}
* u"The behavior of this method will change in future versions. "
* u"Use specific 'len(elem)' or 'elem is not None' test instead.",
*/
- __pyx_t_1 = PyObject_GetAttr(__pyx_v_warnings, __pyx_n_s__warn); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1083; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_warnings, __pyx_n_s__warn); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1083; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1087
*/
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1083; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
- __Pyx_INCREF(((PyObject *)__pyx_kp_u_69));
- PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_kp_u_69));
- __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_69));
+ __Pyx_INCREF(((PyObject *)__pyx_kp_u_73));
+ PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_kp_u_73));
+ __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_73));
__Pyx_INCREF(__pyx_builtin_FutureWarning);
PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_builtin_FutureWarning);
__Pyx_GIVEREF(__pyx_builtin_FutureWarning);
struct LxmlElement *__pyx_v_child = 0;
PyObject *__pyx_v_start = 0;
PyObject *__pyx_v_stop = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("index (wrapper)", 0);
*
* # handle the unbounded search straight away (normal case)
*/
- __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_67), 0, 0);
+ __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_71), 0, 0);
{__pyx_filename = __pyx_f[0]; __pyx_lineno = 1124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L3;
}
*
* # for negative slice indices, check slice before searching index
*/
- __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_70), 0, 0);
+ __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_74), 0, 0);
{__pyx_filename = __pyx_f[0]; __pyx_lineno = 1147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L10;
}
* elif c_start < 0:
* raise ValueError, u"list.index(x): x not in slice"
*/
- __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_70), 0, 0);
+ __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_74), 0, 0);
{__pyx_filename = __pyx_f[0]; __pyx_lineno = 1165; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L17;
}
*
* # now determine the index backwards from child
*/
- __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_70), 0, 0);
+ __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_74), 0, 0);
{__pyx_filename = __pyx_f[0]; __pyx_lineno = 1167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L16;
}
* else:
* raise ValueError, u"list.index(x): x not in list"
*/
- __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_70), 0, 0);
+ __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_74), 0, 0);
{__pyx_filename = __pyx_f[0]; __pyx_lineno = 1192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L28;
}
*
* def get(self, key, default=None):
*/
- __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_71), 0, 0);
+ __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_75), 0, 0);
{__pyx_filename = __pyx_f[0]; __pyx_lineno = 1194; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
__pyx_L28:;
static PyObject *__pyx_pw_4lxml_5etree_8_Element_47get(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_key = 0;
PyObject *__pyx_v_default = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("get (wrapper)", 0);
PyObject *__pyx_v_tag = 0;
PyObject *__pyx_v_preceding = 0;
PyObject *__pyx_v_tags = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("itersiblings (wrapper)", 0);
*
*/
values[0] = ((PyObject *)Py_None);
- values[1] = __pyx_k_72;
+ values[1] = __pyx_k_76;
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
static PyObject *__pyx_pw_4lxml_5etree_8_Element_65iterancestors(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_tag = 0;
PyObject *__pyx_v_tags = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("iterancestors (wrapper)", 0);
static PyObject *__pyx_pw_4lxml_5etree_8_Element_67iterdescendants(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_tag = 0;
PyObject *__pyx_v_tags = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("iterdescendants (wrapper)", 0);
PyObject *__pyx_v_tag = 0;
PyObject *__pyx_v_reversed = 0;
PyObject *__pyx_v_tags = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("iterchildren (wrapper)", 0);
*
*/
values[0] = ((PyObject *)Py_None);
- values[1] = __pyx_k_73;
+ values[1] = __pyx_k_77;
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
static PyObject *__pyx_pw_4lxml_5etree_8_Element_73getiterator(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_tag = 0;
PyObject *__pyx_v_tags = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("getiterator (wrapper)", 0);
static PyObject *__pyx_pw_4lxml_5etree_8_Element_75iter(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_tag = 0;
PyObject *__pyx_v_tags = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("iter (wrapper)", 0);
PyObject *__pyx_v_tag = 0;
PyObject *__pyx_v_with_tail = 0;
PyObject *__pyx_v_tags = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("itertext (wrapper)", 0);
*
*/
values[0] = ((PyObject *)Py_None);
- values[1] = __pyx_k_74;
+ values[1] = __pyx_k_78;
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
PyObject *__pyx_v_attrib = 0;
PyObject *__pyx_v_nsmap = 0;
PyObject *__pyx_v__extra = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("makeelement (wrapper)", 0);
static PyObject *__pyx_pw_4lxml_5etree_8_Element_81find(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_path = 0;
PyObject *__pyx_v_namespaces = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("find (wrapper)", 0);
* def findtext(self, path, default=None, namespaces=None):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_2 = PyObject_GetAttr(__pyx_v_4lxml_5etree__elementpath, __pyx_n_s__find); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1427; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree__elementpath, __pyx_n_s__find); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1427; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1427; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
PyObject *__pyx_v_path = 0;
PyObject *__pyx_v_default = 0;
PyObject *__pyx_v_namespaces = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("findtext (wrapper)", 0);
* def findall(self, path, namespaces=None):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_2 = PyObject_GetAttr(__pyx_v_4lxml_5etree__elementpath, __pyx_n_s__findtext); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1440; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree__elementpath, __pyx_n_s__findtext); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1440; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = PyTuple_New(4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1440; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
static PyObject *__pyx_pw_4lxml_5etree_8_Element_85findall(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_path = 0;
PyObject *__pyx_v_namespaces = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("findall (wrapper)", 0);
* def iterfind(self, path, namespaces=None):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_2 = PyObject_GetAttr(__pyx_v_4lxml_5etree__elementpath, __pyx_n_s__findall); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1453; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree__elementpath, __pyx_n_s__findall); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1453; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1453; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
static PyObject *__pyx_pw_4lxml_5etree_8_Element_87iterfind(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_path = 0;
PyObject *__pyx_v_namespaces = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("iterfind (wrapper)", 0);
* def xpath(self, _path, *, namespaces=None, extensions=None,
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_2 = PyObject_GetAttr(__pyx_v_4lxml_5etree__elementpath, __pyx_n_s__iterfind); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1466; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree__elementpath, __pyx_n_s__iterfind); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1466; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1466; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
PyObject *__pyx_v_extensions = 0;
PyObject *__pyx_v_smart_strings = 0;
PyObject *__pyx_v__variables = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("xpath (wrapper)", 0);
*/
values[1] = ((PyObject *)Py_None);
values[2] = ((PyObject *)Py_None);
- values[3] = __pyx_k_75;
+ values[3] = __pyx_k_79;
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
* return result
*
*/
- __pyx_t_3 = PyObject_GetAttr(((PyObject *)__pyx_v_result), __pyx_n_s___init); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1505; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_result), __pyx_n_s___init); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1505; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_1 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1505; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
*
* def set(self, key, value):
*/
- __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_76), 0, 0);
+ __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_80), 0, 0);
{__pyx_filename = __pyx_f[0]; __pyx_lineno = 1512; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_r = 0;
static PyObject *__pyx_pw_4lxml_5etree_20__ContentOnlyElement_1set(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
CYTHON_UNUSED PyObject *__pyx_v_key = 0;
CYTHON_UNUSED PyObject *__pyx_v_value = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("set (wrapper)", 0);
static PyObject *__pyx_pw_4lxml_5etree_20__ContentOnlyElement_5insert(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
CYTHON_UNUSED PyObject *__pyx_v_index = 0;
CYTHON_UNUSED PyObject *__pyx_v_value = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("insert (wrapper)", 0);
* return funicode(self._c_node.content)
*/
__Pyx_XDECREF(__pyx_r);
- __Pyx_INCREF(((PyObject *)__pyx_kp_s_21));
- __pyx_r = ((PyObject *)__pyx_kp_s_21);
+ __Pyx_INCREF(((PyObject *)__pyx_kp_s_25));
+ __pyx_r = ((PyObject *)__pyx_kp_s_25);
goto __pyx_L0;
goto __pyx_L3;
}
*
* def __len__(self):
*/
- __Pyx_Raise(__pyx_builtin_IndexError, ((PyObject *)__pyx_kp_u_64), 0, 0);
+ __Pyx_Raise(__pyx_builtin_IndexError, ((PyObject *)__pyx_kp_u_68), 0, 0);
{__pyx_filename = __pyx_f[0]; __pyx_lineno = 1558; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
__pyx_L3:;
static PyObject *__pyx_pw_4lxml_5etree_20__ContentOnlyElement_13get(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
CYTHON_UNUSED PyObject *__pyx_v_key = 0;
CYTHON_UNUSED PyObject *__pyx_v_default = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("get (wrapper)", 0);
* def __repr__(self):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__Comment); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1583; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__Comment); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1583; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
* cdef class _ProcessingInstruction(__ContentOnlyElement):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__text); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1586; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__text); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1586; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_77), __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1586; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_81), __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1586; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_2));
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_r = ((PyObject *)__pyx_t_2);
* property target:
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s_78); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1591; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_82); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1591; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
* if text:
* return u"<?%s %s?>" % (self.target, text)
*/
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__text); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1606; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__text); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1606; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_text = __pyx_t_1;
__pyx_t_1 = 0;
* return u"<?%s?>" % self.target
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__target); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1608; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__target); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1608; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1608; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_text);
__Pyx_GIVEREF(__pyx_v_text);
__pyx_t_1 = 0;
- __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_79), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1608; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_83), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1608; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_1));
__Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
__pyx_r = ((PyObject *)__pyx_t_1);
* def get(self, key, default=None):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__target); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1610; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__target); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1610; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_80), __pyx_t_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1610; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_84), __pyx_t_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1610; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_3));
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_r = ((PyObject *)__pyx_t_3);
static PyObject *__pyx_pw_4lxml_5etree_22_ProcessingInstruction_3get(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_key = 0;
PyObject *__pyx_v_default = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("get (wrapper)", 0);
* property attrib:
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__attrib); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1624; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__attrib); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1624; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__get); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1624; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s__get); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1624; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1624; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
PyObject *__pyx_7genexpr__pyx_v_value1 = NULL;
PyObject *__pyx_7genexpr__pyx_v_value2 = NULL;
__pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1633; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
- __Pyx_GOTREF(((PyObject *)__pyx_t_1));
+ __Pyx_GOTREF(__pyx_t_1);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1634
* def __get__(self):
*
* cdef object _FIND_PI_ATTRIBUTES = re.compile(ur'\s+(\w+)\s*=\s*(?:\'([^\']*)\'|"([^"]*)")', re.U).findall
*/
- __pyx_t_2 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__text); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1634; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__text); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1634; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_3 = PyNumber_Add(((PyObject *)__pyx_kp_u_13), __pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1634; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+ __pyx_t_3 = PyNumber_Add(((PyObject *)__pyx_kp_u_17), __pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1634; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1634; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
goto __pyx_L1_error;
__pyx_L10_exit_scope:;
} /* exit inner scope */
- __Pyx_INCREF(((PyObject *)__pyx_t_1));
__pyx_r = ((PyObject *)__pyx_t_1);
- __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
+ __pyx_t_1 = 0;
goto __pyx_L0;
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
* property name:
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__Entity); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1641; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__Entity); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1641; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
* tree.xmlNodeSetName(self._c_node, _xcstr(value_utf))
*/
#ifndef CYTHON_WITHOUT_ASSERTIONS
- __pyx_t_3 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_kp_u_81), __pyx_v_value, Py_NE)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1652; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_kp_u_85), __pyx_v_value, Py_NE)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1652; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
if (__pyx_t_3) {
- __pyx_t_4 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_kp_u_82), __pyx_v_value, Py_NE)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1652; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_kp_u_86), __pyx_v_value, Py_NE)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1652; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_t_5 = __pyx_t_4;
} else {
__pyx_t_5 = __pyx_t_3;
* tree.xmlNodeSetName(self._c_node, _xcstr(value_utf))
*
*/
- __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_83), __pyx_v_value); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1653; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_87), __pyx_v_value); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1653; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_2));
PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_t_2));
__Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
__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_filename = __pyx_f[0]; __pyx_lineno = 1661; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_84), __pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1661; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_88), __pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1661; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_3));
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_r = ((PyObject *)__pyx_t_3);
*
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1664; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1664; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_84), __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1664; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_88), __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1664; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_2));
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_r = ((PyObject *)__pyx_t_2);
static int __pyx_pw_4lxml_5etree_5QName_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_text_or_uri_or_element = 0;
PyObject *__pyx_v_tag = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
{
- static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_85,&__pyx_n_s__tag,0};
+ static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_89,&__pyx_n_s__tag,0};
PyObject* values[2] = {0,0};
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1690
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
- if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_85)) != 0)) kw_args--;
+ if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_89)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
case 1:
if (kw_args > 0) {
* if not _isString(text_or_uri_or_element):
* raise ValueError, (u"Invalid input tag of type %r" %
*/
- __pyx_t_2 = PyObject_GetAttr(__pyx_v_text_or_uri_or_element, __pyx_n_s__tag); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1693; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_text_or_uri_or_element, __pyx_n_s__tag); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1693; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_v_text_or_uri_or_element);
__pyx_v_text_or_uri_or_element = __pyx_t_2;
* elif isinstance(text_or_uri_or_element, QName):
* text_or_uri_or_element = (<QName>text_or_uri_or_element).text
*/
- __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_86), ((PyObject *)Py_TYPE(__pyx_v_text_or_uri_or_element))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1695; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_90), ((PyObject *)Py_TYPE(__pyx_v_text_or_uri_or_element))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1695; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_2));
__Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_2), 0, 0);
__Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
__Pyx_INCREF(__pyx_v_self->localname);
PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_self->localname);
__Pyx_GIVEREF(__pyx_v_self->localname);
- __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_38), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1715; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_42), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1715; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_4));
__Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
__Pyx_GIVEREF(((PyObject *)__pyx_t_4));
* def __richcmp__(one, other, int op):
* try:
*/
- __pyx_t_1 = PyObject_GetAttr(__pyx_v_self->text, __pyx_n_s____hash__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1719; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->text, __pyx_n_s____hash__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1719; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1719; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
#ifndef CYTHON_WITHOUT_ASSERTIONS
__pyx_t_1 = (((PyObject *)__pyx_v_self->_context_node) != Py_None);
if (unlikely(!__pyx_t_1)) {
- PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_u_87));
+ PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_u_91));
{__pyx_filename = __pyx_f[0]; __pyx_lineno = 1746; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
#endif
PyObject *__pyx_v_source = 0;
struct __pyx_obj_4lxml_5etree__BaseParser *__pyx_v_parser = 0;
PyObject *__pyx_v_base_url = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("parse (wrapper)", 0);
* # raises a TypeError if we don't get an _Element
* self._context_node = result_container.result
*/
- __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s___TargetParserResult); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1760; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
+ __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s___TargetParserResult); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1760; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_6 = PyErr_ExceptionMatches(__pyx_t_4);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
* return self._context_node
*
*/
- __pyx_t_9 = PyObject_GetAttr(__pyx_v_result_container, __pyx_n_s__result); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1762; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
+ __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_result_container, __pyx_n_s__result); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1762; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1762; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
__Pyx_GIVEREF(__pyx_t_9);
static PyObject *__pyx_pw_4lxml_5etree_12_ElementTree_3_setroot(PyObject *__pyx_v_self, PyObject *__pyx_v_root); /*proto*/
static char __pyx_doc_4lxml_5etree_12_ElementTree_2_setroot[] = "_setroot(self, root)\n\n Relocate the ElementTree to a new root node.\n ";
static PyObject *__pyx_pw_4lxml_5etree_12_ElementTree_3_setroot(PyObject *__pyx_v_self, PyObject *__pyx_v_root) {
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_setroot (wrapper)", 0);
* self._context_node = root
* self._doc = None
*/
- __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_88), 0, 0);
+ __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_92), 0, 0);
{__pyx_filename = __pyx_f[0]; __pyx_lineno = 1772; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L3;
}
* _copyNonElementSiblings(self._context_node._c_node, root._c_node)
* doc = root._doc
*/
- __pyx_t_2 = PyObject_GetAttr(((PyObject *)__pyx_v_self->_context_node), __pyx_n_s____copy__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1791; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_context_node), __pyx_n_s____copy__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1791; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1791; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
PyObject *__pyx_v_exclusive = 0;
PyObject *__pyx_v_with_comments = 0;
PyObject *__pyx_v_inclusive_ns_prefixes = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("write (wrapper)", 0);
{
- static PyObject **__pyx_pyargnames[] = {&__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__docstring,&__pyx_n_s__compression,&__pyx_n_s__exclusive,&__pyx_n_s__with_comments,&__pyx_n_s_89,0};
+ static PyObject **__pyx_pyargnames[] = {&__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__docstring,&__pyx_n_s__compression,&__pyx_n_s__exclusive,&__pyx_n_s__with_comments,&__pyx_n_s_93,0};
PyObject* values[12] = {0,0,0,0,0,0,0,0,0,0,0,0};
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1838
*/
values[1] = ((PyObject *)Py_None);
values[2] = ((PyObject *)__pyx_n_u__xml);
- values[3] = __pyx_k_90;
+ values[3] = __pyx_k_94;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1839
*
* exclusive=False, with_comments=True, inclusive_ns_prefixes=None):
*/
values[4] = ((PyObject *)Py_None);
- values[5] = __pyx_k_91;
+ values[5] = __pyx_k_95;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1840
* def write(self, file, *, encoding=None, method=u"xml",
values[6] = ((PyObject *)Py_None);
values[7] = ((PyObject *)Py_None);
values[8] = ((PyObject *)__pyx_int_0);
- values[9] = __pyx_k_92;
- values[10] = __pyx_k_93;
+ values[9] = __pyx_k_96;
+ values[10] = __pyx_k_97;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1841
* pretty_print=False, xml_declaration=None, with_tail=True,
* if xml_declaration:
* raise ValueError("Cannot enable XML declaration in C14N")
*/
- __pyx_t_1 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_95), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1885; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_99), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1885; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__Pyx_Raise(__pyx_t_1, 0, 0, 0);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
*
* _tofilelikeC14N(file, self._context_node, exclusive, with_comments,
*/
- __pyx_t_1 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_97), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1887; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_101), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1887; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__Pyx_Raise(__pyx_t_1, 0, 0, 0);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
* # suppress decl. in default case (purely for ElementTree compatibility)
* if xml_declaration is not None:
*/
- __pyx_t_6 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_99), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1893; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_103), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1893; __pyx_clineno = __LINE__; goto __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;
* elif encoding is None:
* encoding = u'ASCII'
*/
- __pyx_t_6 = PyObject_GetAttr(__pyx_v_encoding, __pyx_n_s__upper); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1900; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_encoding, __pyx_n_s__upper); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1900; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_1 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1900; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
* write_declaration = encoding not in \
* (u'US-ASCII', u'ASCII', u'UTF8', u'UTF-8')
*/
- __pyx_t_1 = PyObject_GetAttr(__pyx_v_encoding, __pyx_n_s__upper); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1905; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_encoding, __pyx_n_s__upper); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1905; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_6 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1905; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
*/
__Pyx_INCREF(__pyx_v_encoding);
__pyx_t_6 = __pyx_v_encoding;
- __pyx_t_1 = PyObject_RichCompare(__pyx_t_6, ((PyObject *)__pyx_kp_u_100), Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1906; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyObject_RichCompare(__pyx_t_6, ((PyObject *)__pyx_kp_u_104), Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1906; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1906; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (((int)__pyx_t_5)) {
__pyx_t_3 = __pyx_t_4;
}
if (__pyx_t_3) {
- __pyx_t_1 = PyObject_RichCompare(__pyx_t_6, ((PyObject *)__pyx_kp_u_101), Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1906; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyObject_RichCompare(__pyx_t_6, ((PyObject *)__pyx_kp_u_105), Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1906; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1906; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_5 = ((int)__pyx_t_4);
static PyObject *__pyx_pw_4lxml_5etree_12_ElementTree_13getpath(PyObject *__pyx_v_self, PyObject *__pyx_v_element); /*proto*/
static char __pyx_doc_4lxml_5etree_12_ElementTree_12getpath[] = "getpath(self, element)\n\n Returns a structural, absolute XPath expression to find that element.\n ";
static PyObject *__pyx_pw_4lxml_5etree_12_ElementTree_13getpath(PyObject *__pyx_v_self, PyObject *__pyx_v_element) {
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("getpath (wrapper)", 0);
* _assertValidDoc(doc)
* _assertValidNode(root)
*/
- __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_102), 0, 0);
+ __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_106), 0, 0);
{__pyx_filename = __pyx_f[0]; __pyx_lineno = 1936; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
__pyx_L3:;
*
* c_doc = _fakeRootDoc(doc._c_doc, root._c_node)
*/
- __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_102), 0, 0);
+ __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_106), 0, 0);
{__pyx_filename = __pyx_f[0]; __pyx_lineno = 1940; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L4;
}
static PyObject *__pyx_pw_4lxml_5etree_12_ElementTree_15getiterator(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_tag = 0;
PyObject *__pyx_v_tags = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("getiterator (wrapper)", 0);
* if root is None:
* return ()
*/
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__getroot); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1968; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__getroot); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1968; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1968; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
* def iter(self, tag=None, *tags):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = PyObject_GetAttr(__pyx_v_root, __pyx_n_s__getiterator); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1973; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_root, __pyx_n_s__getiterator); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1973; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PySequence_Tuple(((PyObject *)__pyx_v_tags)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1973; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_2));
static PyObject *__pyx_pw_4lxml_5etree_12_ElementTree_17iter(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_tag = 0;
PyObject *__pyx_v_tags = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("iter (wrapper)", 0);
* if root is None:
* return ()
*/
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__getroot); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1984; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__getroot); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1984; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1984; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
* def find(self, path, namespaces=None):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = PyObject_GetAttr(__pyx_v_root, __pyx_n_s__iter); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1989; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_root, __pyx_n_s__iter); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1989; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PySequence_Tuple(((PyObject *)__pyx_v_tags)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1989; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_2));
static PyObject *__pyx_pw_4lxml_5etree_12_ElementTree_19find(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_path = 0;
PyObject *__pyx_v_namespaces = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("find (wrapper)", 0);
* if _isString(path):
* start = path[:1]
*/
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__getroot); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2002; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__getroot); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2002; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2002; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
* if start == u"/":
* path = u"." + path
*/
- __pyx_t_2 = __Pyx_PySequence_GetSlice(__pyx_v_path, 0, 1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2004; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_v_path, 0, 1, NULL, NULL, &__pyx_k_slice_107, 0, 1, 1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2004; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_v_start = __pyx_t_2;
__pyx_t_2 = 0;
* path = u"." + path
* elif start == b"/":
*/
- __pyx_t_2 = PyObject_RichCompare(__pyx_v_start, ((PyObject *)__pyx_kp_u_103), Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2005; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyObject_RichCompare(__pyx_v_start, ((PyObject *)__pyx_kp_u_108), Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2005; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2005; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (__pyx_t_3) {
* path = b"." + path
* return root.find(path, namespaces)
*/
- __pyx_t_2 = PyObject_RichCompare(__pyx_v_start, ((PyObject *)__pyx_kp_b_103), Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2007; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyObject_RichCompare(__pyx_v_start, ((PyObject *)__pyx_kp_b_108), Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2007; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2007; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (__pyx_t_3) {
* def findtext(self, path, default=None, namespaces=None):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_2 = PyObject_GetAttr(__pyx_v_root, __pyx_n_s__find); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2009; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_root, __pyx_n_s__find); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2009; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2009; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
PyObject *__pyx_v_path = 0;
PyObject *__pyx_v_default = 0;
PyObject *__pyx_v_namespaces = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("findtext (wrapper)", 0);
* if _isString(path):
* start = path[:1]
*/
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__getroot); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2022; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__getroot); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2022; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2022; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
* if start == u"/":
* path = u"." + path
*/
- __pyx_t_2 = __Pyx_PySequence_GetSlice(__pyx_v_path, 0, 1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2024; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_v_path, 0, 1, NULL, NULL, &__pyx_k_slice_109, 0, 1, 1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2024; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_v_start = __pyx_t_2;
__pyx_t_2 = 0;
* path = u"." + path
* elif start == b"/":
*/
- __pyx_t_2 = PyObject_RichCompare(__pyx_v_start, ((PyObject *)__pyx_kp_u_103), Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2025; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyObject_RichCompare(__pyx_v_start, ((PyObject *)__pyx_kp_u_108), Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2025; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2025; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (__pyx_t_3) {
* path = b"." + path
* return root.findtext(path, default, namespaces)
*/
- __pyx_t_2 = PyObject_RichCompare(__pyx_v_start, ((PyObject *)__pyx_kp_b_103), Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2027; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyObject_RichCompare(__pyx_v_start, ((PyObject *)__pyx_kp_b_108), Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2027; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2027; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (__pyx_t_3) {
* def findall(self, path, namespaces=None):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_2 = PyObject_GetAttr(__pyx_v_root, __pyx_n_s__findtext); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2029; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_root, __pyx_n_s__findtext); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2029; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2029; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
static PyObject *__pyx_pw_4lxml_5etree_12_ElementTree_23findall(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_path = 0;
PyObject *__pyx_v_namespaces = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("findall (wrapper)", 0);
* if _isString(path):
* start = path[:1]
*/
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__getroot); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2042; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__getroot); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2042; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2042; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
* if start == u"/":
* path = u"." + path
*/
- __pyx_t_2 = __Pyx_PySequence_GetSlice(__pyx_v_path, 0, 1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2044; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_v_path, 0, 1, NULL, NULL, &__pyx_k_slice_110, 0, 1, 1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2044; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_v_start = __pyx_t_2;
__pyx_t_2 = 0;
* path = u"." + path
* elif start == b"/":
*/
- __pyx_t_2 = PyObject_RichCompare(__pyx_v_start, ((PyObject *)__pyx_kp_u_103), Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2045; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyObject_RichCompare(__pyx_v_start, ((PyObject *)__pyx_kp_u_108), Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2045; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2045; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (__pyx_t_3) {
* path = b"." + path
* return root.findall(path, namespaces)
*/
- __pyx_t_2 = PyObject_RichCompare(__pyx_v_start, ((PyObject *)__pyx_kp_b_103), Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2047; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyObject_RichCompare(__pyx_v_start, ((PyObject *)__pyx_kp_b_108), Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2047; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2047; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (__pyx_t_3) {
* def iterfind(self, path, namespaces=None):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_2 = PyObject_GetAttr(__pyx_v_root, __pyx_n_s__findall); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2049; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_root, __pyx_n_s__findall); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2049; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2049; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
static PyObject *__pyx_pw_4lxml_5etree_12_ElementTree_25iterfind(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_path = 0;
PyObject *__pyx_v_namespaces = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("iterfind (wrapper)", 0);
* if _isString(path):
* start = path[:1]
*/
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__getroot); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2062; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__getroot); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2062; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2062; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
* if start == u"/":
* path = u"." + path
*/
- __pyx_t_2 = __Pyx_PySequence_GetSlice(__pyx_v_path, 0, 1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2064; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_v_path, 0, 1, NULL, NULL, &__pyx_k_slice_111, 0, 1, 1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2064; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_v_start = __pyx_t_2;
__pyx_t_2 = 0;
* path = u"." + path
* elif start == b"/":
*/
- __pyx_t_2 = PyObject_RichCompare(__pyx_v_start, ((PyObject *)__pyx_kp_u_103), Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2065; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyObject_RichCompare(__pyx_v_start, ((PyObject *)__pyx_kp_u_108), Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2065; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2065; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (__pyx_t_3) {
* path = b"." + path
* return root.iterfind(path, namespaces)
*/
- __pyx_t_2 = PyObject_RichCompare(__pyx_v_start, ((PyObject *)__pyx_kp_b_103), Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2067; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyObject_RichCompare(__pyx_v_start, ((PyObject *)__pyx_kp_b_108), Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2067; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2067; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (__pyx_t_3) {
* def xpath(self, _path, *, namespaces=None, extensions=None,
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_2 = PyObject_GetAttr(__pyx_v_root, __pyx_n_s__iterfind); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2069; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_root, __pyx_n_s__iterfind); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2069; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2069; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
PyObject *__pyx_v_extensions = 0;
PyObject *__pyx_v_smart_strings = 0;
PyObject *__pyx_v__variables = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("xpath (wrapper)", 0);
*/
values[1] = ((PyObject *)Py_None);
values[2] = ((PyObject *)Py_None);
- values[3] = __pyx_k_104;
+ values[3] = __pyx_k_112;
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
PyObject *__pyx_v_extensions = 0;
PyObject *__pyx_v_access_control = 0;
PyObject *__pyx_v__kw = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("xslt (wrapper)", 0);
* def xmlschema(self, xmlschema):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_2 = PyObject_GetAttr(((PyObject *)__pyx_v_schema), __pyx_n_s__validate); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_schema), __pyx_n_s__validate); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
* def xinclude(self):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_2 = PyObject_GetAttr(((PyObject *)__pyx_v_schema), __pyx_n_s__validate); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_schema), __pyx_n_s__validate); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
PyObject *__pyx_v_with_comments = 0;
PyObject *__pyx_v_compression = 0;
PyObject *__pyx_v_inclusive_ns_prefixes = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("write_c14n (wrapper)", 0);
{
- static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__file,&__pyx_n_s__exclusive,&__pyx_n_s__with_comments,&__pyx_n_s__compression,&__pyx_n_s_89,0};
+ static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__file,&__pyx_n_s__exclusive,&__pyx_n_s__with_comments,&__pyx_n_s__compression,&__pyx_n_s_93,0};
PyObject* values[5] = {0,0,0,0,0};
- values[1] = __pyx_k_105;
- values[2] = __pyx_k_106;
+ values[1] = __pyx_k_113;
+ values[2] = __pyx_k_114;
values[3] = ((PyObject *)__pyx_int_0);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2167
static int __pyx_pw_4lxml_5etree_7_Attrib_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4lxml_5etree_7_Attrib_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
struct LxmlElement *__pyx_v_element = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
* for key, value in sequence_or_dict:
* _setAttributeValue(self._element, key, value)
*/
- __pyx_t_1 = PyObject_GetAttr(__pyx_v_sequence_or_dict, __pyx_n_s__items); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2231; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_sequence_or_dict, __pyx_n_s__items); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2231; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_6 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2231; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
static PyObject *__pyx_pw_4lxml_5etree_7_Attrib_9pop(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_key = 0;
PyObject *__pyx_v_default = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("pop (wrapper)", 0);
__pyx_t_1 = PyTuple_GET_SIZE(((PyObject *)__pyx_v_default)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2238; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_t_3 = PyInt_FromSsize_t((__pyx_t_1 + 1)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2238; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_107), __pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2237; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_115), __pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2237; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_4));
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_t_4), 0, 0);
* else:
* _delAttribute(self._element, key)
*/
- __pyx_t_3 = __Pyx_GetItemInt_Tuple(((PyObject *)__pyx_v_default), 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2244; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_GetItemInt_Tuple(((PyObject *)__pyx_v_default), 0, sizeof(long), PyInt_FromLong, 0, 0, 1); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2244; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_v_result);
__pyx_v_result = __pyx_t_3;
static PyObject *__pyx_pw_4lxml_5etree_7_Attrib_25get(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_key = 0;
PyObject *__pyx_v_default = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("get (wrapper)", 0);
* self._node_type = tree.XML_COMMENT_NODE
* elif tag is ProcessingInstruction:
*/
- __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__Comment); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2406; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__Comment); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2406; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = (__pyx_v_tag == __pyx_t_2);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
* self._node_type = tree.XML_PI_NODE
* elif tag is Entity:
*/
- __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s_78); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2408; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_82); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2408; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = (__pyx_v_tag == __pyx_t_2);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
* self._node_type = tree.XML_ENTITY_REF_NODE
* elif tag is Element:
*/
- __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__Entity); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2410; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__Entity); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2410; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = (__pyx_v_tag == __pyx_t_2);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
* self._node_type = tree.XML_ELEMENT_NODE
* else:
*/
- __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__Element); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2412; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__Element); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2412; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = (__pyx_v_tag == __pyx_t_2);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
* self._href = _cstr(self._pystrings[0])
* self._name = _cstr(self._pystrings[1])
*/
- __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_self->_pystrings, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2417; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_self->_pystrings, 0, sizeof(long), PyInt_FromLong, 0, 0, 1); if (!__pyx_t_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2417; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = (__pyx_t_2 != Py_None);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
* self._name = _cstr(self._pystrings[1])
* if self._name[0] == c'*' and self._name[1] == c'\0':
*/
- __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_self->_pystrings, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2418; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_self->_pystrings, 0, sizeof(long), PyInt_FromLong, 0, 0, 1); if (!__pyx_t_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2418; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_v_self->_href = PyBytes_AS_STRING(__pyx_t_2);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
* if self._name[0] == c'*' and self._name[1] == c'\0':
* self._name = NULL
*/
- __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_self->_pystrings, 1, sizeof(long), PyInt_FromLong); if (!__pyx_t_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2419; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_self->_pystrings, 1, sizeof(long), PyInt_FromLong, 0, 0, 1); if (!__pyx_t_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2419; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_v_self->_name = PyBytes_AS_STRING(__pyx_t_2);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
static int __pyx_pw_4lxml_5etree_16_MultiTagMatcher_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4lxml_5etree_16_MultiTagMatcher_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_tags = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
* self._clear()
* if tags is None or tags == ():
*/
- if (__Pyx_PySequence_DelSlice(((PyObject *)__pyx_v_self->_py_tags), 0, PY_SSIZE_T_MAX) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2505; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (unlikely(((PyObject *)__pyx_v_self->_py_tags) == Py_None)) {
+ PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
+ {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2505; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ }
+ if (__Pyx_PyObject_DelSlice(((PyObject *)__pyx_v_self->_py_tags), 0, 0, NULL, NULL, NULL, 0, 0, 1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2505; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2506
* self._cached_doc = None
* self._node_types |= 1 << tree.XML_COMMENT_NODE
* elif tag is ProcessingInstruction:
*/
- __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__Comment); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2519; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__Comment); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2519; __pyx_clineno = __LINE__; goto __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;
* self._node_types |= 1 << tree.XML_PI_NODE
* elif tag is Entity:
*/
- __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s_78); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2521; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_82); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2521; __pyx_clineno = __LINE__; goto __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;
* self._node_types |= 1 << tree.XML_ENTITY_REF_NODE
* elif tag is Element:
*/
- __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__Entity); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2523; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__Entity); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2523; __pyx_clineno = __LINE__; goto __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;
* self._node_types |= 1 << tree.XML_ELEMENT_NODE
* elif python._isString(tag):
*/
- __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__Element); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2525; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__Element); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2525; __pyx_clineno = __LINE__; goto __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_INCREF(__pyx_v_tag);
__pyx_t_1 = __pyx_v_tag;
- __pyx_t_4 = PyObject_RichCompare(__pyx_t_1, ((PyObject *)__pyx_kp_s_108), Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2531; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = PyObject_RichCompare(__pyx_t_1, ((PyObject *)__pyx_kp_s_116), Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2531; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2531; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (!((int)__pyx_t_2)) {
- __pyx_t_4 = PyObject_RichCompare(__pyx_t_1, ((PyObject *)__pyx_kp_s_109), Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2531; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = PyObject_RichCompare(__pyx_t_1, ((PyObject *)__pyx_kp_s_117), Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2531; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2531; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_6 = ((int)__pyx_t_5);
* name = None
* if href is None:
*/
- __pyx_t_1 = PyObject_RichCompare(__pyx_v_name, ((PyObject *)__pyx_kp_b_108), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2535; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyObject_RichCompare(__pyx_v_name, ((PyObject *)__pyx_kp_b_116), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2535; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2535; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (__pyx_t_2) {
* elif href == b'*':
* href = None # wildcard: any namespace, including none
*/
- __Pyx_INCREF(((PyObject *)__pyx_kp_b_21));
+ __Pyx_INCREF(((PyObject *)__pyx_kp_b_25));
__Pyx_DECREF(__pyx_v_href);
- __pyx_v_href = ((PyObject *)__pyx_kp_b_21);
+ __pyx_v_href = ((PyObject *)__pyx_kp_b_25);
goto __pyx_L9;
}
* href = None # wildcard: any namespace, including none
* self._py_tags.append((href, name))
*/
- __pyx_t_1 = PyObject_RichCompare(__pyx_v_href, ((PyObject *)__pyx_kp_b_108), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2539; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyObject_RichCompare(__pyx_v_href, ((PyObject *)__pyx_kp_b_116), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2539; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2539; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (__pyx_t_2) {
__Pyx_INCREF(__pyx_v_name);
PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_name);
__Pyx_GIVEREF(__pyx_v_name);
- __pyx_t_3 = PyList_Append(__pyx_v_self->_py_tags, ((PyObject *)__pyx_t_1)); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2541; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_self->_py_tags, ((PyObject *)__pyx_t_1)); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2541; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
}
__pyx_L5:;
struct LxmlElement *__pyx_v_node = 0;
PyObject *__pyx_v_tag = 0;
PyObject *__pyx_v_reversed = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
* _assertValidNode(node)
*/
values[1] = ((PyObject *)Py_None);
- values[2] = __pyx_k_110;
+ values[2] = __pyx_k_118;
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
struct LxmlElement *__pyx_v_node = 0;
PyObject *__pyx_v_tag = 0;
PyObject *__pyx_v_preceding = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
* self._initTagMatcher(tag)
*/
values[1] = ((PyObject *)Py_None);
- values[2] = __pyx_k_111;
+ values[2] = __pyx_k_119;
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
static int __pyx_pw_4lxml_5etree_17AncestorsIterator_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
struct LxmlElement *__pyx_v_node = 0;
PyObject *__pyx_v_tag = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
struct LxmlElement *__pyx_v_node = 0;
PyObject *__pyx_v_tag = 0;
PyObject *__pyx_v_inclusive = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
* self._top_node = node
*/
values[1] = ((PyObject *)Py_None);
- values[2] = __pyx_k_112;
+ values[2] = __pyx_k_120;
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
struct LxmlElement *__pyx_v_element = 0;
PyObject *__pyx_v_tag = 0;
PyObject *__pyx_v_with_tail = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
* if with_tail:
*/
values[1] = ((PyObject *)Py_None);
- values[2] = __pyx_k_113;
+ values[2] = __pyx_k_121;
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
* else:
* events = (u"start",)
*/
- __Pyx_INCREF(((PyObject *)__pyx_k_tuple_114));
- __pyx_v_events = __pyx_k_tuple_114;
+ __Pyx_INCREF(((PyObject *)__pyx_k_tuple_122));
+ __pyx_v_events = __pyx_k_tuple_122;
goto __pyx_L3;
}
/*else*/ {
* self._start_element = element
* self._nextEvent = iterwalk(element, events=events, tag=tag).__next__
*/
- __Pyx_INCREF(((PyObject *)__pyx_k_tuple_115));
- __pyx_v_events = __pyx_k_tuple_115;
+ __Pyx_INCREF(((PyObject *)__pyx_k_tuple_123));
+ __pyx_v_events = __pyx_k_tuple_123;
}
__pyx_L3:;
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
__Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
- __pyx_t_4 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s____next__); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2760; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s____next__); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2760; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_GIVEREF(__pyx_t_4);
* elif element is not self._start_element:
* result = element.tail
*/
- __pyx_t_2 = PyObject_GetAttr(((PyObject *)__pyx_v_element), __pyx_n_s__text); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2771; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_element), __pyx_n_s__text); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2771; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_v_result);
__pyx_v_result = __pyx_t_2;
* return result
*
*/
- __pyx_t_2 = PyObject_GetAttr(((PyObject *)__pyx_v_element), __pyx_n_s__tail); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2773; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_element), __pyx_n_s__tail); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2773; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_v_result);
__pyx_v_result = __pyx_t_2;
PyObject *__pyx_v_attrib = 0;
PyObject *__pyx_v_nsmap = 0;
PyObject *__pyx_v__extra = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("Element (wrapper)", 0);
static PyMethodDef __pyx_mdef_4lxml_5etree_9Comment = {__Pyx_NAMESTR("Comment"), (PyCFunction)__pyx_pw_4lxml_5etree_9Comment, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_8Comment)};
static PyObject *__pyx_pw_4lxml_5etree_9Comment(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_text = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("Comment (wrapper)", 0);
* else:
* text = _utf8(text)
*/
- __Pyx_INCREF(((PyObject *)__pyx_kp_b_21));
+ __Pyx_INCREF(((PyObject *)__pyx_kp_b_25));
__Pyx_DECREF(__pyx_v_text);
- __pyx_v_text = ((PyObject *)__pyx_kp_b_21);
+ __pyx_v_text = ((PyObject *)__pyx_kp_b_25);
goto __pyx_L3;
}
/*else*/ {
static PyObject *__pyx_pw_4lxml_5etree_11ProcessingInstruction(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_target = 0;
PyObject *__pyx_v_text = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("ProcessingInstruction (wrapper)", 0);
* else:
* text = _utf8(text)
*/
- __Pyx_INCREF(((PyObject *)__pyx_kp_b_21));
+ __Pyx_INCREF(((PyObject *)__pyx_kp_b_25));
__Pyx_DECREF(__pyx_v_text);
- __pyx_v_text = ((PyObject *)__pyx_kp_b_21);
+ __pyx_v_text = ((PyObject *)__pyx_kp_b_25);
goto __pyx_L3;
}
/*else*/ {
static int __pyx_pw_4lxml_5etree_5CDATA_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4lxml_5etree_5CDATA_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_data = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
* elif not _xmlNameIsValid(c_name):
* raise ValueError, u"Invalid entity reference: '%s'" % name
*/
- __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_116), __pyx_v_name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2882; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_124), __pyx_v_name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2882; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_1));
__Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_1), 0, 0);
__Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
* c_doc = _newXMLDoc()
* doc = _documentFactory(c_doc, None)
*/
- __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_117), __pyx_v_name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2884; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_125), __pyx_v_name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2884; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_1));
__Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_1), 0, 0);
__Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
PyObject *__pyx_v_attrib = 0;
PyObject *__pyx_v_nsmap = 0;
PyObject *__pyx_v__extra = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("SubElement (wrapper)", 0);
struct LxmlElement *__pyx_v_element = 0;
PyObject *__pyx_v_file = 0;
struct __pyx_obj_4lxml_5etree__BaseParser *__pyx_v_parser = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("ElementTree (wrapper)", 0);
* return result_container.result
* else:
*/
- __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s___TargetParserResult); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2917; __pyx_clineno = __LINE__; goto __pyx_L6_except_error;}
+ __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s___TargetParserResult); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2917; __pyx_clineno = __LINE__; goto __pyx_L6_except_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_6 = PyErr_ExceptionMatches(__pyx_t_2);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
* c_doc = _newXMLDoc()
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_9 = PyObject_GetAttr(__pyx_v_result_container, __pyx_n_s__result); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2918; __pyx_clineno = __LINE__; goto __pyx_L6_except_error;}
+ __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_result_container, __pyx_n_s__result); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2918; __pyx_clineno = __LINE__; goto __pyx_L6_except_error;}
__Pyx_GOTREF(__pyx_t_9);
__pyx_r = __pyx_t_9;
__pyx_t_9 = 0;
PyObject *__pyx_v_text = 0;
struct __pyx_obj_4lxml_5etree__BaseParser *__pyx_v_parser = 0;
PyObject *__pyx_v_base_url = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("HTML (wrapper)", 0);
* return result_container.result
*
*/
- __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s___TargetParserResult); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2947; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
+ __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s___TargetParserResult); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2947; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_7 = PyErr_ExceptionMatches(__pyx_t_2);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
* def XML(text, _BaseParser parser=None, *, base_url=None):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_10 = PyObject_GetAttr(__pyx_v_result_container, __pyx_n_s__result); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2948; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
+ __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_result_container, __pyx_n_s__result); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2948; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
__Pyx_GOTREF(__pyx_t_10);
__pyx_r = __pyx_t_10;
__pyx_t_10 = 0;
PyObject *__pyx_v_text = 0;
struct __pyx_obj_4lxml_5etree__BaseParser *__pyx_v_parser = 0;
PyObject *__pyx_v_base_url = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("XML (wrapper)", 0);
* return result_container.result
*
*/
- __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s___TargetParserResult); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2975; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
+ __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s___TargetParserResult); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2975; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_7 = PyErr_ExceptionMatches(__pyx_t_2);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
* def fromstring(text, _BaseParser parser=None, *, base_url=None):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_10 = PyObject_GetAttr(__pyx_v_result_container, __pyx_n_s__result); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2976; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
+ __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_result_container, __pyx_n_s__result); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2976; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
__Pyx_GOTREF(__pyx_t_10);
__pyx_r = __pyx_t_10;
__pyx_t_10 = 0;
PyObject *__pyx_v_text = 0;
struct __pyx_obj_4lxml_5etree__BaseParser *__pyx_v_parser = 0;
PyObject *__pyx_v_base_url = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("fromstring (wrapper)", 0);
* return result_container.result
*
*/
- __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s___TargetParserResult); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2995; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
+ __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s___TargetParserResult); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2995; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_5 = PyErr_ExceptionMatches(__pyx_t_4);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
* def fromstringlist(strings, _BaseParser parser=None):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_8 = PyObject_GetAttr(__pyx_v_result_container, __pyx_n_s__result); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2996; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
+ __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_result_container, __pyx_n_s__result); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2996; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
__Pyx_GOTREF(__pyx_t_8);
__pyx_r = __pyx_t_8;
__pyx_t_8 = 0;
static PyObject *__pyx_pw_4lxml_5etree_25fromstringlist(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_strings = 0;
struct __pyx_obj_4lxml_5etree__BaseParser *__pyx_v_parser = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("fromstringlist (wrapper)", 0);
* for data in strings:
* feed(data)
*/
- __pyx_t_2 = PyObject_GetAttr(((PyObject *)__pyx_v_parser), __pyx_n_s__feed); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3010; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_parser), __pyx_n_s__feed); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3010; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_v_feed = __pyx_t_2;
__pyx_t_2 = 0;
* def iselement(element):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_2 = PyObject_GetAttr(((PyObject *)__pyx_v_parser), __pyx_n_s__close); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3013; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_parser), __pyx_n_s__close); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3013; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_6 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3013; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
struct LxmlElement *__pyx_v_elem = 0;
int __pyx_v_pretty_print;
PyObject *__pyx_v_with_tail = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("dump (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__elem,&__pyx_n_s__pretty_print,&__pyx_n_s__with_tail,0};
PyObject* values[3] = {0,0,0};
- values[2] = __pyx_k_118;
+ values[2] = __pyx_k_126;
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
* encoding=u'unicode' if python.IS_PYTHON3 else None)
* if not pretty_print:
*/
- __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__tostring); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3028; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__tostring); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3028; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3028; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
* sys.stdout.write(xml)
*
*/
- __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_xml, ((PyObject *)__pyx_kp_s_46)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3031; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_xml, ((PyObject *)__pyx_kp_s_50)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3031; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_v_xml);
__pyx_v_xml = __pyx_t_4;
*
* def tostring(element_or_tree, *, encoding=None, method=u"xml",
*/
- __pyx_t_4 = PyObject_GetAttr(__pyx_v_4lxml_5etree_sys, __pyx_n_s__stdout); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3032; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_sys, __pyx_n_s__stdout); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3032; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
- __pyx_t_3 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__write); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3032; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s__write); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3032; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3032; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
int __pyx_v_exclusive;
int __pyx_v_with_comments;
PyObject *__pyx_v_inclusive_ns_prefixes = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("tostring (wrapper)", 0);
{
- static PyObject **__pyx_pyargnames[] = {&__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_89,0};
+ static PyObject **__pyx_pyargnames[] = {&__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_93,0};
PyObject* values[11] = {0,0,0,0,0,0,0,0,0,0,0};
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3034
* if xml_declaration:
* raise ValueError("Cannot enable XML declaration in C14N")
*/
- __pyx_t_1 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_119), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3085; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_127), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3085; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__Pyx_Raise(__pyx_t_1, 0, 0, 0);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
* return _tostringC14N(element_or_tree, exclusive, with_comments, inclusive_ns_prefixes)
* if not with_comments:
*/
- __pyx_t_1 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_120), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3087; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_128), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3087; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__Pyx_Raise(__pyx_t_1, 0, 0, 0);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
* if encoding is _unicode or (encoding is not None and encoding.upper() == 'UNICODE'):
* if xml_declaration:
*/
- __pyx_t_1 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_121), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3090; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_129), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3090; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__Pyx_Raise(__pyx_t_1, 0, 0, 0);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (!__pyx_t_2) {
__pyx_t_3 = (__pyx_v_encoding != Py_None);
if (__pyx_t_3) {
- __pyx_t_1 = PyObject_GetAttr(__pyx_v_encoding, __pyx_n_s__upper); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3091; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_encoding, __pyx_n_s__upper); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3091; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3091; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
* u"Serialisation to unicode must not request an XML declaration"
* write_declaration = 0
*/
- __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_122), 0, 0);
+ __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_130), 0, 0);
{__pyx_filename = __pyx_f[0]; __pyx_lineno = 3093; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L8;
}
*/
__pyx_t_3 = (__pyx_v_encoding != Py_None);
if (__pyx_t_3) {
- __pyx_t_1 = PyObject_GetAttr(__pyx_v_encoding, __pyx_n_s__upper); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3099; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_encoding, __pyx_n_s__upper); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3099; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3099; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3099; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (((int)__pyx_t_2)) {
- __pyx_t_1 = PyObject_RichCompare(__pyx_t_4, ((PyObject *)__pyx_kp_u_101), Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3099; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyObject_RichCompare(__pyx_t_4, ((PyObject *)__pyx_kp_u_105), Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3099; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3099; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_5 = ((int)__pyx_t_6);
__pyx_t_6 = __pyx_t_5;
}
if (__pyx_t_6) {
- __pyx_t_1 = PyObject_RichCompare(__pyx_t_4, ((PyObject *)__pyx_kp_u_100), Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3099; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyObject_RichCompare(__pyx_t_4, ((PyObject *)__pyx_kp_u_104), Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3099; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3099; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_2 = ((int)__pyx_t_5);
*
* def tostringlist(element_or_tree, *args, **kwargs):
*/
- __pyx_t_1 = PyBytes_FromString(_fqtypename(__pyx_v_element_or_tree)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyBytes_FromString(_fqtypename(__pyx_v_element_or_tree)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_1));
- __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_123), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3123; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_131), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3123; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_4));
__Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
__Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_t_4), 0, 0);
PyObject *__pyx_v_element_or_tree = 0;
PyObject *__pyx_v_args = 0;
PyObject *__pyx_v_kwargs = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("tostringlist (wrapper)", 0);
* def tounicode(element_or_tree, *, method=u"xml", bint pretty_print=False,
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__tostring); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__tostring); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
int __pyx_v_pretty_print;
int __pyx_v_with_tail;
PyObject *__pyx_v_doctype = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("tounicode (wrapper)", 0);
*
* def parse(source, _BaseParser parser=None, *, base_url=None):
*/
- __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_123), ((PyObject *)Py_TYPE(__pyx_v_element_or_tree))); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_131), ((PyObject *)Py_TYPE(__pyx_v_element_or_tree))); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_4));
__Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_t_4), 0, 0);
__Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
PyObject *__pyx_v_source = 0;
struct __pyx_obj_4lxml_5etree__BaseParser *__pyx_v_parser = 0;
PyObject *__pyx_v_base_url = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("parse (wrapper)", 0);
* return result_container.result
*
*/
- __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s___TargetParserResult); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3199; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
+ __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s___TargetParserResult); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3199; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_5 = PyErr_ExceptionMatches(__pyx_t_4);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
*
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_8 = PyObject_GetAttr(__pyx_v_result_container, __pyx_n_s__result); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3200; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
+ __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_result_container, __pyx_n_s__result); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3200; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
__Pyx_GOTREF(__pyx_t_8);
__pyx_r = __pyx_t_8;
__pyx_t_8 = 0;
*/
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!(__pyx_v_self->_c_node != NULL))) {
- PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_u_124));
+ PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_u_132));
{__pyx_filename = __pyx_f[8]; __pyx_lineno = 17; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
#endif
*/
__pyx_t_1 = PyInt_FromLong(__pyx_v_self->_c_node->type); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_125), __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_133), __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_2));
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
* return Comment
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s_78); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_82); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__pyx_r = __pyx_t_3;
__pyx_t_3 = 0;
* return Entity
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__Comment); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s__Comment); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__pyx_r = __pyx_t_3;
__pyx_t_3 = 0;
* self._raise_unsupported_type()
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__Entity); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s__Entity); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__pyx_r = __pyx_t_3;
__pyx_t_3 = 0;
* return funicode(self._c_node.content)
*/
__Pyx_XDECREF(__pyx_r);
- __Pyx_INCREF(((PyObject *)__pyx_kp_s_21));
- __pyx_r = ((PyObject *)__pyx_kp_s_21);
+ __Pyx_INCREF(((PyObject *)__pyx_kp_s_25));
+ __pyx_r = ((PyObject *)__pyx_kp_s_25);
goto __pyx_L0;
goto __pyx_L4;
}
__Pyx_XDECREF(__pyx_r);
__pyx_t_3 = __pyx_f_4lxml_5etree_funicode(__pyx_v_self->_c_node->name); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_7 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_84), __pyx_t_3); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_88), __pyx_t_3); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_7));
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_r = ((PyObject *)__pyx_t_7);
* return u"<!--%s-->" % self.text
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_3 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__tag); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__tag); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
__Pyx_GIVEREF(__pyx_t_5);
__pyx_t_3 = 0;
__pyx_t_5 = 0;
- __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_68), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_72), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_5));
__Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
__pyx_r = ((PyObject *)__pyx_t_5);
* return u"&%s;" % funicode(self._c_node.name)
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_5 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__text); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__text); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
- __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_77), __pyx_t_5); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_81), __pyx_t_5); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_4));
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_r = ((PyObject *)__pyx_t_4);
__Pyx_XDECREF(__pyx_r);
__pyx_t_4 = __pyx_f_4lxml_5etree_funicode(__pyx_v_self->_c_node->name); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
- __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_84), __pyx_t_4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_88), __pyx_t_4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_5));
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_r = ((PyObject *)__pyx_t_5);
* if text:
* return u"<?%s %s?>" % (self.target, text)
*/
- __pyx_t_5 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__text); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__text); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
__pyx_v_text = __pyx_t_5;
__pyx_t_5 = 0;
* return u"<?%s?>" % self.target
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_5 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__target); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__target); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_text);
__Pyx_GIVEREF(__pyx_v_text);
__pyx_t_5 = 0;
- __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_79), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_83), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_5));
__Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
__pyx_r = ((PyObject *)__pyx_t_5);
* self._raise_unsupported_type()
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_5 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__target); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__target); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
- __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_80), __pyx_t_5); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_84), __pyx_t_5); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_4));
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_r = ((PyObject *)__pyx_t_4);
__pyx_t_6 = ((PyObject *)__pyx_f_4lxml_5etree__newReadOnlyProxy(((struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *)__pyx_t_3), __pyx_v_c_node)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- __pyx_t_7 = PyList_Append(__pyx_v_result, __pyx_t_6); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_6); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":127
* c = c + 1
* for i from 0 <= i < step:
*/
- __pyx_t_6 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s___doc); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s___doc); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_4lxml_5etree__Document))))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(((struct LxmlDocument *)__pyx_t_6), __pyx_v_c_node)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
- __pyx_t_7 = PyList_Append(__pyx_v_result, __pyx_t_3); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_3); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":128
* return _newReadOnlyProxy(self._source_proxy, c_node)
*
*/
- __Pyx_Raise(__pyx_builtin_IndexError, ((PyObject *)__pyx_kp_u_64), 0, 0);
+ __Pyx_Raise(__pyx_builtin_IndexError, ((PyObject *)__pyx_kp_u_68), 0, 0);
{__pyx_filename = __pyx_f[8]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L11;
}
if (unlikely(__pyx_skip_dispatch)) ;
/* Check if overridden in Python */
else if (unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0)) {
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s____copy__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s____copy__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)__pyx_pw_4lxml_5etree_14_ReadOnlyProxy_13__copy__)) {
__Pyx_XDECREF(__pyx_r);
static PyObject *__pyx_pw_4lxml_5etree_14_ReadOnlyProxy_17iterchildren(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_tag = 0;
PyObject *__pyx_v_reversed = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("iterchildren (wrapper)", 0);
*
*/
values[0] = ((PyObject *)Py_None);
- values[1] = __pyx_k_126;
+ values[1] = __pyx_k_134;
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
*/
__pyx_t_2 = (__pyx_v_tag != Py_None);
if (__pyx_t_2) {
- __pyx_t_1 = PyObject_RichCompare(__pyx_v_tag, ((PyObject *)__pyx_kp_s_108), Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyObject_RichCompare(__pyx_v_tag, ((PyObject *)__pyx_kp_s_116), Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_4 = __pyx_t_3;
__Pyx_XDECREF(__pyx_v_el);
__pyx_v_el = __pyx_t_8;
__pyx_t_8 = 0;
- __pyx_t_8 = PyObject_GetAttr(__pyx_v_el, __pyx_n_s__tag); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_el, __pyx_n_s__tag); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_9 = PyObject_RichCompare(__pyx_t_8, __pyx_v_tag, Py_EQ); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
if (__pyx_t_4) {
- if (unlikely(__Pyx_PyList_Append(__pyx_t_1, (PyObject*)__pyx_v_el))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_v_el))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L6;
}
__pyx_L6:;
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
- __pyx_t_5 = ((PyObject *)__pyx_t_1);
- __Pyx_INCREF(__pyx_t_5);
- __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_v_children);
- __pyx_v_children = __pyx_t_5;
- __pyx_t_5 = 0;
+ __pyx_v_children = ((PyObject *)__pyx_t_1);
+ __pyx_t_1 = 0;
goto __pyx_L3;
}
__pyx_L3:;
* return iter(children)
*
*/
- __pyx_t_5 = PyObject_GetItem(__pyx_v_children, __pyx_k_slice_127); if (!__pyx_t_5) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_t_5);
+ __pyx_t_1 = PyObject_GetItem(__pyx_v_children, __pyx_k_slice_135); if (!__pyx_t_1) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_v_children);
- __pyx_v_children = __pyx_t_5;
- __pyx_t_5 = 0;
+ __pyx_v_children = __pyx_t_1;
+ __pyx_t_1 = 0;
goto __pyx_L7;
}
__pyx_L7:;
* cpdef getchildren(self):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_5 = PyObject_GetIter(__pyx_v_children); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 196; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_t_5);
- __pyx_r = __pyx_t_5;
- __pyx_t_5 = 0;
+ __pyx_t_1 = PyObject_GetIter(__pyx_v_children); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 196; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_1);
+ __pyx_r = __pyx_t_1;
+ __pyx_t_1 = 0;
goto __pyx_L0;
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
if (unlikely(__pyx_skip_dispatch)) ;
/* Check if overridden in Python */
else if (unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0)) {
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__getchildren); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 198; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__getchildren); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 198; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)__pyx_pw_4lxml_5etree_14_ReadOnlyProxy_19getchildren)) {
__Pyx_XDECREF(__pyx_r);
__pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree__newReadOnlyProxy(((struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *)__pyx_t_1), __pyx_v_c_node)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- __pyx_t_6 = PyList_Append(__pyx_v_result, __pyx_t_2); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_2); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
goto __pyx_L5;
}
* tree.xmlNodeSetName(self._c_node, _xcstr(value_utf))
*/
#ifndef CYTHON_WITHOUT_ASSERTIONS
- __pyx_t_2 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_kp_u_81), __pyx_v_value, Py_NE)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 264; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_kp_u_85), __pyx_v_value, Py_NE)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 264; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
if (__pyx_t_2) {
- __pyx_t_3 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_kp_u_82), __pyx_v_value, Py_NE)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 264; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_kp_u_86), __pyx_v_value, Py_NE)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 264; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_t_4 = __pyx_t_3;
} else {
__pyx_t_4 = __pyx_t_2;
* tree.xmlNodeSetName(self._c_node, _xcstr(value_utf))
*
*/
- __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_83), __pyx_v_value); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 265; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_87), __pyx_v_value); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 265; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_1));
PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_t_1));
__Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = __pyx_f_4lxml_5etree_funicode(__pyx_v_self->__pyx_base._c_node->name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 270; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_84), __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 270; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_88), __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 270; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_2));
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_r = ((PyObject *)__pyx_t_2);
static PyObject *__pyx_pw_4lxml_5etree_21_ReadOnlyElementProxy_1get(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_key = 0;
PyObject *__pyx_v_default = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("get (wrapper)", 0);
* elif c_node.type == tree.XML_PI_NODE:
* el = _ReadOnlyPIProxy.__new__(_ReadOnlyPIProxy)
*/
- __pyx_t_2 = __Pyx_tp_new(((PyObject*)__pyx_ptype_4lxml_5etree__ReadOnlyElementProxy)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 323; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __pyx_tp_new_4lxml_5etree__ReadOnlyElementProxy(((PyTypeObject *)((PyObject*)__pyx_ptype_4lxml_5etree__ReadOnlyElementProxy)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 323; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
if (!(likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_4lxml_5etree__ReadOnlyProxy)))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 323; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_v_el = ((struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *)__pyx_t_2);
* elif c_node.type in (tree.XML_COMMENT_NODE,
* tree.XML_ENTITY_REF_NODE):
*/
- __pyx_t_2 = __Pyx_tp_new(((PyObject*)__pyx_ptype_4lxml_5etree__ReadOnlyPIProxy)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 325; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __pyx_tp_new_4lxml_5etree__ReadOnlyPIProxy(((PyTypeObject *)((PyObject*)__pyx_ptype_4lxml_5etree__ReadOnlyPIProxy)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 325; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
if (!(likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_4lxml_5etree__ReadOnlyProxy)))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 325; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_v_el = ((struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *)__pyx_t_2);
* else:
* raise TypeError("Unsupported element type: %d" % c_node.type)
*/
- __pyx_t_2 = __Pyx_tp_new(((PyObject*)__pyx_ptype_4lxml_5etree__ReadOnlyProxy)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 328; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __pyx_tp_new_4lxml_5etree__ReadOnlyProxy(((PyTypeObject *)((PyObject*)__pyx_ptype_4lxml_5etree__ReadOnlyProxy)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 328; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
if (!(likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_4lxml_5etree__ReadOnlyProxy)))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 328; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_v_el = ((struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *)__pyx_t_2);
*/
__pyx_t_2 = PyInt_FromLong(__pyx_v_c_node->type); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 330; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_6 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_128), __pyx_t_2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 330; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_136), __pyx_t_2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 330; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_6));
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 330; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append");
{__pyx_filename = __pyx_f[8]; __pyx_lineno = 342; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
- __pyx_t_3 = PyList_Append(__pyx_v_source_proxy->_dependent_proxies, ((PyObject *)__pyx_v_el)); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 342; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_source_proxy->_dependent_proxies, ((PyObject *)__pyx_v_el)); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 342; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
__pyx_L3:;
*
* # opaque wrapper around non-element nodes, e.g. the document node
*/
- if (__Pyx_PySequence_DelSlice(((PyObject *)__pyx_v_sourceProxy->_dependent_proxies), 0, PY_SSIZE_T_MAX) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 356; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (unlikely(((PyObject *)__pyx_v_sourceProxy->_dependent_proxies) == Py_None)) {
+ PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
+ {__pyx_filename = __pyx_f[8]; __pyx_lineno = 356; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ }
+ if (__Pyx_PyObject_DelSlice(((PyObject *)__pyx_v_sourceProxy->_dependent_proxies), 0, 0, NULL, NULL, NULL, 0, 0, 1) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 356; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
*
* @cython.final
*/
- __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_129), 0, 0);
+ __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_137), 0, 0);
{__pyx_filename = __pyx_f[8]; __pyx_lineno = 367; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_r = 0;
*/
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!(__pyx_v_self->__pyx_base._c_node != NULL))) {
- PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_u_124));
+ PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_u_132));
{__pyx_filename = __pyx_f[8]; __pyx_lineno = 375; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
#endif
* elif c_node.type not in (tree.XML_PI_NODE, tree.XML_COMMENT_NODE):
* raise TypeError, u"unsupported element type for top-level node: %d" % c_node.type
*/
- __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_130), 0, 0);
+ __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_138), 0, 0);
{__pyx_filename = __pyx_f[8]; __pyx_lineno = 387; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L4;
}
*/
__pyx_t_7 = PyInt_FromLong(__pyx_v_c_node->type); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
- __pyx_t_8 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_131), __pyx_t_7); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_8 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_139), __pyx_t_7); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_8));
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_t_8), 0, 0);
* else:
* node = _OpaqueNodeWrapper.__new__(_OpaqueNodeWrapper)
*/
- __pyx_t_5 = __Pyx_tp_new(((PyObject*)__pyx_ptype_4lxml_5etree__OpaqueDocumentWrapper)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 406; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __pyx_tp_new_4lxml_5etree__OpaqueDocumentWrapper(((PyTypeObject *)((PyObject*)__pyx_ptype_4lxml_5etree__OpaqueDocumentWrapper)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 406; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
if (!(likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_4lxml_5etree__OpaqueNodeWrapper)))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 406; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_v_node = ((struct __pyx_obj_4lxml_5etree__OpaqueNodeWrapper *)__pyx_t_5);
* node._c_node = c_node
* return node
*/
- __pyx_t_5 = __Pyx_tp_new(((PyObject*)__pyx_ptype_4lxml_5etree__OpaqueNodeWrapper)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 408; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __pyx_tp_new_4lxml_5etree__OpaqueNodeWrapper(((PyTypeObject *)((PyObject*)__pyx_ptype_4lxml_5etree__OpaqueNodeWrapper)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 408; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
if (!(likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_4lxml_5etree__OpaqueNodeWrapper)))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 408; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_v_node = ((struct __pyx_obj_4lxml_5etree__OpaqueNodeWrapper *)__pyx_t_5);
* return funicode(self._c_node.content)
*/
__Pyx_XDECREF(__pyx_r);
- __Pyx_INCREF(((PyObject *)__pyx_kp_s_21));
- __pyx_r = ((PyObject *)__pyx_kp_s_21);
+ __Pyx_INCREF(((PyObject *)__pyx_kp_s_25));
+ __pyx_r = ((PyObject *)__pyx_kp_s_25);
goto __pyx_L0;
goto __pyx_L3;
}
* c_text = _xcstr(value)
*/
#ifndef CYTHON_WITHOUT_ASSERTIONS
- __pyx_t_2 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_kp_u_81), __pyx_v_value, Py_NE)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 463; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_kp_u_85), __pyx_v_value, Py_NE)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 463; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
if (__pyx_t_2) {
- __pyx_t_3 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_kp_u_82), __pyx_v_value, Py_NE)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 463; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_kp_u_86), __pyx_v_value, Py_NE)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 463; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_t_4 = __pyx_t_3;
} else {
__pyx_t_4 = __pyx_t_2;
* c_text = _xcstr(value)
* tree.xmlNodeSetName(self._c_node, c_text)
*/
- __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_83), __pyx_v_value); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 464; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_87), __pyx_v_value); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 464; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_1));
PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_t_1));
__Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
* elif c_node.type == tree.XML_PI_NODE:
* el = _ModifyContentOnlyPIProxy.__new__(_ModifyContentOnlyPIProxy)
*/
- __pyx_t_2 = __Pyx_tp_new(((PyObject*)__pyx_ptype_4lxml_5etree__AppendOnlyElementProxy)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 514; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __pyx_tp_new_4lxml_5etree__AppendOnlyElementProxy(((PyTypeObject *)((PyObject*)__pyx_ptype_4lxml_5etree__AppendOnlyElementProxy)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 514; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
if (!(likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_4lxml_5etree__ReadOnlyProxy)))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 514; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_v_el = ((struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *)__pyx_t_2);
* elif c_node.type == tree.XML_COMMENT_NODE:
* el = _ModifyContentOnlyProxy.__new__(_ModifyContentOnlyProxy)
*/
- __pyx_t_2 = __Pyx_tp_new(((PyObject*)__pyx_ptype_4lxml_5etree__ModifyContentOnlyPIProxy)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 516; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __pyx_tp_new_4lxml_5etree__ModifyContentOnlyPIProxy(((PyTypeObject *)((PyObject*)__pyx_ptype_4lxml_5etree__ModifyContentOnlyPIProxy)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 516; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
if (!(likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_4lxml_5etree__ReadOnlyProxy)))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 516; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_v_el = ((struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *)__pyx_t_2);
* else:
* raise TypeError("Unsupported element type: %d" % c_node.type)
*/
- __pyx_t_2 = __Pyx_tp_new(((PyObject*)__pyx_ptype_4lxml_5etree__ModifyContentOnlyProxy)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 518; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __pyx_tp_new_4lxml_5etree__ModifyContentOnlyProxy(((PyTypeObject *)((PyObject*)__pyx_ptype_4lxml_5etree__ModifyContentOnlyProxy)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 518; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
if (!(likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_4lxml_5etree__ReadOnlyProxy)))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 518; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_v_el = ((struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *)__pyx_t_2);
*/
__pyx_t_2 = PyInt_FromLong(__pyx_v_c_node->type); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_128), __pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_136), __pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_3));
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
*
* if c_node is NULL:
*/
- __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_132), ((PyObject *)Py_TYPE(__pyx_v_element))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 534; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_140), ((PyObject *)Py_TYPE(__pyx_v_element))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 534; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_3));
__Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_t_3), 0, 0);
__Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
* return c_node
*
*/
- __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_133), 0, 0);
+ __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_141), 0, 0);
{__pyx_filename = __pyx_f[8]; __pyx_lineno = 537; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L4;
}
*
* if c_node is NULL:
*/
- __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_132), ((PyObject *)Py_TYPE(__pyx_v_element))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 549; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_140), ((PyObject *)Py_TYPE(__pyx_v_element))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 549; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_3));
__Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_t_3), 0, 0);
__Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
* raise TypeError, u"invalid element" # <<<<<<<<<<<<<<
* return c_node
*/
- __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_133), 0, 0);
+ __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_141), 0, 0);
{__pyx_filename = __pyx_f[8]; __pyx_lineno = 552; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L4;
}
PyObject *__pyx_v_nsmap = 0;
PyObject *__pyx_v_children = 0;
PyObject *__pyx_v__extra = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
* try:
* namespace = _utf8(_getattr(self, 'NAMESPACE'))
*/
- __pyx_t_1 = PyObject_GetAttr(__pyx_builtin_object, __pyx_n_s____getattribute__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 49; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_builtin_object, __pyx_n_s____getattribute__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 49; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_v__getattr = __pyx_t_1;
__pyx_t_1 = 0;
* try:
* parser = _getattr(self, 'PARSER')
*/
- __pyx_t_8 = PyObject_GetAttr(__pyx_v_tag, __pyx_n_s__split); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L15_except_error;}
+ __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_tag, __pyx_n_s__split); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L15_except_error;}
__Pyx_GOTREF(__pyx_t_8);
- __pyx_t_11 = PyObject_Call(__pyx_t_8, ((PyObject *)__pyx_k_tuple_134), NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L15_except_error;}
+ __pyx_t_11 = PyObject_Call(__pyx_t_8, ((PyObject *)__pyx_k_tuple_142), NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L15_except_error;}
__Pyx_GOTREF(__pyx_t_11);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
- __pyx_t_8 = __Pyx_GetItemInt(__pyx_t_11, -1, sizeof(long), PyInt_FromLong); if (!__pyx_t_8) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L15_except_error;}
+ __pyx_t_8 = __Pyx_GetItemInt(__pyx_t_11, -1, sizeof(long), PyInt_FromLong, 0, 1, 1); if (!__pyx_t_8) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L15_except_error;}
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_DECREF(__pyx_v_tag);
__pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_10 < 0)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
if (!__pyx_t_10) {
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
- __Pyx_INCREF(((PyObject *)__pyx_kp_s_21));
- __pyx_t_1 = __pyx_kp_s_21;
+ __Pyx_INCREF(((PyObject *)__pyx_kp_s_25));
+ __pyx_t_1 = __pyx_kp_s_25;
} else {
__pyx_t_1 = __pyx_t_7;
__pyx_t_7 = 0;
__pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_10 < 0)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
if (!__pyx_t_10) {
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
- __Pyx_INCREF(((PyObject *)__pyx_kp_s_21));
- __pyx_t_1 = __pyx_kp_s_21;
+ __Pyx_INCREF(((PyObject *)__pyx_kp_s_25));
+ __pyx_t_1 = __pyx_kp_s_25;
} else {
__pyx_t_1 = __pyx_t_7;
__pyx_t_7 = 0;
*
* cdef class CommentBase(_Comment):
*/
- __pyx_t_7 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_135), ((PyObject *)Py_TYPE(__pyx_v_child))); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_143), ((PyObject *)Py_TYPE(__pyx_v_child))); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_7));
__Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_t_7), 0, 0);
__Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
static int __pyx_pw_4lxml_5etree_11CommentBase_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4lxml_5etree_11CommentBase_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_text = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
* else:
* text = _utf8(text)
*/
- __Pyx_INCREF(((PyObject *)__pyx_kp_b_21));
+ __Pyx_INCREF(((PyObject *)__pyx_kp_b_25));
__Pyx_DECREF(__pyx_v_text);
- __pyx_v_text = ((PyObject *)__pyx_kp_b_21);
+ __pyx_v_text = ((PyObject *)__pyx_kp_b_25);
goto __pyx_L3;
}
/*else*/ {
static int __pyx_pw_4lxml_5etree_6PIBase_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_target = 0;
PyObject *__pyx_v_text = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
* else:
* text = _utf8(text)
*/
- __Pyx_INCREF(((PyObject *)__pyx_kp_b_21));
+ __Pyx_INCREF(((PyObject *)__pyx_kp_b_25));
__Pyx_DECREF(__pyx_v_text);
- __pyx_v_text = ((PyObject *)__pyx_kp_b_21);
+ __pyx_v_text = ((PyObject *)__pyx_kp_b_25);
goto __pyx_L3;
}
/*else*/ {
static int __pyx_pw_4lxml_5etree_10EntityBase_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4lxml_5etree_10EntityBase_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_name = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
* elif not _xmlNameIsValid(c_name):
* raise ValueError, u"Invalid entity reference: '%s'" % name
*/
- __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_116), __pyx_v_name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_124), __pyx_v_name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_1));
__Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_1), 0, 0);
__Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
* c_doc = _newXMLDoc()
* doc = _documentFactory(c_doc, None)
*/
- __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_117), __pyx_v_name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_125), __pyx_v_name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_1));
__Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_1), 0, 0);
__Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
static int __pyx_pw_4lxml_5etree_26FallbackElementClassLookup_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4lxml_5etree_26FallbackElementClassLookup_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
struct LxmlElementClassLookup *__pyx_v_fallback = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
static PyObject *__pyx_pw_4lxml_5etree_26FallbackElementClassLookup_5set_fallback(PyObject *__pyx_v_self, PyObject *__pyx_v_lookup); /*proto*/
static char __pyx_doc_4lxml_5etree_26FallbackElementClassLookup_4set_fallback[] = "set_fallback(self, lookup)\n\n Sets the fallback scheme for this lookup method.\n ";
static PyObject *__pyx_pw_4lxml_5etree_26FallbackElementClassLookup_5set_fallback(PyObject *__pyx_v_self, PyObject *__pyx_v_lookup) {
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("set_fallback (wrapper)", 0);
PyObject *__pyx_v_comment = 0;
PyObject *__pyx_v_pi = 0;
PyObject *__pyx_v_entity = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
*
* if comment is None:
*/
- __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_136), 0, 0);
+ __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_144), 0, 0);
{__pyx_filename = __pyx_f[9]; __pyx_lineno = 254; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
__pyx_L3:;
*
* if entity is None:
*/
- __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_137), 0, 0);
+ __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_145), 0, 0);
{__pyx_filename = __pyx_f[9]; __pyx_lineno = 261; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
__pyx_L4:;
*
* if pi is None:
*/
- __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_138), 0, 0);
+ __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_146), 0, 0);
{__pyx_filename = __pyx_f[9]; __pyx_lineno = 268; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
__pyx_L5:;
*
* cdef object _lookupDefaultElementClass(state, _Document _doc, xmlNode* c_node):
*/
- __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_139), 0, 0);
+ __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_147), 0, 0);
{__pyx_filename = __pyx_f[9]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
__pyx_L6:;
* if tree.xmlStrstr(c_node.content, <unsigned char*>"text/xsl") is not NULL or \
* tree.xmlStrstr(c_node.content, <unsigned char*>"text/xml") is not NULL:
*/
- __pyx_t_2 = (xmlStrcmp(__pyx_v_c_node->name, ((unsigned char *)((unsigned char *)__pyx_k_140))) == 0);
+ __pyx_t_2 = (xmlStrcmp(__pyx_v_c_node->name, ((unsigned char *)((unsigned char *)__pyx_k_148))) == 0);
if (__pyx_t_2) {
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":299
* tree.xmlStrstr(c_node.content, <unsigned char*>"text/xml") is not NULL:
* return _XSLTProcessingInstruction
*/
- __pyx_t_2 = (xmlStrstr(__pyx_v_c_node->content, ((unsigned char *)((unsigned char *)__pyx_k_141))) != NULL);
+ __pyx_t_2 = (xmlStrstr(__pyx_v_c_node->content, ((unsigned char *)((unsigned char *)__pyx_k_149))) != NULL);
if (!__pyx_t_2) {
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":300
* return _XSLTProcessingInstruction
* return _ProcessingInstruction
*/
- __pyx_t_3 = (xmlStrstr(__pyx_v_c_node->content, ((unsigned char *)((unsigned char *)__pyx_k_142))) != NULL);
+ __pyx_t_3 = (xmlStrstr(__pyx_v_c_node->content, ((unsigned char *)((unsigned char *)__pyx_k_150))) != NULL);
__pyx_t_1 = __pyx_t_3;
} else {
__pyx_t_1 = __pyx_t_2;
if (unlikely(!0)) {
__pyx_t_4 = PyInt_FromLong(__pyx_v_c_node->type); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 306; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
- __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_143), __pyx_t_4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 306; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_151), __pyx_t_4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 306; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_5));
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_t_5));
PyObject *__pyx_v_attribute_name = 0;
PyObject *__pyx_v_class_mapping = 0;
struct LxmlElementClassLookup *__pyx_v_fallback = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
*
* cdef object _attribute_class_lookup(state, _Document doc, xmlNode* c_node):
*/
- __pyx_t_3 = PyObject_GetAttr(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_FallbackElementClassLookup)), __pyx_n_s____init__); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 343; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_FallbackElementClassLookup)), __pyx_n_s____init__); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 343; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 343; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
CYTHON_UNUSED PyObject *__pyx_v_doc = 0;
CYTHON_UNUSED PyObject *__pyx_v_namespace = 0;
CYTHON_UNUSED PyObject *__pyx_v_name = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("lookup (wrapper)", 0);
* if cls is not None:
* return cls
*/
- __pyx_t_2 = PyObject_GetAttr(((PyObject *)__pyx_v_lookup), __pyx_n_s__lookup); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 424; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_lookup), __pyx_n_s__lookup); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 424; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = PyTuple_New(4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 424; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
static PyObject *__pyx_pw_4lxml_5etree_24PythonElementClassLookup_3lookup(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
CYTHON_UNUSED PyObject *__pyx_v_doc = 0;
CYTHON_UNUSED PyObject *__pyx_v_element = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("lookup (wrapper)", 0);
* _freeReadOnlyProxies(proxy)
*
*/
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_lookup), __pyx_n_s__lookup); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_lookup), __pyx_n_s__lookup); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
static PyMethodDef __pyx_mdef_4lxml_5etree_39set_element_class_lookup = {__Pyx_NAMESTR("set_element_class_lookup"), (PyCFunction)__pyx_pw_4lxml_5etree_39set_element_class_lookup, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_38set_element_class_lookup)};
static PyObject *__pyx_pw_4lxml_5etree_39set_element_class_lookup(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
struct LxmlElementClassLookup *__pyx_v_lookup = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("set_element_class_lookup (wrapper)", 0);
static int __pyx_pw_4lxml_5etree_18_NamespaceRegistry_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4lxml_5etree_18_NamespaceRegistry_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_ns_uri = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
* for name, item in class_dict_iterable:
* if (name is None or name[:1] != '_') and callable(item):
*/
- __pyx_t_2 = PyObject_GetAttr(__pyx_v_class_dict_iterable, __pyx_n_s__items); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_class_dict_iterable, __pyx_n_s__items); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
*/
__pyx_t_1 = (__pyx_v_name == Py_None);
if (!__pyx_t_1) {
- __pyx_t_2 = __Pyx_PySequence_GetSlice(__pyx_v_name, 0, 1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_v_name, 0, 1, NULL, NULL, &__pyx_k_slice_152, 0, 1, 1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_7 = PyObject_RichCompare(__pyx_t_2, ((PyObject *)__pyx_n_s___), Py_NE); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
* return <object>dict_result
*
*/
- __Pyx_Raise(__pyx_builtin_KeyError, ((PyObject *)__pyx_kp_u_144), 0, 0);
+ __Pyx_Raise(__pyx_builtin_KeyError, ((PyObject *)__pyx_kp_u_153), 0, 0);
{__pyx_filename = __pyx_f[10]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L3;
}
*/
__pyx_t_1 = ((PyObject *)__pyx_v_self->_entries);
__Pyx_INCREF(__pyx_t_1);
- __pyx_t_2 = PyBytes_FromString(__pyx_v_name); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyBytes_FromString(__pyx_v_name); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_2));
__pyx_v_dict_result = PyDict_GetItem(__pyx_t_1, ((PyObject *)__pyx_t_2));
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
* return <object>dict_result
*
*/
- __Pyx_Raise(__pyx_builtin_KeyError, ((PyObject *)__pyx_kp_u_144), 0, 0);
+ __Pyx_Raise(__pyx_builtin_KeyError, ((PyObject *)__pyx_kp_u_153), 0, 0);
{__pyx_filename = __pyx_f[10]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L3;
}
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "items");
{__pyx_filename = __pyx_f[10]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
- __pyx_t_1 = PyDict_Items(__pyx_v_self->_entries); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyDict_Items(__pyx_v_self->_entries); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "items");
{__pyx_filename = __pyx_f[10]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
- __pyx_t_1 = PyDict_Items(__pyx_v_self->_entries); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyDict_Items(__pyx_v_self->_entries); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
* u"Registered element classes must be subtypes of ElementBase"
* if name is not None:
*/
- __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s_145); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_154); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
- __Pyx_Raise(__pyx_t_4, ((PyObject *)__pyx_kp_u_146), 0, 0);
+ __Pyx_Raise(__pyx_t_4, ((PyObject *)__pyx_kp_u_155), 0, 0);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
{__pyx_filename = __pyx_f[10]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L3;
*
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_147), __pyx_v_self->__pyx_base._ns_uri); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_156), __pyx_v_self->__pyx_base._ns_uri); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_1));
__pyx_r = ((PyObject *)__pyx_t_1);
__pyx_t_1 = 0;
static int __pyx_pw_4lxml_5etree_27ElementNamespaceClassLookup_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4lxml_5etree_27ElementNamespaceClassLookup_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
struct LxmlElementClassLookup *__pyx_v_fallback = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
* self._lookup_function = _find_nselement_class
*
*/
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_FallbackElementClassLookup)), __pyx_n_s____init__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_FallbackElementClassLookup)), __pyx_n_s____init__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
* u"Registered functions must be callable."
* if not name:
*/
- __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s_145); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_154); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
- __Pyx_Raise(__pyx_t_3, ((PyObject *)__pyx_kp_u_148), 0, 0);
+ __Pyx_Raise(__pyx_t_3, ((PyObject *)__pyx_kp_u_157), 0, 0);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
{__pyx_filename = __pyx_f[10]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L3;
* u"extensions must have non empty names"
* self._entries[_utf8(name)] = item
*/
- __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_149), 0, 0);
+ __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_158), 0, 0);
{__pyx_filename = __pyx_f[10]; __pyx_lineno = 198; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L4;
}
* @cython.final
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_150), __pyx_v_self->__pyx_base._ns_uri); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_159), __pyx_v_self->__pyx_base._ns_uri); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_1));
__pyx_r = ((PyObject *)__pyx_t_1);
__pyx_t_1 = 0;
* return self._prefix
*/
__Pyx_XDECREF(__pyx_r);
- __Pyx_INCREF(((PyObject *)__pyx_kp_s_21));
- __pyx_r = ((PyObject *)__pyx_kp_s_21);
+ __Pyx_INCREF(((PyObject *)__pyx_kp_s_25));
+ __pyx_r = ((PyObject *)__pyx_kp_s_25);
goto __pyx_L0;
goto __pyx_L3;
}
* prefix = None # empty prefix
* if prefix is None:
*/
- __pyx_t_1 = PyObject_RichCompare(__pyx_v_prefix, ((PyObject *)__pyx_kp_s_21), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyObject_RichCompare(__pyx_v_prefix, ((PyObject *)__pyx_kp_s_25), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (__pyx_t_2) {
__Pyx_INCREF(((PyObject *)__pyx_v_registry->__pyx_base.__pyx_base._ns_uri_utf));
PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_registry->__pyx_base.__pyx_base._ns_uri_utf));
__Pyx_GIVEREF(((PyObject *)__pyx_v_registry->__pyx_base.__pyx_base._ns_uri_utf));
- __pyx_t_8 = PyList_Append(__pyx_v_ns_prefixes, ((PyObject *)__pyx_t_5)); if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 237; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_ns_prefixes, ((PyObject *)__pyx_t_5)); if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 237; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
goto __pyx_L6;
}
CYTHON_UNUSED PyObject *__pyx_v_system_url = 0;
CYTHON_UNUSED PyObject *__pyx_v_public_id = 0;
CYTHON_UNUSED PyObject *__pyx_v_context = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("resolve (wrapper)", 0);
PyObject *__pyx_v_string = 0;
CYTHON_UNUSED PyObject *__pyx_v_context = 0;
PyObject *__pyx_v_base_url = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("resolve_string (wrapper)", 0);
* doc_ref = _InputDocument()
* doc_ref._type = PARSER_DATA_STRING
*/
- __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_s_151), 0, 0);
+ __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_s_160), 0, 0);
{__pyx_filename = __pyx_f[11]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L3;
}
static PyObject *__pyx_pw_4lxml_5etree_8Resolver_7resolve_filename(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_filename = 0;
CYTHON_UNUSED PyObject *__pyx_v_context = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("resolve_filename (wrapper)", 0);
CYTHON_UNUSED PyObject *__pyx_v_context = 0;
PyObject *__pyx_v_base_url = 0;
int __pyx_v_close;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("resolve_file (wrapper)", 0);
* except AttributeError:
* raise TypeError, u"Argument is not a file-like object"
*/
- __pyx_t_4 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__read); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_n_s__read); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
}
* doc_ref = _InputDocument()
* doc_ref._type = PARSER_DATA_FILE
*/
- __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_152), 0, 0);
+ __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_161), 0, 0);
{__pyx_filename = __pyx_f[11]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
static int __pyx_pw_4lxml_5etree_17_ResolverRegistry_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4lxml_5etree_17_ResolverRegistry_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
struct __pyx_obj_4lxml_5etree_Resolver *__pyx_v_default_resolver = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
static PyObject *__pyx_pw_4lxml_5etree_17_ResolverRegistry_3add(PyObject *__pyx_v_self, PyObject *__pyx_v_resolver); /*proto*/
static char __pyx_doc_4lxml_5etree_17_ResolverRegistry_2add[] = "add(self, resolver)\n\n Register a resolver.\n\n For each requested entity, the 'resolve' method of the resolver will\n be called and the result will be passed to the parser. If this method\n returns None, the request will be delegated to other resolvers or the\n default resolver. The resolvers will be tested in an arbitrary order\n until the first match is found.\n ";
static PyObject *__pyx_pw_4lxml_5etree_17_ResolverRegistry_3add(PyObject *__pyx_v_self, PyObject *__pyx_v_resolver) {
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("add (wrapper)", 0);
*
* def remove(self, resolver):
*/
- __pyx_t_1 = PyObject_GetAttr(__pyx_v_self->_resolvers, __pyx_n_s__add); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_resolvers, __pyx_n_s__add); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
*
* cdef _ResolverRegistry _copy(self):
*/
- __pyx_t_1 = PyObject_GetAttr(__pyx_v_self->_resolvers, __pyx_n_s__discard); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_resolvers, __pyx_n_s__discard); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
* return registry
*
*/
- __pyx_t_2 = PyObject_GetAttr(__pyx_v_self->_resolvers, __pyx_n_s__copy); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_resolvers, __pyx_n_s__copy); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
PyObject *__pyx_v_system_url = 0;
PyObject *__pyx_v_public_id = 0;
PyObject *__pyx_v_context = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("resolve (wrapper)", 0);
* if result is not None:
* return result
*/
- __pyx_t_4 = PyObject_GetAttr(__pyx_v_resolver, __pyx_n_s__resolve); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_resolver, __pyx_n_s__resolve); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
* def __repr__(self):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self->_default_resolver), __pyx_n_s__resolve); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_default_resolver), __pyx_n_s__resolve); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
PyObject *__pyx_v_code = 0;
PyObject *__pyx_v_line = 0;
PyObject *__pyx_v_column = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
__pyx_t_3 = PyObject_Call(__pyx_builtin_super, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
- __pyx_t_2 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s____init__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s____init__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[5]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
* self.position = (line, column)
* self.code = code
*/
- __pyx_t_4 = PyObject_GetAttr(__pyx_v_4lxml_5etree__LxmlSyntaxError, __pyx_n_s____init__); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 23; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree__LxmlSyntaxError, __pyx_n_s____init__); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 23; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 23; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__Pyx_INCREF(__pyx_v_column);
PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_column);
__Pyx_GIVEREF(__pyx_v_column);
- if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__position, ((PyObject *)__pyx_t_2)) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s__position, ((PyObject *)__pyx_t_2)) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":25
*
* cdef object _LxmlSyntaxError = LxmlSyntaxError
*/
- if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__code, __pyx_v_code) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s__code, __pyx_v_code) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
{__pyx_filename = __pyx_f[5]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
- if (PyDict_SetItem(((PyObject *)((PyObject*)__pyx_v_thread_dict)), ((PyObject *)__pyx_n_u_153), ((PyObject *)__pyx_v_self)) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(((PyObject *)((PyObject*)__pyx_v_thread_dict)), ((PyObject *)__pyx_n_u_162), ((PyObject *)__pyx_v_self)) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L3;
}
__pyx_L3:;
* if result is not NULL:
* return <object>result
*/
- __pyx_v_result = PyDict_GetItem(((PyObject *)__pyx_v_d), ((PyObject *)__pyx_n_u_153));
+ __pyx_v_result = PyDict_GetItem(((PyObject *)__pyx_v_d), ((PyObject *)__pyx_n_u_162));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":83
* d = <dict>thread_dict
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
{__pyx_filename = __pyx_f[5]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
- if (PyDict_SetItem(((PyObject *)__pyx_v_d), ((PyObject *)__pyx_n_u_153), ((PyObject *)__pyx_v_context)) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(((PyObject *)__pyx_v_d), ((PyObject *)__pyx_n_u_162), ((PyObject *)__pyx_v_context)) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":87
* context = _ParserDictionaryContext()
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
{__pyx_filename = __pyx_f[5]; __pyx_lineno = 161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
- __pyx_t_1 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_context->_implied_parser_contexts), -1, sizeof(long), PyInt_FromLong); if (!__pyx_t_1) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_context->_implied_parser_contexts), -1, sizeof(long), PyInt_FromLong, 1, 1, 1); if (!__pyx_t_1) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 161; __pyx_clineno = __LINE__; goto __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__ParserContext))))) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_v_implied_context = ((struct __pyx_obj_4lxml_5etree__ParserContext *)__pyx_t_1);
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append");
{__pyx_filename = __pyx_f[5]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
- __pyx_t_2 = PyList_Append(__pyx_v_context->_implied_parser_contexts, ((PyObject *)__pyx_v_parser_context)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyList_Append(__pyx_v_context->_implied_parser_contexts, ((PyObject *)__pyx_v_parser_context)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L0;
__pyx_L1_error:;
* l = python.PyUnicode_GET_DATA_SIZE(utext)
* buffer = python.PyUnicode_AS_DATA(utext)
*/
- __pyx_t_1 = ((PyObject *)PyUnicode_DecodeUTF8(__pyx_k_154, 7, NULL)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 205; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = ((PyObject *)PyUnicode_DecodeUTF8(__pyx_k_163, 7, NULL)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 205; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_utext = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
* elif l >= 4 and \
* buffer[0] == c'\0' and buffer[1] == c'<' and \
*/
- __pyx_v_enc = __pyx_k_155;
+ __pyx_v_enc = __pyx_k_164;
goto __pyx_L4;
}
* else:
* # not my fault, it's YOUR broken system :)
*/
- __pyx_v_enc = __pyx_k_156;
+ __pyx_v_enc = __pyx_k_165;
goto __pyx_L4;
}
/*else*/ {
* elif enc == tree.XML_CHAR_ENCODING_UTF16BE:
* return "UTF-16BE"
*/
- __pyx_r = __pyx_k_155;
+ __pyx_r = __pyx_k_164;
goto __pyx_L0;
goto __pyx_L3;
}
* elif enc == tree.XML_CHAR_ENCODING_UCS4LE:
* return "UCS-4LE"
*/
- __pyx_r = __pyx_k_156;
+ __pyx_r = __pyx_k_165;
goto __pyx_L0;
goto __pyx_L3;
}
* elif enc == tree.XML_CHAR_ENCODING_UCS4BE:
* return "UCS-4BE"
*/
- __pyx_r = __pyx_k_157;
+ __pyx_r = __pyx_k_166;
goto __pyx_L0;
goto __pyx_L3;
}
* elif enc == tree.XML_CHAR_ENCODING_NONE:
* return NULL
*/
- __pyx_r = __pyx_k_158;
+ __pyx_r = __pyx_k_167;
goto __pyx_L0;
goto __pyx_L3;
}
PyObject *__pyx_v_url = 0;
PyObject *__pyx_v_encoding = 0;
int __pyx_v_close_file;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
* self._bytes_read = 0
*
*/
- __Pyx_INCREF(((PyObject *)__pyx_kp_b_21));
- __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_21));
+ __Pyx_INCREF(((PyObject *)__pyx_kp_b_25));
+ __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_25));
__Pyx_GOTREF(__pyx_v_self->_bytes);
__Pyx_DECREF(__pyx_v_self->_bytes);
- __pyx_v_self->_bytes = ((PyObject *)__pyx_kp_b_21);
+ __pyx_v_self->_bytes = ((PyObject *)__pyx_kp_b_25);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":277
* self._url = url
* except AttributeError:
* close = None
*/
- __pyx_t_7 = PyObject_GetAttr(__pyx_v_self->_filelike, __pyx_n_s__close); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 283; __pyx_clineno = __LINE__; goto __pyx_L7_error;}
+ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_filelike, __pyx_n_s__close); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 283; __pyx_clineno = __LINE__; goto __pyx_L7_error;}
__Pyx_GOTREF(__pyx_t_7);
__pyx_v_close = __pyx_t_7;
__pyx_t_7 = 0;
*/
{
#ifdef WITH_THREAD
- PyThreadState *_save = NULL;
- #endif
+ PyThreadState *_save;
Py_UNBLOCK_THREADS
+ #endif
/*try:*/ {
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":314
__pyx_why = 0; goto __pyx_L5;
__pyx_L3: __pyx_why = 3; goto __pyx_L5;
__pyx_L5:;
+ #ifdef WITH_THREAD
Py_BLOCK_THREADS
+ #endif
switch (__pyx_why) {
case 3: goto __pyx_L0;
}
FILE *__pyx_v_c_stream;
xmlInputReadCallback __pyx_v_c_read_callback;
void *__pyx_v_c_callback_context;
+ int __pyx_v_orig_options;
xmlDoc *__pyx_r;
__Pyx_RefNannyDeclarations
int __pyx_t_1;
PyObject *__pyx_t_2 = NULL;
+ int __pyx_t_3;
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
* c_read_callback = _readFileParser
* c_callback_context = c_stream # <<<<<<<<<<<<<<
*
- * with nogil:
+ * orig_options = ctxt.options
*/
__pyx_v_c_callback_context = __pyx_v_c_stream;
}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":337
* c_callback_context = c_stream
*
+ * orig_options = ctxt.options # <<<<<<<<<<<<<<
+ * with nogil:
+ * if ctxt.html:
+ */
+ __pyx_t_3 = __pyx_v_ctxt->options;
+ __pyx_v_orig_options = __pyx_t_3;
+
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":338
+ *
+ * orig_options = ctxt.options
* with nogil: # <<<<<<<<<<<<<<
* if ctxt.html:
* result = htmlparser.htmlCtxtReadIO(
*/
{
#ifdef WITH_THREAD
- PyThreadState *_save = NULL;
- #endif
+ PyThreadState *_save;
Py_UNBLOCK_THREADS
+ #endif
/*try:*/ {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":338
- *
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":339
+ * orig_options = ctxt.options
* with nogil:
* if ctxt.html: # <<<<<<<<<<<<<<
* result = htmlparser.htmlCtxtReadIO(
*/
if (__pyx_v_ctxt->html) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":341
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":342
* result = htmlparser.htmlCtxtReadIO(
* ctxt, c_read_callback, NULL, c_callback_context,
* self._c_url, c_encoding, options) # <<<<<<<<<<<<<<
*/
__pyx_v_result = htmlCtxtReadIO(__pyx_v_ctxt, __pyx_v_c_read_callback, NULL, __pyx_v_c_callback_context, __pyx_v_self->_c_url, __pyx_v_c_encoding, __pyx_v_options);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":342
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":343
* ctxt, c_read_callback, NULL, c_callback_context,
* self._c_url, c_encoding, options)
* if result is not NULL: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_v_result != NULL);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":343
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":344
* self._c_url, c_encoding, options)
* if result is not NULL:
* if _fixHtmlDictNames(ctxt.dict, result) < 0: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_f_4lxml_5etree__fixHtmlDictNames(__pyx_v_ctxt->dict, __pyx_v_result) < 0);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":344
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":345
* if result is not NULL:
* if _fixHtmlDictNames(ctxt.dict, result) < 0:
* tree.xmlFreeDoc(result) # <<<<<<<<<<<<<<
*/
xmlFreeDoc(__pyx_v_result);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":345
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":346
* if _fixHtmlDictNames(ctxt.dict, result) < 0:
* tree.xmlFreeDoc(result)
* result = NULL # <<<<<<<<<<<<<<
}
/*else*/ {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":349
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":350
* result = xmlparser.xmlCtxtReadIO(
* ctxt, c_read_callback, NULL, c_callback_context,
* self._c_url, c_encoding, options) # <<<<<<<<<<<<<<
+ * ctxt.options = orig_options # work around libxml2 problem
* self._close_file()
- * return result
*/
__pyx_v_result = xmlCtxtReadIO(__pyx_v_ctxt, __pyx_v_c_read_callback, NULL, __pyx_v_c_callback_context, __pyx_v_self->_c_url, __pyx_v_c_encoding, __pyx_v_options);
}
__pyx_L8:;
}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":337
- * c_callback_context = c_stream
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":338
*
+ * orig_options = ctxt.options
* with nogil: # <<<<<<<<<<<<<<
* if ctxt.html:
* result = htmlparser.htmlCtxtReadIO(
*/
/*finally:*/ {
+ #ifdef WITH_THREAD
Py_BLOCK_THREADS
+ #endif
}
}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":350
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":351
* ctxt, c_read_callback, NULL, c_callback_context,
* self._c_url, c_encoding, options)
+ * ctxt.options = orig_options # work around libxml2 problem # <<<<<<<<<<<<<<
+ * self._close_file()
+ * return result
+ */
+ __pyx_v_ctxt->options = __pyx_v_orig_options;
+
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":352
+ * self._c_url, c_encoding, options)
+ * ctxt.options = orig_options # work around libxml2 problem
* self._close_file() # <<<<<<<<<<<<<<
* return result
*
*/
- __pyx_t_2 = __pyx_f_4lxml_5etree_18_FileReaderContext__close_file(__pyx_v_self); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 350; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __pyx_f_4lxml_5etree_18_FileReaderContext__close_file(__pyx_v_self); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 352; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":351
- * self._c_url, c_encoding, options)
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":353
+ * ctxt.options = orig_options # work around libxml2 problem
* self._close_file()
* return result # <<<<<<<<<<<<<<
*
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":353
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":355
* return result
*
* cdef int copyToBuffer(self, char* c_buffer, int c_requested): # <<<<<<<<<<<<<<
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("copyToBuffer", 0);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":357
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":359
* cdef char* c_start
* cdef Py_ssize_t byte_count, remaining
* if self._bytes_read < 0: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_v_self->_bytes_read < 0);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":358
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":360
* cdef Py_ssize_t byte_count, remaining
* if self._bytes_read < 0:
* return 0 # <<<<<<<<<<<<<<
}
__pyx_L3:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":359
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":361
* if self._bytes_read < 0:
* return 0
* try: # <<<<<<<<<<<<<<
__Pyx_XGOTREF(__pyx_t_4);
/*try:*/ {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":360
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":362
* return 0
* try:
* c_byte_count = 0 # <<<<<<<<<<<<<<
*/
__pyx_v_c_byte_count = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":361
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":363
* try:
* c_byte_count = 0
* byte_count = python.PyBytes_GET_SIZE(self._bytes) # <<<<<<<<<<<<<<
__pyx_v_byte_count = PyBytes_GET_SIZE(__pyx_t_5);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":362
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":364
* c_byte_count = 0
* byte_count = python.PyBytes_GET_SIZE(self._bytes)
* remaining = byte_count - self._bytes_read # <<<<<<<<<<<<<<
*/
__pyx_v_remaining = (__pyx_v_byte_count - __pyx_v_self->_bytes_read);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":363
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":365
* byte_count = python.PyBytes_GET_SIZE(self._bytes)
* remaining = byte_count - self._bytes_read
* while c_requested > remaining: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_v_c_requested > __pyx_v_remaining);
if (!__pyx_t_1) break;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":364
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":366
* remaining = byte_count - self._bytes_read
* while c_requested > remaining:
* c_start = _cstr(self._bytes) + self._bytes_read # <<<<<<<<<<<<<<
__pyx_v_c_start = (PyBytes_AS_STRING(__pyx_t_5) + __pyx_v_self->_bytes_read);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":365
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":367
* while c_requested > remaining:
* c_start = _cstr(self._bytes) + self._bytes_read
* cstring_h.memcpy(c_buffer, c_start, remaining) # <<<<<<<<<<<<<<
*/
memcpy(__pyx_v_c_buffer, __pyx_v_c_start, __pyx_v_remaining);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":366
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":368
* c_start = _cstr(self._bytes) + self._bytes_read
* cstring_h.memcpy(c_buffer, c_start, remaining)
* c_byte_count += remaining # <<<<<<<<<<<<<<
*/
__pyx_v_c_byte_count = (__pyx_v_c_byte_count + __pyx_v_remaining);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":367
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":369
* cstring_h.memcpy(c_buffer, c_start, remaining)
* c_byte_count += remaining
* c_buffer += remaining # <<<<<<<<<<<<<<
*/
__pyx_v_c_buffer = (__pyx_v_c_buffer + __pyx_v_remaining);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":368
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":370
* c_byte_count += remaining
* c_buffer += remaining
* c_requested -= remaining # <<<<<<<<<<<<<<
*/
__pyx_v_c_requested = (__pyx_v_c_requested - __pyx_v_remaining);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":370
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":372
* c_requested -= remaining
*
* self._bytes = self._filelike.read(c_requested) # <<<<<<<<<<<<<<
* if not isinstance(self._bytes, bytes):
* if isinstance(self._bytes, unicode):
*/
- __pyx_t_5 = PyObject_GetAttr(__pyx_v_self->_filelike, __pyx_n_s__read); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 370; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_filelike, __pyx_n_s__read); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 372; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
__Pyx_GOTREF(__pyx_t_5);
- __pyx_t_6 = PyInt_FromLong(__pyx_v_c_requested); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 370; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
+ __pyx_t_6 = PyInt_FromLong(__pyx_v_c_requested); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 372; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
__Pyx_GOTREF(__pyx_t_6);
- __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 370; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
+ __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 372; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
__Pyx_GOTREF(__pyx_t_7);
PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6);
__Pyx_GIVEREF(__pyx_t_6);
__pyx_t_6 = 0;
- __pyx_t_6 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_7), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 370; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
+ __pyx_t_6 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_7), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 372; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
__pyx_v_self->_bytes = __pyx_t_6;
__pyx_t_6 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":371
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":373
*
* self._bytes = self._filelike.read(c_requested)
* if not isinstance(self._bytes, bytes): # <<<<<<<<<<<<<<
__pyx_t_8 = (!__pyx_t_1);
if (__pyx_t_8) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":372
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":374
* self._bytes = self._filelike.read(c_requested)
* if not isinstance(self._bytes, bytes):
* if isinstance(self._bytes, unicode): # <<<<<<<<<<<<<<
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (__pyx_t_8) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":373
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":375
* if not isinstance(self._bytes, bytes):
* if isinstance(self._bytes, unicode):
* if self._encoding is None: # <<<<<<<<<<<<<<
__pyx_t_8 = (__pyx_v_self->_encoding == Py_None);
if (__pyx_t_8) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":374
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":376
* if isinstance(self._bytes, unicode):
* if self._encoding is None:
* self._bytes = (<unicode>self._bytes).encode('utf8') # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_self->_bytes == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "encode");
- {__pyx_filename = __pyx_f[5]; __pyx_lineno = 374; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
+ {__pyx_filename = __pyx_f[5]; __pyx_lineno = 376; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
}
- __pyx_t_6 = ((PyObject *)PyUnicode_AsUTF8String(((PyObject*)__pyx_v_self->_bytes))); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 374; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
+ __pyx_t_6 = ((PyObject *)PyUnicode_AsUTF8String(((PyObject*)__pyx_v_self->_bytes))); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 376; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_6));
__Pyx_GIVEREF(((PyObject *)__pyx_t_6));
__Pyx_GOTREF(__pyx_v_self->_bytes);
}
/*else*/ {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":377
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":379
* else:
* self._bytes = python.PyUnicode_AsEncodedString(
* self._bytes, _cstr(self._encoding), NULL) # <<<<<<<<<<<<<<
__Pyx_INCREF(__pyx_t_6);
__pyx_t_7 = __pyx_v_self->_encoding;
__Pyx_INCREF(__pyx_t_7);
- __pyx_t_5 = ((PyObject *)PyUnicode_AsEncodedString(__pyx_t_6, PyBytes_AS_STRING(__pyx_t_7), NULL)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 376; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
+ __pyx_t_5 = ((PyObject *)PyUnicode_AsEncodedString(__pyx_t_6, PyBytes_AS_STRING(__pyx_t_7), NULL)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 378; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":376
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":378
* self._bytes = (<unicode>self._bytes).encode('utf8')
* else:
* self._bytes = python.PyUnicode_AsEncodedString( # <<<<<<<<<<<<<<
}
/*else*/ {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":379
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":381
* self._bytes, _cstr(self._encoding), NULL)
* else:
* self._close_file() # <<<<<<<<<<<<<<
* raise TypeError, \
* u"reading from file-like objects must return byte strings or unicode strings"
*/
- __pyx_t_5 = __pyx_f_4lxml_5etree_18_FileReaderContext__close_file(__pyx_v_self); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 379; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
+ __pyx_t_5 = __pyx_f_4lxml_5etree_18_FileReaderContext__close_file(__pyx_v_self); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 381; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":380
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":382
* else:
* self._close_file()
* raise TypeError, \ # <<<<<<<<<<<<<<
* u"reading from file-like objects must return byte strings or unicode strings"
*
*/
- __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_159), 0, 0);
- {__pyx_filename = __pyx_f[5]; __pyx_lineno = 380; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
+ __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_168), 0, 0);
+ {__pyx_filename = __pyx_f[5]; __pyx_lineno = 382; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
}
__pyx_L15:;
goto __pyx_L14;
}
__pyx_L14:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":383
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":385
* u"reading from file-like objects must return byte strings or unicode strings"
*
* remaining = python.PyBytes_GET_SIZE(self._bytes) # <<<<<<<<<<<<<<
__pyx_v_remaining = PyBytes_GET_SIZE(__pyx_t_5);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":384
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":386
*
* remaining = python.PyBytes_GET_SIZE(self._bytes)
* if remaining == 0: # <<<<<<<<<<<<<<
__pyx_t_8 = (__pyx_v_remaining == 0);
if (__pyx_t_8) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":385
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":387
* remaining = python.PyBytes_GET_SIZE(self._bytes)
* if remaining == 0:
* self._bytes_read = -1 # <<<<<<<<<<<<<<
*/
__pyx_v_self->_bytes_read = -1;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":386
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":388
* if remaining == 0:
* self._bytes_read = -1
* self._close_file() # <<<<<<<<<<<<<<
* return c_byte_count
* self._bytes_read = 0
*/
- __pyx_t_5 = __pyx_f_4lxml_5etree_18_FileReaderContext__close_file(__pyx_v_self); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 386; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
+ __pyx_t_5 = __pyx_f_4lxml_5etree_18_FileReaderContext__close_file(__pyx_v_self); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 388; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":387
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":389
* self._bytes_read = -1
* self._close_file()
* return c_byte_count # <<<<<<<<<<<<<<
}
__pyx_L17:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":388
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":390
* self._close_file()
* return c_byte_count
* self._bytes_read = 0 # <<<<<<<<<<<<<<
__pyx_v_self->_bytes_read = 0;
}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":390
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":392
* self._bytes_read = 0
*
* if c_requested > 0: # <<<<<<<<<<<<<<
__pyx_t_8 = (__pyx_v_c_requested > 0);
if (__pyx_t_8) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":391
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":393
*
* if c_requested > 0:
* c_start = _cstr(self._bytes) + self._bytes_read # <<<<<<<<<<<<<<
__pyx_v_c_start = (PyBytes_AS_STRING(__pyx_t_5) + __pyx_v_self->_bytes_read);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":392
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":394
* if c_requested > 0:
* c_start = _cstr(self._bytes) + self._bytes_read
* cstring_h.memcpy(c_buffer, c_start, c_requested) # <<<<<<<<<<<<<<
*/
memcpy(__pyx_v_c_buffer, __pyx_v_c_start, __pyx_v_c_requested);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":393
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":395
* c_start = _cstr(self._bytes) + self._bytes_read
* cstring_h.memcpy(c_buffer, c_start, c_requested)
* c_byte_count += c_requested # <<<<<<<<<<<<<<
*/
__pyx_v_c_byte_count = (__pyx_v_c_byte_count + __pyx_v_c_requested);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":394
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":396
* cstring_h.memcpy(c_buffer, c_start, c_requested)
* c_byte_count += c_requested
* self._bytes_read += c_requested # <<<<<<<<<<<<<<
}
__pyx_L18:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":395
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":397
* c_byte_count += c_requested
* self._bytes_read += c_requested
* return c_byte_count # <<<<<<<<<<<<<<
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":396
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":398
* self._bytes_read += c_requested
* return c_byte_count
* except: # <<<<<<<<<<<<<<
*/
/*except:*/ {
__Pyx_AddTraceback("lxml.etree._FileReaderContext.copyToBuffer", __pyx_clineno, __pyx_lineno, __pyx_filename);
- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_7, &__pyx_t_6) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 396; __pyx_clineno = __LINE__; goto __pyx_L6_except_error;}
+ if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_7, &__pyx_t_6) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 398; __pyx_clineno = __LINE__; goto __pyx_L6_except_error;}
__Pyx_GOTREF(__pyx_t_5);
__Pyx_GOTREF(__pyx_t_7);
__Pyx_GOTREF(__pyx_t_6);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":397
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":399
* return c_byte_count
* except:
* self._exc_context._store_raised() # <<<<<<<<<<<<<<
*/
((struct __pyx_vtabstruct_4lxml_5etree__ExceptionContext *)__pyx_v_self->_exc_context->__pyx_vtab)->_store_raised(__pyx_v_self->_exc_context);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":398
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":400
* except:
* self._exc_context._store_raised()
* self._close_file() # <<<<<<<<<<<<<<
* return -1
*
*/
- __pyx_t_9 = __pyx_f_4lxml_5etree_18_FileReaderContext__close_file(__pyx_v_self); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 398; __pyx_clineno = __LINE__; goto __pyx_L6_except_error;}
+ __pyx_t_9 = __pyx_f_4lxml_5etree_18_FileReaderContext__close_file(__pyx_v_self); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L6_except_error;}
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":399
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":401
* self._exc_context._store_raised()
* self._close_file()
* return -1 # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":401
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":403
* return -1
*
* cdef int _readFilelikeParser(void* ctxt, char* c_buffer, int c_size) with gil: # <<<<<<<<<<<<<<
#endif
__Pyx_RefNannySetupContext("_readFilelikeParser", 0);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":402
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":404
*
* cdef int _readFilelikeParser(void* ctxt, char* c_buffer, int c_size) with gil:
* return (<_FileReaderContext>ctxt).copyToBuffer(c_buffer, c_size) # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":404
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":406
* return (<_FileReaderContext>ctxt).copyToBuffer(c_buffer, c_size)
*
* cdef int _readFileParser(void* ctxt, char* c_buffer, int c_size) nogil: # <<<<<<<<<<<<<<
static int __pyx_f_4lxml_5etree__readFileParser(void *__pyx_v_ctxt, char *__pyx_v_c_buffer, int __pyx_v_c_size) {
int __pyx_r;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":405
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":407
*
* cdef int _readFileParser(void* ctxt, char* c_buffer, int c_size) nogil:
* return stdio.fread(c_buffer, 1, c_size, <stdio.FILE*>ctxt) # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":411
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":413
* ############################################################
*
* cdef xmlparser.xmlParserInput* _local_resolver(const_char* c_url, const_char* c_pubid, # <<<<<<<<<<<<<<
PyObject *__pyx_v_url = NULL;
PyObject *__pyx_v_pubid = NULL;
PyObject *__pyx_v_data = NULL;
+ char *__pyx_v_c_filename;
xmlParserInput *__pyx_r;
__Pyx_RefNannyDeclarations
int __pyx_t_1;
#endif
__Pyx_RefNannySetupContext("_local_resolver", 0);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":420
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":422
* # passed, check to see if the thread state object has an implied
* # context.
* if c_context._private is not NULL: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_v_c_context->_private != NULL);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":421
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":423
* # context.
* if c_context._private is not NULL:
* context = <_ResolverContext>c_context._private # <<<<<<<<<<<<<<
}
/*else*/ {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":423
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":425
* context = <_ResolverContext>c_context._private
* else:
* context = __GLOBAL_PARSER_CONTEXT.findImpliedContext() # <<<<<<<<<<<<<<
*
* if context is None:
*/
- __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree_24_ParserDictionaryContext_findImpliedContext(__pyx_v_4lxml_5etree___GLOBAL_PARSER_CONTEXT)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 423; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree_24_ParserDictionaryContext_findImpliedContext(__pyx_v_4lxml_5etree___GLOBAL_PARSER_CONTEXT)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_v_context = ((struct __pyx_obj_4lxml_5etree__ResolverContext *)__pyx_t_2);
__pyx_t_2 = 0;
}
__pyx_L3:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":425
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":427
* context = __GLOBAL_PARSER_CONTEXT.findImpliedContext()
*
* if context is None: # <<<<<<<<<<<<<<
__pyx_t_1 = (((PyObject *)__pyx_v_context) == Py_None);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":426
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":428
*
* if context is None:
* if __DEFAULT_ENTITY_LOADER is NULL: # <<<<<<<<<<<<<<
* return NULL
- * return __DEFAULT_ENTITY_LOADER(c_url, c_pubid, c_context)
+ * with nogil:
*/
__pyx_t_1 = (__pyx_v_4lxml_5etree___DEFAULT_ENTITY_LOADER == NULL);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":427
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":429
* if context is None:
* if __DEFAULT_ENTITY_LOADER is NULL:
* return NULL # <<<<<<<<<<<<<<
- * return __DEFAULT_ENTITY_LOADER(c_url, c_pubid, c_context)
- *
+ * with nogil:
+ * # free the GIL as we might do serious I/O here (e.g. HTTP)
*/
__pyx_r = NULL;
goto __pyx_L0;
}
__pyx_L5:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":428
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":430
+ * if __DEFAULT_ENTITY_LOADER is NULL:
+ * return NULL
+ * with nogil: # <<<<<<<<<<<<<<
+ * # free the GIL as we might do serious I/O here (e.g. HTTP)
+ * c_input = __DEFAULT_ENTITY_LOADER(c_url, c_pubid, c_context)
+ */
+ {
+ #ifdef WITH_THREAD
+ PyThreadState *_save;
+ Py_UNBLOCK_THREADS
+ #endif
+ /*try:*/ {
+
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":432
+ * with nogil:
+ * # free the GIL as we might do serious I/O here (e.g. HTTP)
+ * c_input = __DEFAULT_ENTITY_LOADER(c_url, c_pubid, c_context) # <<<<<<<<<<<<<<
+ * return c_input
+ *
+ */
+ __pyx_v_c_input = __pyx_v_4lxml_5etree___DEFAULT_ENTITY_LOADER(__pyx_v_c_url, __pyx_v_c_pubid, __pyx_v_c_context);
+ }
+
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":430
* if __DEFAULT_ENTITY_LOADER is NULL:
* return NULL
- * return __DEFAULT_ENTITY_LOADER(c_url, c_pubid, c_context) # <<<<<<<<<<<<<<
+ * with nogil: # <<<<<<<<<<<<<<
+ * # free the GIL as we might do serious I/O here (e.g. HTTP)
+ * c_input = __DEFAULT_ENTITY_LOADER(c_url, c_pubid, c_context)
+ */
+ /*finally:*/ {
+ #ifdef WITH_THREAD
+ Py_BLOCK_THREADS
+ #endif
+ }
+ }
+
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":433
+ * # free the GIL as we might do serious I/O here (e.g. HTTP)
+ * c_input = __DEFAULT_ENTITY_LOADER(c_url, c_pubid, c_context)
+ * return c_input # <<<<<<<<<<<<<<
*
* try:
*/
- __pyx_r = __pyx_v_4lxml_5etree___DEFAULT_ENTITY_LOADER(__pyx_v_c_url, __pyx_v_c_pubid, __pyx_v_c_context);
+ __pyx_r = __pyx_v_c_input;
goto __pyx_L0;
goto __pyx_L4;
}
__pyx_L4:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":430
- * return __DEFAULT_ENTITY_LOADER(c_url, c_pubid, c_context)
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":435
+ * return c_input
*
* try: # <<<<<<<<<<<<<<
* if c_url is NULL:
__Pyx_XGOTREF(__pyx_t_5);
/*try:*/ {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":431
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":436
*
* try:
* if c_url is NULL: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_v_c_url == NULL);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":432
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":437
* try:
* if c_url is NULL:
* url = None # <<<<<<<<<<<<<<
*/
__Pyx_INCREF(Py_None);
__pyx_v_url = Py_None;
- goto __pyx_L14;
+ goto __pyx_L17;
}
/*else*/ {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":435
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":440
* else:
* # parsing a related document (DTD etc.) => UTF-8 encoded URL?
* url = _decodeFilename(<const_xmlChar*>c_url) # <<<<<<<<<<<<<<
* if c_pubid is NULL:
* pubid = None
*/
- __pyx_t_2 = __pyx_f_4lxml_5etree__decodeFilename(((const xmlChar *)__pyx_v_c_url)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 435; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
+ __pyx_t_2 = __pyx_f_4lxml_5etree__decodeFilename(((const xmlChar *)__pyx_v_c_url)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 440; __pyx_clineno = __LINE__; goto __pyx_L9_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_v_url = __pyx_t_2;
__pyx_t_2 = 0;
}
- __pyx_L14:;
+ __pyx_L17:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":436
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":441
* # parsing a related document (DTD etc.) => UTF-8 encoded URL?
* url = _decodeFilename(<const_xmlChar*>c_url)
* if c_pubid is NULL: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_v_c_pubid == NULL);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":437
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":442
* url = _decodeFilename(<const_xmlChar*>c_url)
* if c_pubid is NULL:
* pubid = None # <<<<<<<<<<<<<<
*/
__Pyx_INCREF(Py_None);
__pyx_v_pubid = Py_None;
- goto __pyx_L15;
+ goto __pyx_L18;
}
/*else*/ {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":439
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":444
* pubid = None
* else:
* pubid = funicode(<const_xmlChar*>c_pubid) # always UTF-8 # <<<<<<<<<<<<<<
*
* doc_ref = context._resolvers.resolve(url, pubid, context)
*/
- __pyx_t_2 = __pyx_f_4lxml_5etree_funicode(((const xmlChar *)__pyx_v_c_pubid)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 439; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
+ __pyx_t_2 = __pyx_f_4lxml_5etree_funicode(((const xmlChar *)__pyx_v_c_pubid)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 444; __pyx_clineno = __LINE__; goto __pyx_L9_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_v_pubid = __pyx_t_2;
__pyx_t_2 = 0;
}
- __pyx_L15:;
+ __pyx_L18:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":441
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":446
* pubid = funicode(<const_xmlChar*>c_pubid) # always UTF-8
*
* doc_ref = context._resolvers.resolve(url, pubid, context) # <<<<<<<<<<<<<<
* except:
* context._store_raised()
*/
- __pyx_t_2 = PyObject_GetAttr(((PyObject *)__pyx_v_context->_resolvers), __pyx_n_s__resolve); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 441; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_context->_resolvers), __pyx_n_s__resolve); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L9_error;}
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 441; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
+ __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L9_error;}
__Pyx_GOTREF(__pyx_t_6);
__Pyx_INCREF(__pyx_v_url);
PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_url);
__Pyx_INCREF(((PyObject *)__pyx_v_context));
PyTuple_SET_ITEM(__pyx_t_6, 2, ((PyObject *)__pyx_v_context));
__Pyx_GIVEREF(((PyObject *)__pyx_v_context));
- __pyx_t_7 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 441; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
+ __pyx_t_7 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L9_error;}
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
- if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_4lxml_5etree__InputDocument))))) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 441; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
+ if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_4lxml_5etree__InputDocument))))) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L9_error;}
__pyx_v_doc_ref = ((struct __pyx_obj_4lxml_5etree__InputDocument *)__pyx_t_7);
__pyx_t_7 = 0;
}
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
- goto __pyx_L13_try_end;
- __pyx_L6_error:;
+ goto __pyx_L16_try_end;
+ __pyx_L9_error:;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":442
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":447
*
* doc_ref = context._resolvers.resolve(url, pubid, context)
* except: # <<<<<<<<<<<<<<
*/
/*except:*/ {
__Pyx_AddTraceback("lxml.etree._local_resolver", __pyx_clineno, __pyx_lineno, __pyx_filename);
- if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_6, &__pyx_t_2) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 442; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
+ if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_6, &__pyx_t_2) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;}
__Pyx_GOTREF(__pyx_t_7);
__Pyx_GOTREF(__pyx_t_6);
__Pyx_GOTREF(__pyx_t_2);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":443
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":448
* doc_ref = context._resolvers.resolve(url, pubid, context)
* except:
* context._store_raised() # <<<<<<<<<<<<<<
*/
((struct __pyx_vtabstruct_4lxml_5etree__ResolverContext *)__pyx_v_context->__pyx_base.__pyx_vtab)->__pyx_base._store_raised(((struct __pyx_obj_4lxml_5etree__ExceptionContext *)__pyx_v_context));
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":444
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":449
* except:
* context._store_raised()
* return NULL # <<<<<<<<<<<<<<
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
- goto __pyx_L9_except_return;
+ goto __pyx_L12_except_return;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- goto __pyx_L7_exception_handled;
+ goto __pyx_L10_exception_handled;
}
- __pyx_L8_except_error:;
+ __pyx_L11_except_error:;
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_XGIVEREF(__pyx_t_5);
__Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
goto __pyx_L1_error;
- __pyx_L9_except_return:;
+ __pyx_L12_except_return:;
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_XGIVEREF(__pyx_t_5);
__Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
goto __pyx_L0;
- __pyx_L7_exception_handled:;
+ __pyx_L10_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_XGIVEREF(__pyx_t_5);
__Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
- __pyx_L13_try_end:;
+ __pyx_L16_try_end:;
}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":446
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":451
* return NULL
*
* if doc_ref is not None: # <<<<<<<<<<<<<<
__pyx_t_1 = (((PyObject *)__pyx_v_doc_ref) != Py_None);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":447
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":467
+ * c_input = xmlparser.xmlNewInputFromFile(
+ * c_context, c_filename)
+ * elif doc_ref._type == PARSER_DATA_FILE: # <<<<<<<<<<<<<<
+ * file_context = _FileReaderContext(doc_ref._file, context, url,
+ * None, doc_ref._close_file)
+ */
+ switch (__pyx_v_doc_ref->_type) {
+
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":452
*
* if doc_ref is not None:
* if doc_ref._type == PARSER_DATA_STRING: # <<<<<<<<<<<<<<
* data = doc_ref._data_bytes
* c_input = xmlparser.xmlNewInputStream(c_context)
*/
- __pyx_t_1 = (__pyx_v_doc_ref->_type == __pyx_e_4lxml_5etree_PARSER_DATA_STRING);
- if (__pyx_t_1) {
+ case __pyx_e_4lxml_5etree_PARSER_DATA_STRING:
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":448
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":453
* if doc_ref is not None:
* if doc_ref._type == PARSER_DATA_STRING:
* data = doc_ref._data_bytes # <<<<<<<<<<<<<<
__pyx_v_data = __pyx_t_2;
__pyx_t_2 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":449
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":454
* if doc_ref._type == PARSER_DATA_STRING:
* data = doc_ref._data_bytes
* c_input = xmlparser.xmlNewInputStream(c_context) # <<<<<<<<<<<<<<
*/
__pyx_v_c_input = xmlNewInputStream(__pyx_v_c_context);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":450
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":455
* data = doc_ref._data_bytes
* c_input = xmlparser.xmlNewInputStream(c_context)
* if c_input is not NULL: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_v_c_input != NULL);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":451
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":456
* c_input = xmlparser.xmlNewInputStream(c_context)
* if c_input is not NULL:
* c_input.base = _xcstr(data) # <<<<<<<<<<<<<<
*/
__pyx_v_c_input->base = (const xmlChar*)PyBytes_AS_STRING(__pyx_v_data);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":452
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":457
* if c_input is not NULL:
* c_input.base = _xcstr(data)
* c_input.length = python.PyBytes_GET_SIZE(data) # <<<<<<<<<<<<<<
*/
__pyx_v_c_input->length = PyBytes_GET_SIZE(__pyx_v_data);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":453
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":458
* c_input.base = _xcstr(data)
* c_input.length = python.PyBytes_GET_SIZE(data)
* c_input.cur = c_input.base # <<<<<<<<<<<<<<
__pyx_t_8 = __pyx_v_c_input->base;
__pyx_v_c_input->cur = __pyx_t_8;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":454
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":459
* c_input.length = python.PyBytes_GET_SIZE(data)
* c_input.cur = c_input.base
* c_input.end = c_input.base + c_input.length # <<<<<<<<<<<<<<
* data = None
*/
__pyx_v_c_input->end = (__pyx_v_c_input->base + __pyx_v_c_input->length);
- goto __pyx_L20;
+ goto __pyx_L22;
}
- __pyx_L20:;
- goto __pyx_L19;
- }
+ __pyx_L22:;
+ break;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":455
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":460
* c_input.cur = c_input.base
* c_input.end = c_input.base + c_input.length
* elif doc_ref._type == PARSER_DATA_FILENAME: # <<<<<<<<<<<<<<
* data = None
- * c_input = xmlparser.xmlNewInputFromFile(
+ * c_filename = _cstr(doc_ref._filename)
*/
- __pyx_t_1 = (__pyx_v_doc_ref->_type == __pyx_e_4lxml_5etree_PARSER_DATA_FILENAME);
- if (__pyx_t_1) {
+ case __pyx_e_4lxml_5etree_PARSER_DATA_FILENAME:
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":456
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":461
* c_input.end = c_input.base + c_input.length
* elif doc_ref._type == PARSER_DATA_FILENAME:
* data = None # <<<<<<<<<<<<<<
- * c_input = xmlparser.xmlNewInputFromFile(
- * c_context, _cstr(doc_ref._filename))
+ * c_filename = _cstr(doc_ref._filename)
+ * with nogil:
*/
__Pyx_INCREF(Py_None);
__pyx_v_data = Py_None;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":458
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":462
+ * elif doc_ref._type == PARSER_DATA_FILENAME:
* data = None
- * c_input = xmlparser.xmlNewInputFromFile(
- * c_context, _cstr(doc_ref._filename)) # <<<<<<<<<<<<<<
- * elif doc_ref._type == PARSER_DATA_FILE:
- * file_context = _FileReaderContext(doc_ref._file, context, url,
+ * c_filename = _cstr(doc_ref._filename) # <<<<<<<<<<<<<<
+ * with nogil:
+ * # free the GIL as we might do serious I/O here
*/
__pyx_t_2 = __pyx_v_doc_ref->_filename;
__Pyx_INCREF(__pyx_t_2);
- __pyx_v_c_input = xmlNewInputFromFile(__pyx_v_c_context, PyBytes_AS_STRING(__pyx_t_2));
+ __pyx_v_c_filename = PyBytes_AS_STRING(__pyx_t_2);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- goto __pyx_L19;
- }
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":459
- * c_input = xmlparser.xmlNewInputFromFile(
- * c_context, _cstr(doc_ref._filename))
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":463
+ * data = None
+ * c_filename = _cstr(doc_ref._filename)
+ * with nogil: # <<<<<<<<<<<<<<
+ * # free the GIL as we might do serious I/O here
+ * c_input = xmlparser.xmlNewInputFromFile(
+ */
+ {
+ #ifdef WITH_THREAD
+ PyThreadState *_save;
+ Py_UNBLOCK_THREADS
+ #endif
+ /*try:*/ {
+
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":466
+ * # free the GIL as we might do serious I/O here
+ * c_input = xmlparser.xmlNewInputFromFile(
+ * c_context, c_filename) # <<<<<<<<<<<<<<
+ * elif doc_ref._type == PARSER_DATA_FILE:
+ * file_context = _FileReaderContext(doc_ref._file, context, url,
+ */
+ __pyx_v_c_input = xmlNewInputFromFile(__pyx_v_c_context, __pyx_v_c_filename);
+ }
+
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":463
+ * data = None
+ * c_filename = _cstr(doc_ref._filename)
+ * with nogil: # <<<<<<<<<<<<<<
+ * # free the GIL as we might do serious I/O here
+ * c_input = xmlparser.xmlNewInputFromFile(
+ */
+ /*finally:*/ {
+ #ifdef WITH_THREAD
+ Py_BLOCK_THREADS
+ #endif
+ }
+ }
+ break;
+
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":467
+ * c_input = xmlparser.xmlNewInputFromFile(
+ * c_context, c_filename)
* elif doc_ref._type == PARSER_DATA_FILE: # <<<<<<<<<<<<<<
* file_context = _FileReaderContext(doc_ref._file, context, url,
* None, doc_ref._close_file)
*/
- __pyx_t_1 = (__pyx_v_doc_ref->_type == __pyx_e_4lxml_5etree_PARSER_DATA_FILE);
- if (__pyx_t_1) {
+ case __pyx_e_4lxml_5etree_PARSER_DATA_FILE:
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":461
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":469
* elif doc_ref._type == PARSER_DATA_FILE:
* file_context = _FileReaderContext(doc_ref._file, context, url,
* None, doc_ref._close_file) # <<<<<<<<<<<<<<
* c_input = file_context._createParserInput(c_context)
* data = file_context
*/
- __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_doc_ref->_close_file); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 461; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_doc_ref->_close_file); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 469; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_6 = PyTuple_New(5); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 460; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = PyTuple_New(5); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 468; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
__Pyx_INCREF(__pyx_v_doc_ref->_file);
PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_doc_ref->_file);
PyTuple_SET_ITEM(__pyx_t_6, 4, __pyx_t_2);
__Pyx_GIVEREF(__pyx_t_2);
__pyx_t_2 = 0;
- __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__FileReaderContext)), ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 460; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__FileReaderContext)), ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 468; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
__pyx_v_file_context = ((struct __pyx_obj_4lxml_5etree__FileReaderContext *)__pyx_t_2);
__pyx_t_2 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":462
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":470
* file_context = _FileReaderContext(doc_ref._file, context, url,
* None, doc_ref._close_file)
* c_input = file_context._createParserInput(c_context) # <<<<<<<<<<<<<<
*/
__pyx_v_c_input = __pyx_f_4lxml_5etree_18_FileReaderContext__createParserInput(__pyx_v_file_context, __pyx_v_c_context);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":463
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":471
* None, doc_ref._close_file)
* c_input = file_context._createParserInput(c_context)
* data = file_context # <<<<<<<<<<<<<<
*/
__Pyx_INCREF(((PyObject *)__pyx_v_file_context));
__pyx_v_data = ((PyObject *)__pyx_v_file_context);
- goto __pyx_L19;
- }
- /*else*/ {
+ break;
+ default:
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":465
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":473
* data = file_context
* else:
* data = None # <<<<<<<<<<<<<<
__Pyx_INCREF(Py_None);
__pyx_v_data = Py_None;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":466
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":474
* else:
* data = None
* c_input = NULL # <<<<<<<<<<<<<<
* if data is not None:
*/
__pyx_v_c_input = NULL;
+ break;
}
- __pyx_L19:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":468
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":476
* c_input = NULL
*
* if data is not None: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_v_data != Py_None);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":469
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":477
*
* if data is not None:
* context._storage.add(data) # <<<<<<<<<<<<<<
* if c_input is not NULL:
* return c_input
*/
- __pyx_t_9 = __pyx_f_4lxml_5etree_10_TempStore_add(__pyx_v_context->_storage, __pyx_v_data); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 469; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- goto __pyx_L21;
+ __pyx_t_9 = __pyx_f_4lxml_5etree_10_TempStore_add(__pyx_v_context->_storage, __pyx_v_data); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 477; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ goto __pyx_L26;
}
- __pyx_L21:;
+ __pyx_L26:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":470
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":478
* if data is not None:
* context._storage.add(data)
* if c_input is not NULL: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_v_c_input != NULL);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":471
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":479
* context._storage.add(data)
* if c_input is not NULL:
* return c_input # <<<<<<<<<<<<<<
*/
__pyx_r = __pyx_v_c_input;
goto __pyx_L0;
- goto __pyx_L22;
+ goto __pyx_L27;
}
- __pyx_L22:;
- goto __pyx_L18;
+ __pyx_L27:;
+ goto __pyx_L21;
}
- __pyx_L18:;
+ __pyx_L21:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":473
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":481
* return c_input
*
* if __DEFAULT_ENTITY_LOADER is NULL: # <<<<<<<<<<<<<<
* return NULL
- * return __DEFAULT_ENTITY_LOADER(c_url, c_pubid, c_context)
+ *
*/
__pyx_t_1 = (__pyx_v_4lxml_5etree___DEFAULT_ENTITY_LOADER == NULL);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":474
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":482
*
* if __DEFAULT_ENTITY_LOADER is NULL:
* return NULL # <<<<<<<<<<<<<<
- * return __DEFAULT_ENTITY_LOADER(c_url, c_pubid, c_context)
*
+ * with nogil:
*/
__pyx_r = NULL;
goto __pyx_L0;
- goto __pyx_L23;
+ goto __pyx_L28;
}
- __pyx_L23:;
+ __pyx_L28:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":475
- * if __DEFAULT_ENTITY_LOADER is NULL:
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":484
* return NULL
- * return __DEFAULT_ENTITY_LOADER(c_url, c_pubid, c_context) # <<<<<<<<<<<<<<
+ *
+ * with nogil: # <<<<<<<<<<<<<<
+ * # free the GIL as we might do serious I/O here (e.g. HTTP)
+ * c_input = __DEFAULT_ENTITY_LOADER(c_url, c_pubid, c_context)
+ */
+ {
+ #ifdef WITH_THREAD
+ PyThreadState *_save;
+ Py_UNBLOCK_THREADS
+ #endif
+ /*try:*/ {
+
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":486
+ * with nogil:
+ * # free the GIL as we might do serious I/O here (e.g. HTTP)
+ * c_input = __DEFAULT_ENTITY_LOADER(c_url, c_pubid, c_context) # <<<<<<<<<<<<<<
+ * return c_input
+ *
+ */
+ __pyx_v_c_input = __pyx_v_4lxml_5etree___DEFAULT_ENTITY_LOADER(__pyx_v_c_url, __pyx_v_c_pubid, __pyx_v_c_context);
+ }
+
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":484
+ * return NULL
+ *
+ * with nogil: # <<<<<<<<<<<<<<
+ * # free the GIL as we might do serious I/O here (e.g. HTTP)
+ * c_input = __DEFAULT_ENTITY_LOADER(c_url, c_pubid, c_context)
+ */
+ /*finally:*/ {
+ #ifdef WITH_THREAD
+ Py_BLOCK_THREADS
+ #endif
+ }
+ }
+
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":487
+ * # free the GIL as we might do serious I/O here (e.g. HTTP)
+ * c_input = __DEFAULT_ENTITY_LOADER(c_url, c_pubid, c_context)
+ * return c_input # <<<<<<<<<<<<<<
*
* cdef xmlparser.xmlExternalEntityLoader __DEFAULT_ENTITY_LOADER
*/
- __pyx_r = __pyx_v_4lxml_5etree___DEFAULT_ENTITY_LOADER(__pyx_v_c_url, __pyx_v_c_pubid, __pyx_v_c_context);
+ __pyx_r = __pyx_v_c_input;
goto __pyx_L0;
__pyx_r = 0;
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":492
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":504
* cdef xmlparser.xmlParserCtxt* _c_ctxt
* cdef python.PyThread_type_lock _lock
* def __cinit__(self): # <<<<<<<<<<<<<<
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("__cinit__", 0);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":493
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":505
* cdef python.PyThread_type_lock _lock
* def __cinit__(self):
* self._c_ctxt = NULL # <<<<<<<<<<<<<<
*/
__pyx_v_self->_c_ctxt = NULL;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":494
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":506
* def __cinit__(self):
* self._c_ctxt = NULL
* if not config.ENABLE_THREADING: # <<<<<<<<<<<<<<
__pyx_t_1 = (!ENABLE_THREADING);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":495
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":507
* self._c_ctxt = NULL
* if not config.ENABLE_THREADING:
* self._lock = NULL # <<<<<<<<<<<<<<
}
/*else*/ {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":497
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":509
* self._lock = NULL
* else:
* self._lock = python.PyThread_allocate_lock() # <<<<<<<<<<<<<<
}
__pyx_L3:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":498
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":510
* else:
* self._lock = python.PyThread_allocate_lock()
* self._error_log = _ErrorLog() # <<<<<<<<<<<<<<
*
* def __dealloc__(self):
*/
- __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__ErrorLog)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 498; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__ErrorLog)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 510; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__Pyx_GIVEREF(__pyx_t_2);
__Pyx_GOTREF(__pyx_v_self->_error_log);
__Pyx_RefNannyFinishContext();
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":500
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":512
* self._error_log = _ErrorLog()
*
* def __dealloc__(self): # <<<<<<<<<<<<<<
int __pyx_t_2;
__Pyx_RefNannySetupContext("__dealloc__", 0);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":501
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":513
*
* def __dealloc__(self):
* if self._validator is not None: # <<<<<<<<<<<<<<
__pyx_t_1 = (((PyObject *)__pyx_v_self->_validator) != Py_None);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":502
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":514
* def __dealloc__(self):
* if self._validator is not None:
* self._validator.disconnect() # <<<<<<<<<<<<<<
}
__pyx_L3:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":503
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":515
* if self._validator is not None:
* self._validator.disconnect()
* if config.ENABLE_THREADING and self._lock is not NULL: # <<<<<<<<<<<<<<
}
if (__pyx_t_2) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":504
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":516
* self._validator.disconnect()
* if config.ENABLE_THREADING and self._lock is not NULL:
* python.PyThread_free_lock(self._lock) # <<<<<<<<<<<<<<
}
__pyx_L4:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":505
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":517
* if config.ENABLE_THREADING and self._lock is not NULL:
* python.PyThread_free_lock(self._lock)
* if self._c_ctxt is not NULL: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_v_self->_c_ctxt != NULL);
if (__pyx_t_2) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":506
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":518
* python.PyThread_free_lock(self._lock)
* if self._c_ctxt is not NULL:
* xmlparser.xmlFreeParserCtxt(self._c_ctxt) # <<<<<<<<<<<<<<
__Pyx_RefNannyFinishContext();
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":508
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":520
* xmlparser.xmlFreeParserCtxt(self._c_ctxt)
*
* cdef _ParserContext _copy(self): # <<<<<<<<<<<<<<
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("_copy", 0);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":510
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":522
* cdef _ParserContext _copy(self):
* cdef _ParserContext context
* context = self.__class__() # <<<<<<<<<<<<<<
* context._validator = self._validator.copy()
* _initParserContext(context, self._resolvers._copy(), NULL)
*/
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s____class__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 510; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s____class__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 522; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 510; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 522; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_4lxml_5etree__ParserContext))))) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 510; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_4lxml_5etree__ParserContext))))) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 522; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_v_context = ((struct __pyx_obj_4lxml_5etree__ParserContext *)__pyx_t_2);
__pyx_t_2 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":511
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":523
* cdef _ParserContext context
* context = self.__class__()
* context._validator = self._validator.copy() # <<<<<<<<<<<<<<
* _initParserContext(context, self._resolvers._copy(), NULL)
* return context
*/
- __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree_30_ParserSchemaValidationContext_copy(__pyx_v_self->_validator)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 511; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree_30_ParserSchemaValidationContext_copy(__pyx_v_self->_validator)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 523; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__Pyx_GIVEREF(__pyx_t_2);
__Pyx_GOTREF(__pyx_v_context->_validator);
__pyx_v_context->_validator = ((struct __pyx_obj_4lxml_5etree__ParserSchemaValidationContext *)__pyx_t_2);
__pyx_t_2 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":512
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":524
* context = self.__class__()
* context._validator = self._validator.copy()
* _initParserContext(context, self._resolvers._copy(), NULL) # <<<<<<<<<<<<<<
* return context
*
*/
- __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree_17_ResolverRegistry__copy(__pyx_v_self->__pyx_base._resolvers)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 512; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree_17_ResolverRegistry__copy(__pyx_v_self->__pyx_base._resolvers)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 524; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_1 = __pyx_f_4lxml_5etree__initParserContext(__pyx_v_context, ((struct __pyx_obj_4lxml_5etree__ResolverRegistry *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 512; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __pyx_f_4lxml_5etree__initParserContext(__pyx_v_context, ((struct __pyx_obj_4lxml_5etree__ResolverRegistry *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 524; __pyx_clineno = __LINE__; goto __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;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":513
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":525
* context._validator = self._validator.copy()
* _initParserContext(context, self._resolvers._copy(), NULL)
* return context # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":515
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":527
* return context
*
* cdef void _initParserContext(self, xmlparser.xmlParserCtxt* c_ctxt): # <<<<<<<<<<<<<<
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_initParserContext", 0);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":516
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":528
*
* cdef void _initParserContext(self, xmlparser.xmlParserCtxt* c_ctxt):
* self._c_ctxt = c_ctxt # <<<<<<<<<<<<<<
*/
__pyx_v_self->_c_ctxt = __pyx_v_c_ctxt;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":517
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":529
* cdef void _initParserContext(self, xmlparser.xmlParserCtxt* c_ctxt):
* self._c_ctxt = c_ctxt
* c_ctxt._private = <void*>self # <<<<<<<<<<<<<<
__Pyx_RefNannyFinishContext();
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":519
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":531
* c_ctxt._private = <void*>self
*
* cdef void _resetParserContext(self): # <<<<<<<<<<<<<<
int __pyx_t_3;
__Pyx_RefNannySetupContext("_resetParserContext", 0);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":520
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":532
*
* cdef void _resetParserContext(self):
* if self._c_ctxt is not NULL: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_v_self->_c_ctxt != NULL);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":521
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":533
* cdef void _resetParserContext(self):
* if self._c_ctxt is not NULL:
* if self._c_ctxt.html: # <<<<<<<<<<<<<<
*/
if (__pyx_v_self->_c_ctxt->html) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":522
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":534
* if self._c_ctxt is not NULL:
* if self._c_ctxt.html:
* htmlparser.htmlCtxtReset(self._c_ctxt) # <<<<<<<<<<<<<<
*/
htmlCtxtReset(__pyx_v_self->_c_ctxt);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":523
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":535
* if self._c_ctxt.html:
* htmlparser.htmlCtxtReset(self._c_ctxt)
* self._c_ctxt.disableSAX = 0 # work around bug in libxml2 # <<<<<<<<<<<<<<
goto __pyx_L4;
}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":524
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":536
* htmlparser.htmlCtxtReset(self._c_ctxt)
* self._c_ctxt.disableSAX = 0 # work around bug in libxml2
* elif self._c_ctxt.spaceTab is not NULL or \ # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_v_self->_c_ctxt->spaceTab != NULL);
if (!__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":525
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":537
* self._c_ctxt.disableSAX = 0 # work around bug in libxml2
* elif self._c_ctxt.spaceTab is not NULL or \
* _LIBXML_VERSION_INT >= 20629: # work around bug in libxml2 # <<<<<<<<<<<<<<
}
if (__pyx_t_3) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":526
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":538
* elif self._c_ctxt.spaceTab is not NULL or \
* _LIBXML_VERSION_INT >= 20629: # work around bug in libxml2
* xmlparser.xmlClearParserCtxt(self._c_ctxt) # <<<<<<<<<<<<<<
__Pyx_RefNannyFinishContext();
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":528
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":540
* xmlparser.xmlClearParserCtxt(self._c_ctxt)
*
* cdef int prepare(self) except -1: # <<<<<<<<<<<<<<
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("prepare", 0);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":530
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":542
* cdef int prepare(self) except -1:
* cdef int result
* if config.ENABLE_THREADING and self._lock is not NULL: # <<<<<<<<<<<<<<
}
if (__pyx_t_2) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":531
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":543
* cdef int result
* if config.ENABLE_THREADING and self._lock is not NULL:
* with nogil: # <<<<<<<<<<<<<<
*/
{
#ifdef WITH_THREAD
- PyThreadState *_save = NULL;
- #endif
+ PyThreadState *_save;
Py_UNBLOCK_THREADS
+ #endif
/*try:*/ {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":533
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":545
* with nogil:
* result = python.PyThread_acquire_lock(
* self._lock, python.WAIT_LOCK) # <<<<<<<<<<<<<<
__pyx_v_result = PyThread_acquire_lock(__pyx_v_self->_lock, WAIT_LOCK);
}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":531
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":543
* cdef int result
* if config.ENABLE_THREADING and self._lock is not NULL:
* with nogil: # <<<<<<<<<<<<<<
* self._lock, python.WAIT_LOCK)
*/
/*finally:*/ {
+ #ifdef WITH_THREAD
Py_BLOCK_THREADS
+ #endif
}
}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":534
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":546
* result = python.PyThread_acquire_lock(
* self._lock, python.WAIT_LOCK)
* if result == 0: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_v_result == 0);
if (__pyx_t_2) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":535
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":547
* self._lock, python.WAIT_LOCK)
* if result == 0:
* raise ParserError, u"parser locking failed" # <<<<<<<<<<<<<<
* self._error_log.clear()
* self._c_ctxt.sax.serror = _receiveParserError
*/
- __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__ParserError); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 535; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s__ParserError); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 547; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
- __Pyx_Raise(__pyx_t_3, ((PyObject *)__pyx_kp_u_160), 0, 0);
+ __Pyx_Raise(__pyx_t_3, ((PyObject *)__pyx_kp_u_169), 0, 0);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- {__pyx_filename = __pyx_f[5]; __pyx_lineno = 535; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ {__pyx_filename = __pyx_f[5]; __pyx_lineno = 547; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L7;
}
__pyx_L7:;
}
__pyx_L3:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":536
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":548
* if result == 0:
* raise ParserError, u"parser locking failed"
* self._error_log.clear() # <<<<<<<<<<<<<<
* self._c_ctxt.sax.serror = _receiveParserError
* if self._validator is not None:
*/
- __pyx_t_3 = ((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_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 536; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = ((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_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 548; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":537
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":549
* raise ParserError, u"parser locking failed"
* self._error_log.clear()
* self._c_ctxt.sax.serror = _receiveParserError # <<<<<<<<<<<<<<
*/
__pyx_v_self->_c_ctxt->sax->serror = __pyx_f_4lxml_5etree__receiveParserError;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":538
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":550
* self._error_log.clear()
* self._c_ctxt.sax.serror = _receiveParserError
* if self._validator is not None: # <<<<<<<<<<<<<<
__pyx_t_2 = (((PyObject *)__pyx_v_self->_validator) != Py_None);
if (__pyx_t_2) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":539
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":551
* self._c_ctxt.sax.serror = _receiveParserError
* if self._validator is not None:
* self._validator.connect(self._c_ctxt, self._error_log) # <<<<<<<<<<<<<<
*/
__pyx_t_3 = ((PyObject *)__pyx_v_self->_error_log);
__Pyx_INCREF(__pyx_t_3);
- __pyx_t_4 = __pyx_f_4lxml_5etree_30_ParserSchemaValidationContext_connect(__pyx_v_self->_validator, __pyx_v_self->_c_ctxt, ((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_t_3)); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 539; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __pyx_f_4lxml_5etree_30_ParserSchemaValidationContext_connect(__pyx_v_self->_validator, __pyx_v_self->_c_ctxt, ((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_t_3)); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 551; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
goto __pyx_L8;
}
__pyx_L8:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":540
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":552
* if self._validator is not None:
* self._validator.connect(self._c_ctxt, self._error_log)
* return 0 # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":542
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":554
* return 0
*
* cdef int cleanup(self) except -1: # <<<<<<<<<<<<<<
int __pyx_t_2;
__Pyx_RefNannySetupContext("cleanup", 0);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":543
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":555
*
* cdef int cleanup(self) except -1:
* if self._validator is not None: # <<<<<<<<<<<<<<
__pyx_t_1 = (((PyObject *)__pyx_v_self->_validator) != Py_None);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":544
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":556
* cdef int cleanup(self) except -1:
* if self._validator is not None:
* self._validator.disconnect() # <<<<<<<<<<<<<<
}
__pyx_L3:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":545
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":557
* if self._validator is not None:
* self._validator.disconnect()
* self._resetParserContext() # <<<<<<<<<<<<<<
*/
((struct __pyx_vtabstruct_4lxml_5etree__ParserContext *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_vtab)->_resetParserContext(__pyx_v_self);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":546
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":558
* self._validator.disconnect()
* self._resetParserContext()
* self.clear() # <<<<<<<<<<<<<<
*/
((struct __pyx_vtabstruct_4lxml_5etree__ParserContext *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base.clear(((struct __pyx_obj_4lxml_5etree__ExceptionContext *)__pyx_v_self));
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":547
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":559
* self._resetParserContext()
* self.clear()
* self._c_ctxt.sax.serror = NULL # <<<<<<<<<<<<<<
*/
__pyx_v_self->_c_ctxt->sax->serror = NULL;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":548
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":560
* self.clear()
* self._c_ctxt.sax.serror = NULL
* if config.ENABLE_THREADING and self._lock is not NULL: # <<<<<<<<<<<<<<
}
if (__pyx_t_2) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":549
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":561
* self._c_ctxt.sax.serror = NULL
* if config.ENABLE_THREADING and self._lock is not NULL:
* python.PyThread_release_lock(self._lock) # <<<<<<<<<<<<<<
}
__pyx_L4:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":550
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":562
* if config.ENABLE_THREADING and self._lock is not NULL:
* python.PyThread_release_lock(self._lock)
* return 0 # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":552
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":564
* return 0
*
* cdef object _handleParseResult(self, _BaseParser parser, # <<<<<<<<<<<<<<
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("_handleParseResult", 0);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":556
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":568
* cdef xmlDoc* c_doc
* cdef bint recover
* recover = parser._parse_options & xmlparser.XML_PARSE_RECOVER # <<<<<<<<<<<<<<
*/
__pyx_v_recover = (__pyx_v_parser->_parse_options & XML_PARSE_RECOVER);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":558
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":570
* recover = parser._parse_options & xmlparser.XML_PARSE_RECOVER
* c_doc = _handleParseResult(self, self._c_ctxt, result,
* filename, recover) # <<<<<<<<<<<<<<
* return _documentFactory(c_doc, parser)
*
*/
- __pyx_t_1 = __pyx_f_4lxml_5etree__handleParseResult(__pyx_v_self, __pyx_v_self->_c_ctxt, __pyx_v_result, __pyx_v_filename, __pyx_v_recover); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 557; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __pyx_f_4lxml_5etree__handleParseResult(__pyx_v_self, __pyx_v_self->_c_ctxt, __pyx_v_result, __pyx_v_filename, __pyx_v_recover); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 569; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_v_c_doc = __pyx_t_1;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":559
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":571
* c_doc = _handleParseResult(self, self._c_ctxt, result,
* filename, recover)
* return _documentFactory(c_doc, parser) # <<<<<<<<<<<<<<
* cdef xmlDoc* _handleParseResultDoc(self, _BaseParser parser,
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree__documentFactory(__pyx_v_c_doc, __pyx_v_parser)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 559; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[5]; __pyx_lineno = 571; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_r = __pyx_t_2;
__pyx_t_2 = 0;
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":561
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":573
* return _documentFactory(c_doc, parser)
*
* cdef xmlDoc* _handleParseResultDoc(self, _BaseParser parser, # <<<<<<<<<<<<<<
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("_handleParseResultDoc", 0);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":564
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":576
* xmlDoc* result, filename) except NULL:
* cdef bint recover
* recover = parser._parse_options & xmlparser.XML_PARSE_RECOVER # <<<<<<<<<<<<<<
*/
__pyx_v_recover = (__pyx_v_parser->_parse_options & XML_PARSE_RECOVER);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":566
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":578
* recover = parser._parse_options & xmlparser.XML_PARSE_RECOVER
* return _handleParseResult(self, self._c_ctxt, result,
* filename, recover) # <<<<<<<<<<<<<<
*
* cdef _initParserContext(_ParserContext context,
*/
- __pyx_t_1 = __pyx_f_4lxml_5etree__handleParseResult(__pyx_v_self, __pyx_v_self->_c_ctxt, __pyx_v_result, __pyx_v_filename, __pyx_v_recover); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 565; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __pyx_f_4lxml_5etree__handleParseResult(__pyx_v_self, __pyx_v_self->_c_ctxt, __pyx_v_result, __pyx_v_filename, __pyx_v_recover); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 577; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_r = __pyx_t_1;
goto __pyx_L0;
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":568
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":580
* filename, recover)
*
* cdef _initParserContext(_ParserContext context, # <<<<<<<<<<<<<<
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("_initParserContext", 0);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":571
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":583
* _ResolverRegistry resolvers,
* xmlparser.xmlParserCtxt* c_ctxt):
* _initResolverContext(context, resolvers) # <<<<<<<<<<<<<<
* if c_ctxt is not NULL:
* context._initParserContext(c_ctxt)
*/
- __pyx_t_1 = __pyx_f_4lxml_5etree__initResolverContext(((struct __pyx_obj_4lxml_5etree__ResolverContext *)__pyx_v_context), __pyx_v_resolvers); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 571; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __pyx_f_4lxml_5etree__initResolverContext(((struct __pyx_obj_4lxml_5etree__ResolverContext *)__pyx_v_context), __pyx_v_resolvers); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 583; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":572
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":584
* xmlparser.xmlParserCtxt* c_ctxt):
* _initResolverContext(context, resolvers)
* if c_ctxt is not NULL: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_v_c_ctxt != NULL);
if (__pyx_t_2) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":573
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":585
* _initResolverContext(context, resolvers)
* if c_ctxt is not NULL:
* context._initParserContext(c_ctxt) # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":575
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":587
* context._initParserContext(c_ctxt)
*
* cdef void _forwardParserError(xmlparser.xmlParserCtxt* _parser_context, xmlerror.xmlError* error) with gil: # <<<<<<<<<<<<<<
#endif
__Pyx_RefNannySetupContext("_forwardParserError", 0);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":576
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":588
*
* cdef void _forwardParserError(xmlparser.xmlParserCtxt* _parser_context, xmlerror.xmlError* error) with gil:
* (<_ParserContext>_parser_context._private)._error_log._receive(error) # <<<<<<<<<<<<<<
#endif
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":578
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":590
* (<_ParserContext>_parser_context._private)._error_log._receive(error)
*
* cdef void _receiveParserError(void* c_context, xmlerror.xmlError* error) nogil: # <<<<<<<<<<<<<<
int __pyx_t_2;
int __pyx_t_3;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":580
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":592
* cdef void _receiveParserError(void* c_context, xmlerror.xmlError* error) nogil:
* if __DEBUG:
* if c_context is NULL or (<xmlparser.xmlParserCtxt*>c_context)._private is NULL: # <<<<<<<<<<<<<<
}
if (__pyx_t_3) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":581
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":593
* if __DEBUG:
* if c_context is NULL or (<xmlparser.xmlParserCtxt*>c_context)._private is NULL:
* _forwardError(NULL, error) # <<<<<<<<<<<<<<
}
/*else*/ {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":583
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":595
* _forwardError(NULL, error)
* else:
* _forwardParserError(<xmlparser.xmlParserCtxt*>c_context, error) # <<<<<<<<<<<<<<
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":585
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":597
* _forwardParserError(<xmlparser.xmlParserCtxt*>c_context, error)
*
* cdef int _raiseParseError(xmlparser.xmlParserCtxt* ctxt, filename, # <<<<<<<<<<<<<<
int __pyx_t_1;
int __pyx_t_2;
int __pyx_t_3;
- PyObject *__pyx_t_4 = NULL;
- PyObject *__pyx_t_5 = NULL;
- int __pyx_t_6;
+ const xmlChar *__pyx_t_4;
+ Py_ssize_t __pyx_t_5;
+ PyObject *__pyx_t_6 = NULL;
PyObject *__pyx_t_7 = NULL;
PyObject *__pyx_t_8 = NULL;
PyObject *__pyx_t_9 = NULL;
+ char *__pyx_t_10;
+ int __pyx_t_11;
+ PyObject *__pyx_t_12 = NULL;
+ PyObject *__pyx_t_13 = NULL;
+ PyObject *__pyx_t_14 = NULL;
+ PyObject *__pyx_t_15 = NULL;
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("_raiseParseError", 0);
+ __Pyx_INCREF(__pyx_v_filename);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":587
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":599
* cdef int _raiseParseError(xmlparser.xmlParserCtxt* ctxt, filename,
* _ErrorLog error_log) except 0:
* if filename is not None and \ # <<<<<<<<<<<<<<
* ctxt.lastError.domain == xmlerror.XML_FROM_IO:
- * if ctxt.lastError.message is not NULL:
+ * if isinstance(filename, bytes):
*/
__pyx_t_1 = (__pyx_v_filename != Py_None);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":588
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":600
* _ErrorLog error_log) except 0:
* if filename is not None and \
* ctxt.lastError.domain == xmlerror.XML_FROM_IO: # <<<<<<<<<<<<<<
- * if ctxt.lastError.message is not NULL:
- * message = u"Error reading file '%s': %s" % (
+ * if isinstance(filename, bytes):
+ * filename = _decodeFilenameWithLength(
*/
__pyx_t_2 = (__pyx_v_ctxt->lastError.domain == XML_FROM_IO);
__pyx_t_3 = __pyx_t_2;
}
if (__pyx_t_3) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":589
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":601
* if filename is not None and \
* ctxt.lastError.domain == xmlerror.XML_FROM_IO:
+ * if isinstance(filename, bytes): # <<<<<<<<<<<<<<
+ * filename = _decodeFilenameWithLength(
+ * <bytes>filename, len(<bytes>filename))
+ */
+ __pyx_t_3 = PyBytes_Check(__pyx_v_filename);
+ if (__pyx_t_3) {
+
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":603
+ * if isinstance(filename, bytes):
+ * filename = _decodeFilenameWithLength(
+ * <bytes>filename, len(<bytes>filename)) # <<<<<<<<<<<<<<
+ * if ctxt.lastError.message is not NULL:
+ * try:
+ */
+ __pyx_t_4 = __Pyx_PyObject_AsUString(__pyx_v_filename); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 603; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (unlikely(__pyx_v_filename == Py_None)) {
+ PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
+ {__pyx_filename = __pyx_f[5]; __pyx_lineno = 603; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ }
+ __pyx_t_5 = PyBytes_GET_SIZE(((PyObject *)((PyObject*)__pyx_v_filename))); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 603; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __pyx_f_4lxml_5etree__decodeFilenameWithLength(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 602; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_6);
+ __Pyx_DECREF(__pyx_v_filename);
+ __pyx_v_filename = __pyx_t_6;
+ __pyx_t_6 = 0;
+ goto __pyx_L4;
+ }
+ __pyx_L4:;
+
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":604
+ * filename = _decodeFilenameWithLength(
+ * <bytes>filename, len(<bytes>filename))
* if ctxt.lastError.message is not NULL: # <<<<<<<<<<<<<<
- * message = u"Error reading file '%s': %s" % (
- * filename, (ctxt.lastError.message).strip())
+ * try:
+ * message = (ctxt.lastError.message).decode('utf-8')
*/
__pyx_t_3 = (__pyx_v_ctxt->lastError.message != NULL);
if (__pyx_t_3) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":591
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":605
+ * <bytes>filename, len(<bytes>filename))
* if ctxt.lastError.message is not NULL:
+ * try: # <<<<<<<<<<<<<<
+ * message = (ctxt.lastError.message).decode('utf-8')
+ * except UnicodeDecodeError:
+ */
+ {
+ __Pyx_ExceptionSave(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9);
+ __Pyx_XGOTREF(__pyx_t_7);
+ __Pyx_XGOTREF(__pyx_t_8);
+ __Pyx_XGOTREF(__pyx_t_9);
+ /*try:*/ {
+
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":606
+ * if ctxt.lastError.message is not NULL:
+ * try:
+ * message = (ctxt.lastError.message).decode('utf-8') # <<<<<<<<<<<<<<
+ * except UnicodeDecodeError:
+ * # the filename may be in there => play safe
+ */
+ __pyx_t_10 = __pyx_v_ctxt->lastError.message;
+ __pyx_t_6 = ((PyObject *)__Pyx_decode_c_string(__pyx_t_10, 0, strlen(__pyx_t_10), NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 606; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
+ __Pyx_GOTREF(((PyObject *)__pyx_t_6));
+ __Pyx_INCREF(((PyObject *)__pyx_t_6));
+ __pyx_v_message = ((PyObject *)__pyx_t_6);
+ __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
+ }
+ __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
+ __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
+ __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
+ goto __pyx_L13_try_end;
+ __pyx_L6_error:;
+ __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
+
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":607
+ * try:
+ * message = (ctxt.lastError.message).decode('utf-8')
+ * except UnicodeDecodeError: # <<<<<<<<<<<<<<
+ * # the filename may be in there => play safe
+ * message = (ctxt.lastError.message).decode('iso8859-1')
+ */
+ __pyx_t_11 = PyErr_ExceptionMatches(__pyx_builtin_UnicodeDecodeError);
+ if (__pyx_t_11) {
+ __Pyx_AddTraceback("lxml.etree._raiseParseError", __pyx_clineno, __pyx_lineno, __pyx_filename);
+ if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_12, &__pyx_t_13) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 607; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
+ __Pyx_GOTREF(__pyx_t_6);
+ __Pyx_GOTREF(__pyx_t_12);
+ __Pyx_GOTREF(__pyx_t_13);
+
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":609
+ * except UnicodeDecodeError:
+ * # the filename may be in there => play safe
+ * message = (ctxt.lastError.message).decode('iso8859-1') # <<<<<<<<<<<<<<
+ * message = u"Error reading file '%s': %s" % (
+ * filename, message.strip())
+ */
+ __pyx_t_10 = __pyx_v_ctxt->lastError.message;
+ __pyx_t_14 = ((PyObject *)__Pyx_decode_c_string(__pyx_t_10, 0, strlen(__pyx_t_10), NULL, NULL, PyUnicode_DecodeLatin1)); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 609; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
+ __Pyx_GOTREF(((PyObject *)__pyx_t_14));
+ __Pyx_INCREF(((PyObject *)__pyx_t_14));
+ __Pyx_XDECREF(__pyx_v_message);
+ __pyx_v_message = ((PyObject *)__pyx_t_14);
+ __Pyx_DECREF(((PyObject *)__pyx_t_14)); __pyx_t_14 = 0;
+ __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+ __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+ __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
+ goto __pyx_L7_exception_handled;
+ }
+ __pyx_L8_except_error:;
+ __Pyx_XGIVEREF(__pyx_t_7);
+ __Pyx_XGIVEREF(__pyx_t_8);
+ __Pyx_XGIVEREF(__pyx_t_9);
+ __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
+ goto __pyx_L1_error;
+ __pyx_L7_exception_handled:;
+ __Pyx_XGIVEREF(__pyx_t_7);
+ __Pyx_XGIVEREF(__pyx_t_8);
+ __Pyx_XGIVEREF(__pyx_t_9);
+ __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
+ __pyx_L13_try_end:;
+ }
+
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":611
+ * message = (ctxt.lastError.message).decode('iso8859-1')
* message = u"Error reading file '%s': %s" % (
- * filename, (ctxt.lastError.message).strip()) # <<<<<<<<<<<<<<
+ * filename, message.strip()) # <<<<<<<<<<<<<<
* else:
* message = u"Error reading '%s'" % filename
*/
- __pyx_t_4 = PyBytes_FromString(__pyx_v_ctxt->lastError.message); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 591; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(((PyObject *)__pyx_t_4));
- __pyx_t_5 = PyObject_GetAttr(((PyObject *)__pyx_t_4), __pyx_n_s__strip); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 591; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_t_5);
- __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
- __pyx_t_4 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 591; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_t_4);
- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
- __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 591; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_t_5);
+ __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_message, __pyx_n_s__strip); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 611; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_13);
+ __pyx_t_12 = PyObject_Call(__pyx_t_13, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 611; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_12);
+ __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
+ __pyx_t_13 = PyTuple_New(2); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 611; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_13);
__Pyx_INCREF(__pyx_v_filename);
- PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_filename);
+ PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_v_filename);
__Pyx_GIVEREF(__pyx_v_filename);
- PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4);
- __Pyx_GIVEREF(__pyx_t_4);
- __pyx_t_4 = 0;
- __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_161), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 590; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(((PyObject *)__pyx_t_4));
- __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
- __pyx_v_message = ((PyObject *)__pyx_t_4);
- __pyx_t_4 = 0;
- goto __pyx_L4;
+ PyTuple_SET_ITEM(__pyx_t_13, 1, __pyx_t_12);
+ __Pyx_GIVEREF(__pyx_t_12);
+ __pyx_t_12 = 0;
+ __pyx_t_12 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_170), ((PyObject *)__pyx_t_13)); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 610; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(((PyObject *)__pyx_t_12));
+ __Pyx_DECREF(((PyObject *)__pyx_t_13)); __pyx_t_13 = 0;
+ __Pyx_DECREF(__pyx_v_message);
+ __pyx_v_message = ((PyObject *)__pyx_t_12);
+ __pyx_t_12 = 0;
+ goto __pyx_L5;
}
/*else*/ {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":593
- * filename, (ctxt.lastError.message).strip())
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":613
+ * filename, message.strip())
* else:
* message = u"Error reading '%s'" % filename # <<<<<<<<<<<<<<
* raise IOError, message
* elif error_log:
*/
- __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_162), __pyx_v_filename); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 593; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(((PyObject *)__pyx_t_4));
- __pyx_v_message = ((PyObject *)__pyx_t_4);
- __pyx_t_4 = 0;
+ __pyx_t_12 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_171), __pyx_v_filename); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 613; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(((PyObject *)__pyx_t_12));
+ __pyx_v_message = ((PyObject *)__pyx_t_12);
+ __pyx_t_12 = 0;
}
- __pyx_L4:;
+ __pyx_L5:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":594
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":614
* else:
* message = u"Error reading '%s'" % filename
* raise IOError, message # <<<<<<<<<<<<<<
* raise error_log._buildParseException(
*/
__Pyx_Raise(__pyx_builtin_IOError, __pyx_v_message, 0, 0);
- {__pyx_filename = __pyx_f[5]; __pyx_lineno = 594; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ {__pyx_filename = __pyx_f[5]; __pyx_lineno = 614; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L3;
}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":595
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":615
* message = u"Error reading '%s'" % filename
* raise IOError, message
* elif error_log: # <<<<<<<<<<<<<<
* raise error_log._buildParseException(
* XMLSyntaxError, u"Document is not well formed")
*/
- __pyx_t_3 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_error_log)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 595; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_error_log)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 615; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
if (__pyx_t_3) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":597
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":617
* elif error_log:
* raise error_log._buildParseException(
* XMLSyntaxError, u"Document is not well formed") # <<<<<<<<<<<<<<
* elif ctxt.lastError.message is not NULL:
* message = (ctxt.lastError.message).strip()
*/
- __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__XMLSyntaxError); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 597; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_t_4);
- __pyx_t_5 = __pyx_f_4lxml_5etree_13_BaseErrorLog__buildParseException(((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_v_error_log), __pyx_t_4, ((PyObject *)__pyx_kp_u_163)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 596; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_t_5);
- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- __Pyx_Raise(__pyx_t_5, 0, 0, 0);
- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
- {__pyx_filename = __pyx_f[5]; __pyx_lineno = 596; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_12 = __Pyx_GetModuleGlobalName(__pyx_n_s__XMLSyntaxError); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 617; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_12);
+ __pyx_t_13 = __pyx_f_4lxml_5etree_13_BaseErrorLog__buildParseException(((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_v_error_log), __pyx_t_12, ((PyObject *)__pyx_kp_u_172)); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 616; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_13);
+ __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+ __Pyx_Raise(__pyx_t_13, 0, 0, 0);
+ __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
+ {__pyx_filename = __pyx_f[5]; __pyx_lineno = 616; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L3;
}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":598
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":618
* raise error_log._buildParseException(
* XMLSyntaxError, u"Document is not well formed")
* elif ctxt.lastError.message is not NULL: # <<<<<<<<<<<<<<
__pyx_t_3 = (__pyx_v_ctxt->lastError.message != NULL);
if (__pyx_t_3) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":599
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":619
* XMLSyntaxError, u"Document is not well formed")
* elif ctxt.lastError.message is not NULL:
* message = (ctxt.lastError.message).strip() # <<<<<<<<<<<<<<
* code = ctxt.lastError.code
* line = ctxt.lastError.line
*/
- __pyx_t_5 = PyBytes_FromString(__pyx_v_ctxt->lastError.message); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 599; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(((PyObject *)__pyx_t_5));
- __pyx_t_4 = PyObject_GetAttr(((PyObject *)__pyx_t_5), __pyx_n_s__strip); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 599; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_t_4);
- __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
- __pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 599; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_t_5);
- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- __pyx_v_message = __pyx_t_5;
- __pyx_t_5 = 0;
+ __pyx_t_13 = __Pyx_PyBytes_FromString(__pyx_v_ctxt->lastError.message); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 619; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(((PyObject *)__pyx_t_13));
+ __pyx_t_12 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_t_13), __pyx_n_s__strip); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 619; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_12);
+ __Pyx_DECREF(((PyObject *)__pyx_t_13)); __pyx_t_13 = 0;
+ __pyx_t_13 = PyObject_Call(__pyx_t_12, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 619; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_13);
+ __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+ __pyx_v_message = __pyx_t_13;
+ __pyx_t_13 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":600
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":620
* elif ctxt.lastError.message is not NULL:
* message = (ctxt.lastError.message).strip()
* code = ctxt.lastError.code # <<<<<<<<<<<<<<
* line = ctxt.lastError.line
* column = ctxt.lastError.int2
*/
- __pyx_t_6 = __pyx_v_ctxt->lastError.code;
- __pyx_v_code = __pyx_t_6;
+ __pyx_t_11 = __pyx_v_ctxt->lastError.code;
+ __pyx_v_code = __pyx_t_11;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":601
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":621
* message = (ctxt.lastError.message).strip()
* code = ctxt.lastError.code
* line = ctxt.lastError.line # <<<<<<<<<<<<<<
* column = ctxt.lastError.int2
* if ctxt.lastError.line > 0:
*/
- __pyx_t_6 = __pyx_v_ctxt->lastError.line;
- __pyx_v_line = __pyx_t_6;
+ __pyx_t_11 = __pyx_v_ctxt->lastError.line;
+ __pyx_v_line = __pyx_t_11;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":602
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":622
* code = ctxt.lastError.code
* line = ctxt.lastError.line
* column = ctxt.lastError.int2 # <<<<<<<<<<<<<<
* if ctxt.lastError.line > 0:
* message = u"line %d: %s" % (line, message)
*/
- __pyx_t_6 = __pyx_v_ctxt->lastError.int2;
- __pyx_v_column = __pyx_t_6;
+ __pyx_t_11 = __pyx_v_ctxt->lastError.int2;
+ __pyx_v_column = __pyx_t_11;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":603
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":623
* line = ctxt.lastError.line
* column = ctxt.lastError.int2
* if ctxt.lastError.line > 0: # <<<<<<<<<<<<<<
__pyx_t_3 = (__pyx_v_ctxt->lastError.line > 0);
if (__pyx_t_3) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":604
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":624
* column = ctxt.lastError.int2
* if ctxt.lastError.line > 0:
* message = u"line %d: %s" % (line, message) # <<<<<<<<<<<<<<
* raise XMLSyntaxError(message, code, line, column)
* else:
*/
- __pyx_t_5 = PyInt_FromLong(__pyx_v_line); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 604; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_t_5);
- __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 604; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_t_4);
- PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5);
- __Pyx_GIVEREF(__pyx_t_5);
+ __pyx_t_13 = PyInt_FromLong(__pyx_v_line); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 624; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_13);
+ __pyx_t_12 = PyTuple_New(2); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 624; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_12);
+ PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_13);
+ __Pyx_GIVEREF(__pyx_t_13);
__Pyx_INCREF(__pyx_v_message);
- PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_message);
+ PyTuple_SET_ITEM(__pyx_t_12, 1, __pyx_v_message);
__Pyx_GIVEREF(__pyx_v_message);
- __pyx_t_5 = 0;
- __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_164), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 604; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(((PyObject *)__pyx_t_5));
- __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
+ __pyx_t_13 = 0;
+ __pyx_t_13 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_173), ((PyObject *)__pyx_t_12)); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 624; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(((PyObject *)__pyx_t_13));
+ __Pyx_DECREF(((PyObject *)__pyx_t_12)); __pyx_t_12 = 0;
__Pyx_DECREF(__pyx_v_message);
- __pyx_v_message = ((PyObject *)__pyx_t_5);
- __pyx_t_5 = 0;
- goto __pyx_L5;
+ __pyx_v_message = ((PyObject *)__pyx_t_13);
+ __pyx_t_13 = 0;
+ goto __pyx_L16;
}
- __pyx_L5:;
+ __pyx_L16:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":605
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":625
* if ctxt.lastError.line > 0:
* message = u"line %d: %s" % (line, message)
* raise XMLSyntaxError(message, code, line, column) # <<<<<<<<<<<<<<
* else:
* raise XMLSyntaxError(None, xmlerror.XML_ERR_INTERNAL_ERROR, 0, 0)
*/
- __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__XMLSyntaxError); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 605; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_t_5);
- __pyx_t_4 = PyInt_FromLong(__pyx_v_code); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 605; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_t_4);
- __pyx_t_7 = PyInt_FromLong(__pyx_v_line); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 605; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_t_7);
- __pyx_t_8 = PyInt_FromLong(__pyx_v_column); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 605; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_t_8);
- __pyx_t_9 = PyTuple_New(4); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 605; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_t_9);
+ __pyx_t_13 = __Pyx_GetModuleGlobalName(__pyx_n_s__XMLSyntaxError); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 625; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_13);
+ __pyx_t_12 = PyInt_FromLong(__pyx_v_code); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 625; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_12);
+ __pyx_t_6 = PyInt_FromLong(__pyx_v_line); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 625; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_6);
+ __pyx_t_14 = PyInt_FromLong(__pyx_v_column); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 625; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_14);
+ __pyx_t_15 = PyTuple_New(4); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 625; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_15);
__Pyx_INCREF(__pyx_v_message);
- PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_v_message);
+ PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_v_message);
__Pyx_GIVEREF(__pyx_v_message);
- PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_4);
- __Pyx_GIVEREF(__pyx_t_4);
- PyTuple_SET_ITEM(__pyx_t_9, 2, __pyx_t_7);
- __Pyx_GIVEREF(__pyx_t_7);
- PyTuple_SET_ITEM(__pyx_t_9, 3, __pyx_t_8);
- __Pyx_GIVEREF(__pyx_t_8);
- __pyx_t_4 = 0;
- __pyx_t_7 = 0;
- __pyx_t_8 = 0;
- __pyx_t_8 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_9), NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 605; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_t_8);
- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
- __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0;
- __Pyx_Raise(__pyx_t_8, 0, 0, 0);
- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
- {__pyx_filename = __pyx_f[5]; __pyx_lineno = 605; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_t_12);
+ __Pyx_GIVEREF(__pyx_t_12);
+ PyTuple_SET_ITEM(__pyx_t_15, 2, __pyx_t_6);
+ __Pyx_GIVEREF(__pyx_t_6);
+ PyTuple_SET_ITEM(__pyx_t_15, 3, __pyx_t_14);
+ __Pyx_GIVEREF(__pyx_t_14);
+ __pyx_t_12 = 0;
+ __pyx_t_6 = 0;
+ __pyx_t_14 = 0;
+ __pyx_t_14 = PyObject_Call(__pyx_t_13, ((PyObject *)__pyx_t_15), NULL); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 625; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_14);
+ __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
+ __Pyx_DECREF(((PyObject *)__pyx_t_15)); __pyx_t_15 = 0;
+ __Pyx_Raise(__pyx_t_14, 0, 0, 0);
+ __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+ {__pyx_filename = __pyx_f[5]; __pyx_lineno = 625; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L3;
}
/*else*/ {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":607
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":627
* raise XMLSyntaxError(message, code, line, column)
* else:
* raise XMLSyntaxError(None, xmlerror.XML_ERR_INTERNAL_ERROR, 0, 0) # <<<<<<<<<<<<<<
*
* cdef xmlDoc* _handleParseResult(_ParserContext context,
*/
- __pyx_t_8 = __Pyx_GetName(__pyx_m, __pyx_n_s__XMLSyntaxError); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 607; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_t_8);
- __pyx_t_9 = PyInt_FromLong(XML_ERR_INTERNAL_ERROR); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 607; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_t_9);
- __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 607; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_t_5);
+ __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s__XMLSyntaxError); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 627; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_14);
+ __pyx_t_15 = PyInt_FromLong(XML_ERR_INTERNAL_ERROR); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 627; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_15);
+ __pyx_t_13 = PyTuple_New(4); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 627; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_13);
__Pyx_INCREF(Py_None);
- PyTuple_SET_ITEM(__pyx_t_5, 0, Py_None);
+ PyTuple_SET_ITEM(__pyx_t_13, 0, Py_None);
__Pyx_GIVEREF(Py_None);
- PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_9);
- __Pyx_GIVEREF(__pyx_t_9);
+ PyTuple_SET_ITEM(__pyx_t_13, 1, __pyx_t_15);
+ __Pyx_GIVEREF(__pyx_t_15);
__Pyx_INCREF(__pyx_int_0);
- PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_int_0);
+ PyTuple_SET_ITEM(__pyx_t_13, 2, __pyx_int_0);
__Pyx_GIVEREF(__pyx_int_0);
__Pyx_INCREF(__pyx_int_0);
- PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_int_0);
+ PyTuple_SET_ITEM(__pyx_t_13, 3, __pyx_int_0);
__Pyx_GIVEREF(__pyx_int_0);
- __pyx_t_9 = 0;
- __pyx_t_9 = PyObject_Call(__pyx_t_8, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 607; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_t_9);
- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
- __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
- __Pyx_Raise(__pyx_t_9, 0, 0, 0);
- __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
- {__pyx_filename = __pyx_f[5]; __pyx_lineno = 607; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_15 = 0;
+ __pyx_t_15 = PyObject_Call(__pyx_t_14, ((PyObject *)__pyx_t_13), NULL); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 627; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_15);
+ __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+ __Pyx_DECREF(((PyObject *)__pyx_t_13)); __pyx_t_13 = 0;
+ __Pyx_Raise(__pyx_t_15, 0, 0, 0);
+ __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
+ {__pyx_filename = __pyx_f[5]; __pyx_lineno = 627; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
__pyx_L3:;
__pyx_r = 0;
goto __pyx_L0;
__pyx_L1_error:;
- __Pyx_XDECREF(__pyx_t_4);
- __Pyx_XDECREF(__pyx_t_5);
- __Pyx_XDECREF(__pyx_t_7);
- __Pyx_XDECREF(__pyx_t_8);
- __Pyx_XDECREF(__pyx_t_9);
+ __Pyx_XDECREF(__pyx_t_6);
+ __Pyx_XDECREF(__pyx_t_12);
+ __Pyx_XDECREF(__pyx_t_13);
+ __Pyx_XDECREF(__pyx_t_14);
+ __Pyx_XDECREF(__pyx_t_15);
__Pyx_AddTraceback("lxml.etree._raiseParseError", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_message);
+ __Pyx_XDECREF(__pyx_v_filename);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":609
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":629
* raise XMLSyntaxError(None, xmlerror.XML_ERR_INTERNAL_ERROR, 0, 0)
*
* cdef xmlDoc* _handleParseResult(_ParserContext context, # <<<<<<<<<<<<<<
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("_handleParseResult", 0);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":614
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":634
* bint recover) except NULL:
* cdef bint well_formed
* if result is not NULL: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_v_result != NULL);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":615
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":635
* cdef bint well_formed
* if result is not NULL:
* __GLOBAL_PARSER_CONTEXT.initDocDict(result) # <<<<<<<<<<<<<<
}
__pyx_L3:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":617
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":637
* __GLOBAL_PARSER_CONTEXT.initDocDict(result)
*
* if c_ctxt.myDoc is not NULL: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_v_c_ctxt->myDoc != NULL);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":618
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":638
*
* if c_ctxt.myDoc is not NULL:
* if c_ctxt.myDoc is not result: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_v_c_ctxt->myDoc != __pyx_v_result);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":619
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":639
* if c_ctxt.myDoc is not NULL:
* if c_ctxt.myDoc is not result:
* __GLOBAL_PARSER_CONTEXT.initDocDict(c_ctxt.myDoc) # <<<<<<<<<<<<<<
*/
__pyx_f_4lxml_5etree_24_ParserDictionaryContext_initDocDict(__pyx_v_4lxml_5etree___GLOBAL_PARSER_CONTEXT, __pyx_v_c_ctxt->myDoc);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":620
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":640
* if c_ctxt.myDoc is not result:
* __GLOBAL_PARSER_CONTEXT.initDocDict(c_ctxt.myDoc)
* tree.xmlFreeDoc(c_ctxt.myDoc) # <<<<<<<<<<<<<<
}
__pyx_L5:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":621
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":641
* __GLOBAL_PARSER_CONTEXT.initDocDict(c_ctxt.myDoc)
* tree.xmlFreeDoc(c_ctxt.myDoc)
* c_ctxt.myDoc = NULL # <<<<<<<<<<<<<<
}
__pyx_L4:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":623
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":643
* c_ctxt.myDoc = NULL
*
* if result is not NULL: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_v_result != NULL);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":624
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":644
*
* if result is not NULL:
* if context._validator is not None and \ # <<<<<<<<<<<<<<
__pyx_t_1 = (((PyObject *)__pyx_v_context->_validator) != Py_None);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":625
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":645
* if result is not NULL:
* if context._validator is not None and \
* not context._validator.isvalid(): # <<<<<<<<<<<<<<
}
if (__pyx_t_3) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":626
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":646
* if context._validator is not None and \
* not context._validator.isvalid():
* well_formed = 0 # actually not 'valid', but anyway ... # <<<<<<<<<<<<<<
goto __pyx_L7;
}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":627
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":647
* not context._validator.isvalid():
* well_formed = 0 # actually not 'valid', but anyway ...
* elif recover or (c_ctxt.wellFormed and # <<<<<<<<<<<<<<
if (!__pyx_v_recover) {
if (__pyx_v_c_ctxt->wellFormed) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":628
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":648
* well_formed = 0 # actually not 'valid', but anyway ...
* elif recover or (c_ctxt.wellFormed and
* c_ctxt.lastError.level < xmlerror.XML_ERR_ERROR): # <<<<<<<<<<<<<<
}
if (__pyx_t_3) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":629
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":649
* elif recover or (c_ctxt.wellFormed and
* c_ctxt.lastError.level < xmlerror.XML_ERR_ERROR):
* well_formed = 1 # <<<<<<<<<<<<<<
goto __pyx_L7;
}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":630
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":650
* c_ctxt.lastError.level < xmlerror.XML_ERR_ERROR):
* well_formed = 1
* elif not c_ctxt.replaceEntities and not c_ctxt.validate \ # <<<<<<<<<<<<<<
__pyx_t_3 = (!__pyx_v_c_ctxt->replaceEntities);
if (__pyx_t_3) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":631
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":651
* well_formed = 1
* elif not c_ctxt.replaceEntities and not c_ctxt.validate \
* and context is not None: # <<<<<<<<<<<<<<
}
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":633
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":653
* and context is not None:
* # in this mode, we ignore errors about undefined entities
* for error in context._error_log.filter_from_errors(): # <<<<<<<<<<<<<<
* if error.type != ErrorTypes.WAR_UNDECLARED_ENTITY and \
* error.type != ErrorTypes.ERR_UNDECLARED_ENTITY:
*/
- __pyx_t_5 = PyObject_GetAttr(((PyObject *)__pyx_v_context->_error_log), __pyx_n_s__filter_from_errors); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 633; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_context->_error_log), __pyx_n_s__filter_from_errors); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 653; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
- __pyx_t_6 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 633; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 653; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
if (PyList_CheckExact(__pyx_t_6) || PyTuple_CheckExact(__pyx_t_6)) {
__pyx_t_5 = __pyx_t_6; __Pyx_INCREF(__pyx_t_5); __pyx_t_7 = 0;
__pyx_t_8 = NULL;
} else {
- __pyx_t_7 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 633; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 653; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_8 = Py_TYPE(__pyx_t_5)->tp_iternext;
}
if (!__pyx_t_8 && PyList_CheckExact(__pyx_t_5)) {
if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_5)) break;
#if CYTHON_COMPILING_IN_CPYTHON
- __pyx_t_6 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_7); __Pyx_INCREF(__pyx_t_6); __pyx_t_7++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 633; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_7); __Pyx_INCREF(__pyx_t_6); __pyx_t_7++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 653; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
#else
- __pyx_t_6 = PySequence_ITEM(__pyx_t_5, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 633; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = PySequence_ITEM(__pyx_t_5, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 653; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
#endif
} else if (!__pyx_t_8 && PyTuple_CheckExact(__pyx_t_5)) {
if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
#if CYTHON_COMPILING_IN_CPYTHON
- __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_7); __Pyx_INCREF(__pyx_t_6); __pyx_t_7++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 633; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_7); __Pyx_INCREF(__pyx_t_6); __pyx_t_7++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 653; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
#else
- __pyx_t_6 = PySequence_ITEM(__pyx_t_5, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 633; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = PySequence_ITEM(__pyx_t_5, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 653; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
#endif
} else {
__pyx_t_6 = __pyx_t_8(__pyx_t_5);
if (unlikely(!__pyx_t_6)) {
if (PyErr_Occurred()) {
if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
- else {__pyx_filename = __pyx_f[5]; __pyx_lineno = 633; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ else {__pyx_filename = __pyx_f[5]; __pyx_lineno = 653; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
break;
}
__pyx_v_error = __pyx_t_6;
__pyx_t_6 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":634
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":654
* # in this mode, we ignore errors about undefined entities
* for error in context._error_log.filter_from_errors():
* if error.type != ErrorTypes.WAR_UNDECLARED_ENTITY and \ # <<<<<<<<<<<<<<
* error.type != ErrorTypes.ERR_UNDECLARED_ENTITY:
* well_formed = 0
*/
- __pyx_t_6 = PyObject_GetAttr(__pyx_v_error, __pyx_n_s__type); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 634; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_error, __pyx_n_s__type); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 654; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
- __pyx_t_9 = __Pyx_GetName(__pyx_m, __pyx_n_s__ErrorTypes); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 634; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_9 = __Pyx_GetModuleGlobalName(__pyx_n_s__ErrorTypes); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 654; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_9);
- __pyx_t_10 = PyObject_GetAttr(__pyx_t_9, __pyx_n_s_165); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 634; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_174); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 654; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
- __pyx_t_9 = PyObject_RichCompare(__pyx_t_6, __pyx_t_10, Py_NE); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 634; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_9 = PyObject_RichCompare(__pyx_t_6, __pyx_t_10, Py_NE); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 654; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
- __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 634; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 654; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":635
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":655
* for error in context._error_log.filter_from_errors():
* if error.type != ErrorTypes.WAR_UNDECLARED_ENTITY and \
* error.type != ErrorTypes.ERR_UNDECLARED_ENTITY: # <<<<<<<<<<<<<<
* well_formed = 0
* break
*/
- __pyx_t_9 = PyObject_GetAttr(__pyx_v_error, __pyx_n_s__type); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 635; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_error, __pyx_n_s__type); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 655; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_9);
- __pyx_t_10 = __Pyx_GetName(__pyx_m, __pyx_n_s__ErrorTypes); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 635; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_10 = __Pyx_GetModuleGlobalName(__pyx_n_s__ErrorTypes); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 655; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_10);
- __pyx_t_6 = PyObject_GetAttr(__pyx_t_10, __pyx_n_s_166); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 635; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_175); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 655; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
- __pyx_t_10 = PyObject_RichCompare(__pyx_t_9, __pyx_t_6, Py_NE); __Pyx_XGOTREF(__pyx_t_10); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 635; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_10 = PyObject_RichCompare(__pyx_t_9, __pyx_t_6, Py_NE); __Pyx_XGOTREF(__pyx_t_10); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 655; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
- __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 635; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 655; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__pyx_t_4 = __pyx_t_3;
} else {
}
if (__pyx_t_4) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":636
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":656
* if error.type != ErrorTypes.WAR_UNDECLARED_ENTITY and \
* error.type != ErrorTypes.ERR_UNDECLARED_ENTITY:
* well_formed = 0 # <<<<<<<<<<<<<<
*/
__pyx_v_well_formed = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":637
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":657
* error.type != ErrorTypes.ERR_UNDECLARED_ENTITY:
* well_formed = 0
* break # <<<<<<<<<<<<<<
}
/*else*/ {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":639
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":659
* break
* else:
* well_formed = 1 # <<<<<<<<<<<<<<
}
/*else*/ {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":641
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":661
* well_formed = 1
* else:
* well_formed = 0 # <<<<<<<<<<<<<<
}
__pyx_L7:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":643
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":663
* well_formed = 0
*
* if not well_formed: # <<<<<<<<<<<<<<
__pyx_t_4 = (!__pyx_v_well_formed);
if (__pyx_t_4) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":645
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":665
* if not well_formed:
* # free broken document
* tree.xmlFreeDoc(result) # <<<<<<<<<<<<<<
*/
xmlFreeDoc(__pyx_v_result);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":646
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":666
* # free broken document
* tree.xmlFreeDoc(result)
* result = NULL # <<<<<<<<<<<<<<
}
__pyx_L6:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":648
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":668
* result = NULL
*
* if context is not None and context._has_raised(): # <<<<<<<<<<<<<<
}
if (__pyx_t_3) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":649
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":669
*
* if context is not None and context._has_raised():
* if result is not NULL: # <<<<<<<<<<<<<<
__pyx_t_3 = (__pyx_v_result != NULL);
if (__pyx_t_3) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":650
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":670
* if context is not None and context._has_raised():
* if result is not NULL:
* tree.xmlFreeDoc(result) # <<<<<<<<<<<<<<
*/
xmlFreeDoc(__pyx_v_result);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":651
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":671
* if result is not NULL:
* tree.xmlFreeDoc(result)
* result = NULL # <<<<<<<<<<<<<<
}
__pyx_L14:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":652
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":672
* tree.xmlFreeDoc(result)
* result = NULL
* context._raise_if_stored() # <<<<<<<<<<<<<<
*
* if result is NULL:
*/
- __pyx_t_11 = ((struct __pyx_vtabstruct_4lxml_5etree__ParserContext *)__pyx_v_context->__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base._raise_if_stored(((struct __pyx_obj_4lxml_5etree__ExceptionContext *)__pyx_v_context)); if (unlikely(__pyx_t_11 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 652; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_11 = ((struct __pyx_vtabstruct_4lxml_5etree__ParserContext *)__pyx_v_context->__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base._raise_if_stored(((struct __pyx_obj_4lxml_5etree__ExceptionContext *)__pyx_v_context)); if (unlikely(__pyx_t_11 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 672; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L13;
}
__pyx_L13:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":654
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":674
* context._raise_if_stored()
*
* if result is NULL: # <<<<<<<<<<<<<<
__pyx_t_3 = (__pyx_v_result == NULL);
if (__pyx_t_3) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":655
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":675
*
* if result is NULL:
* if context is not None: # <<<<<<<<<<<<<<
__pyx_t_3 = (((PyObject *)__pyx_v_context) != Py_None);
if (__pyx_t_3) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":656
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":676
* if result is NULL:
* if context is not None:
* _raiseParseError(c_ctxt, filename, context._error_log) # <<<<<<<<<<<<<<
*/
__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 == 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 656; __pyx_clineno = __LINE__; goto __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 == 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 676; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
goto __pyx_L16;
}
/*else*/ {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":658
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":678
* _raiseParseError(c_ctxt, filename, context._error_log)
* else:
* _raiseParseError(c_ctxt, filename, None) # <<<<<<<<<<<<<<
* else:
* if result.URL is NULL and filename is not None:
*/
- __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 == 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 658; __pyx_clineno = __LINE__; goto __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 == 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 678; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
__pyx_L16:;
goto __pyx_L15;
}
/*else*/ {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":660
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":680
* _raiseParseError(c_ctxt, filename, None)
* else:
* if result.URL is NULL and filename is not None: # <<<<<<<<<<<<<<
}
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":661
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":681
* else:
* if result.URL is NULL and filename is not None:
* result.URL = tree.xmlStrdup(_xcstr(filename)) # <<<<<<<<<<<<<<
}
__pyx_L17:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":662
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":682
* if result.URL is NULL and filename is not None:
* result.URL = tree.xmlStrdup(_xcstr(filename))
* if result.encoding is NULL: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_v_result->encoding == NULL);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":663
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":683
* result.URL = tree.xmlStrdup(_xcstr(filename))
* if result.encoding is NULL:
* result.encoding = tree.xmlStrdup(<unsigned char*>"UTF-8") # <<<<<<<<<<<<<<
*
* if context._validator is not None and \
*/
- __pyx_v_result->encoding = xmlStrdup(((unsigned char *)((unsigned char *)__pyx_k_101)));
+ __pyx_v_result->encoding = xmlStrdup(((unsigned char *)((unsigned char *)__pyx_k_105)));
goto __pyx_L18;
}
__pyx_L18:;
}
__pyx_L15:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":665
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":685
* result.encoding = tree.xmlStrdup(<unsigned char*>"UTF-8")
*
* if context._validator is not None and \ # <<<<<<<<<<<<<<
__pyx_t_1 = (((PyObject *)__pyx_v_context->_validator) != Py_None);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":666
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":686
*
* if context._validator is not None and \
* context._validator._add_default_attributes: # <<<<<<<<<<<<<<
}
if (__pyx_t_3) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":670
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":690
* # support inserting default attributes during parse-time
* # validation
* context._validator.inject_default_attributes(result) # <<<<<<<<<<<<<<
}
__pyx_L19:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":672
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":692
* context._validator.inject_default_attributes(result)
*
* return result # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":674
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":694
* return result
*
* cdef int _fixHtmlDictNames(tree.xmlDict* c_dict, xmlDoc* c_doc) nogil: # <<<<<<<<<<<<<<
int __pyx_t_1;
xmlNode *__pyx_t_2;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":676
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":696
* cdef int _fixHtmlDictNames(tree.xmlDict* c_dict, xmlDoc* c_doc) nogil:
* cdef xmlNode* c_node
* if c_doc is NULL: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_v_c_doc == NULL);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":677
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":697
* cdef xmlNode* c_node
* if c_doc is NULL:
* return 0 # <<<<<<<<<<<<<<
}
__pyx_L3:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":678
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":698
* if c_doc is NULL:
* return 0
* c_node = c_doc.children # <<<<<<<<<<<<<<
__pyx_t_2 = __pyx_v_c_doc->children;
__pyx_v_c_node = __pyx_t_2;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":679
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":699
* return 0
* c_node = c_doc.children
* tree.BEGIN_FOR_EACH_ELEMENT_FROM(<xmlNode*>c_doc, c_node, 0) # <<<<<<<<<<<<<<
*/
BEGIN_FOR_EACH_ELEMENT_FROM(((xmlNode *)__pyx_v_c_doc), __pyx_v_c_node, 0);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":680
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":700
* c_node = c_doc.children
* tree.BEGIN_FOR_EACH_ELEMENT_FROM(<xmlNode*>c_doc, c_node, 0)
* if c_node.type == tree.XML_ELEMENT_NODE: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_v_c_node->type == XML_ELEMENT_NODE);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":681
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":701
* tree.BEGIN_FOR_EACH_ELEMENT_FROM(<xmlNode*>c_doc, c_node, 0)
* if c_node.type == tree.XML_ELEMENT_NODE:
* if _fixHtmlDictNodeNames(c_dict, c_node) < 0: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_f_4lxml_5etree__fixHtmlDictNodeNames(__pyx_v_c_dict, __pyx_v_c_node) < 0);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":682
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":702
* if c_node.type == tree.XML_ELEMENT_NODE:
* if _fixHtmlDictNodeNames(c_dict, c_node) < 0:
* return -1 # <<<<<<<<<<<<<<
}
__pyx_L4:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":683
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":703
* if _fixHtmlDictNodeNames(c_dict, c_node) < 0:
* return -1
* tree.END_FOR_EACH_ELEMENT_FROM(c_node) # <<<<<<<<<<<<<<
*/
END_FOR_EACH_ELEMENT_FROM(__pyx_v_c_node);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":684
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":704
* return -1
* tree.END_FOR_EACH_ELEMENT_FROM(c_node)
* return 0 # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":686
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":706
* return 0
*
* cdef inline int _fixHtmlDictNodeNames(tree.xmlDict* c_dict, # <<<<<<<<<<<<<<
int __pyx_t_1;
xmlNode *__pyx_t_2;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":689
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":709
* xmlNode* c_node) nogil:
* cdef xmlNode* c_attr
* c_name = tree.xmlDictLookup(c_dict, c_node.name, -1) # <<<<<<<<<<<<<<
*/
__pyx_v_c_name = xmlDictLookup(__pyx_v_c_dict, __pyx_v_c_node->name, -1);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":690
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":710
* cdef xmlNode* c_attr
* c_name = tree.xmlDictLookup(c_dict, c_node.name, -1)
* if c_name is NULL: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_v_c_name == NULL);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":691
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":711
* c_name = tree.xmlDictLookup(c_dict, c_node.name, -1)
* if c_name is NULL:
* return -1 # <<<<<<<<<<<<<<
}
__pyx_L3:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":692
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":712
* if c_name is NULL:
* return -1
* if c_name is not c_node.name: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_v_c_name != __pyx_v_c_node->name);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":693
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":713
* return -1
* if c_name is not c_node.name:
* tree.xmlFree(<char*>c_node.name) # <<<<<<<<<<<<<<
*/
xmlFree(((char *)__pyx_v_c_node->name));
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":694
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":714
* if c_name is not c_node.name:
* tree.xmlFree(<char*>c_node.name)
* c_node.name = c_name # <<<<<<<<<<<<<<
}
__pyx_L4:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":695
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":715
* tree.xmlFree(<char*>c_node.name)
* c_node.name = c_name
* c_attr = <xmlNode*>c_node.properties # <<<<<<<<<<<<<<
*/
__pyx_v_c_attr = ((xmlNode *)__pyx_v_c_node->properties);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":696
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":716
* c_node.name = c_name
* c_attr = <xmlNode*>c_node.properties
* while c_attr is not NULL: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_v_c_attr != NULL);
if (!__pyx_t_1) break;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":697
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":717
* c_attr = <xmlNode*>c_node.properties
* while c_attr is not NULL:
* c_name = tree.xmlDictLookup(c_dict, c_attr.name, -1) # <<<<<<<<<<<<<<
*/
__pyx_v_c_name = xmlDictLookup(__pyx_v_c_dict, __pyx_v_c_attr->name, -1);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":698
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":718
* while c_attr is not NULL:
* c_name = tree.xmlDictLookup(c_dict, c_attr.name, -1)
* if c_name is NULL: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_v_c_name == NULL);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":699
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":719
* c_name = tree.xmlDictLookup(c_dict, c_attr.name, -1)
* if c_name is NULL:
* return -1 # <<<<<<<<<<<<<<
}
__pyx_L7:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":700
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":720
* if c_name is NULL:
* return -1
* if c_name is not c_attr.name: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_v_c_name != __pyx_v_c_attr->name);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":701
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":721
* return -1
* if c_name is not c_attr.name:
* tree.xmlFree(<char*>c_attr.name) # <<<<<<<<<<<<<<
*/
xmlFree(((char *)__pyx_v_c_attr->name));
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":702
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":722
* if c_name is not c_attr.name:
* tree.xmlFree(<char*>c_attr.name)
* c_attr.name = c_name # <<<<<<<<<<<<<<
}
__pyx_L8:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":703
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":723
* tree.xmlFree(<char*>c_attr.name)
* c_attr.name = c_name
* c_attr = c_attr.next # <<<<<<<<<<<<<<
__pyx_v_c_attr = __pyx_t_2;
}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":704
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":724
* c_attr.name = c_name
* c_attr = c_attr.next
* return 0 # <<<<<<<<<<<<<<
PyObject *__pyx_v_target = 0;
PyObject *__pyx_v_filename = 0;
PyObject *__pyx_v_encoding = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
case 1:
if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__for_html)) != 0)) kw_args--;
else {
- __Pyx_RaiseArgtupleInvalid("__init__", 1, 9, 9, 1); {__pyx_filename = __pyx_f[5]; __pyx_lineno = 722; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 9, 9, 1); {__pyx_filename = __pyx_f[5]; __pyx_lineno = 742; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
}
case 2:
if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__schema)) != 0)) kw_args--;
else {
- __Pyx_RaiseArgtupleInvalid("__init__", 1, 9, 9, 2); {__pyx_filename = __pyx_f[5]; __pyx_lineno = 722; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 9, 9, 2); {__pyx_filename = __pyx_f[5]; __pyx_lineno = 742; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
}
case 3:
if (likely((values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__remove_comments)) != 0)) kw_args--;
else {
- __Pyx_RaiseArgtupleInvalid("__init__", 1, 9, 9, 3); {__pyx_filename = __pyx_f[5]; __pyx_lineno = 722; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 9, 9, 3); {__pyx_filename = __pyx_f[5]; __pyx_lineno = 742; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
}
case 4:
if (likely((values[4] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__remove_pis)) != 0)) kw_args--;
else {
- __Pyx_RaiseArgtupleInvalid("__init__", 1, 9, 9, 4); {__pyx_filename = __pyx_f[5]; __pyx_lineno = 722; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 9, 9, 4); {__pyx_filename = __pyx_f[5]; __pyx_lineno = 742; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
}
case 5:
if (likely((values[5] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__strip_cdata)) != 0)) kw_args--;
else {
- __Pyx_RaiseArgtupleInvalid("__init__", 1, 9, 9, 5); {__pyx_filename = __pyx_f[5]; __pyx_lineno = 722; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 9, 9, 5); {__pyx_filename = __pyx_f[5]; __pyx_lineno = 742; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
}
case 6:
if (likely((values[6] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__target)) != 0)) kw_args--;
else {
- __Pyx_RaiseArgtupleInvalid("__init__", 1, 9, 9, 6); {__pyx_filename = __pyx_f[5]; __pyx_lineno = 722; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 9, 9, 6); {__pyx_filename = __pyx_f[5]; __pyx_lineno = 742; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
}
case 7:
if (likely((values[7] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__filename)) != 0)) kw_args--;
else {
- __Pyx_RaiseArgtupleInvalid("__init__", 1, 9, 9, 7); {__pyx_filename = __pyx_f[5]; __pyx_lineno = 722; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 9, 9, 7); {__pyx_filename = __pyx_f[5]; __pyx_lineno = 742; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
}
case 8:
if (likely((values[8] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__encoding)) != 0)) kw_args--;
else {
- __Pyx_RaiseArgtupleInvalid("__init__", 1, 9, 9, 8); {__pyx_filename = __pyx_f[5]; __pyx_lineno = 722; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 9, 9, 8); {__pyx_filename = __pyx_f[5]; __pyx_lineno = 742; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
}
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 722; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 742; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 9) {
goto __pyx_L5_argtuple_error;
values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
}
- __pyx_v_parse_options = __Pyx_PyInt_AsInt(values[0]); if (unlikely((__pyx_v_parse_options == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 722; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
- __pyx_v_for_html = __Pyx_PyObject_IsTrue(values[1]); if (unlikely((__pyx_v_for_html == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 722; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ __pyx_v_parse_options = __Pyx_PyInt_AsInt(values[0]); if (unlikely((__pyx_v_parse_options == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 742; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ __pyx_v_for_html = __Pyx_PyObject_IsTrue(values[1]); if (unlikely((__pyx_v_for_html == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 742; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
__pyx_v_schema = ((struct __pyx_obj_4lxml_5etree_XMLSchema *)values[2]);
__pyx_v_remove_comments = values[3];
__pyx_v_remove_pis = values[4];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("__init__", 1, 9, 9, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[5]; __pyx_lineno = 722; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 9, 9, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[5]; __pyx_lineno = 742; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
__pyx_L3_error:;
__Pyx_AddTraceback("lxml.etree._BaseParser.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return -1;
__pyx_L4_argument_unpacking_done:;
- if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_schema), __pyx_ptype_4lxml_5etree_XMLSchema, 1, "schema", 0))) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 722; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_schema), __pyx_ptype_4lxml_5etree_XMLSchema, 1, "schema", 0))) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 742; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_r = __pyx_pf_4lxml_5etree_11_BaseParser___init__(((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_v_self), __pyx_v_parse_options, __pyx_v_for_html, __pyx_v_schema, __pyx_v_remove_comments, __pyx_v_remove_pis, __pyx_v_strip_cdata, __pyx_v_target, __pyx_v_filename, __pyx_v_encoding);
goto __pyx_L0;
__pyx_L1_error:;
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":722
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":742
* cdef object _default_encoding
*
* def __init__(self, int parse_options, bint for_html, XMLSchema schema, # <<<<<<<<<<<<<<
__Pyx_RefNannySetupContext("__init__", 0);
__Pyx_INCREF(__pyx_v_encoding);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":727
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":747
* cdef tree.xmlCharEncodingHandler* enchandler
* cdef int c_encoding
* if not isinstance(self, (XMLParser, HTMLParser, iterparse)): # <<<<<<<<<<<<<<
__pyx_t_4 = (!__pyx_t_3);
if (__pyx_t_4) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":728
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":748
* cdef int c_encoding
* if not isinstance(self, (XMLParser, HTMLParser, iterparse)):
* raise TypeError, u"This class cannot be instantiated" # <<<<<<<<<<<<<<
*
* self._parse_options = parse_options
*/
- __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_167), 0, 0);
- {__pyx_filename = __pyx_f[5]; __pyx_lineno = 728; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_176), 0, 0);
+ {__pyx_filename = __pyx_f[5]; __pyx_lineno = 748; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L3;
}
__pyx_L3:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":730
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":750
* raise TypeError, u"This class cannot be instantiated"
*
* self._parse_options = parse_options # <<<<<<<<<<<<<<
*/
__pyx_v_self->_parse_options = __pyx_v_parse_options;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":731
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":751
*
* self._parse_options = parse_options
* self._filename = filename # <<<<<<<<<<<<<<
__Pyx_DECREF(__pyx_v_self->_filename);
__pyx_v_self->_filename = __pyx_v_filename;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":732
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":752
* self._parse_options = parse_options
* self._filename = filename
* self.target = target # <<<<<<<<<<<<<<
__Pyx_DECREF(__pyx_v_self->target);
__pyx_v_self->target = __pyx_v_target;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":733
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":753
* self._filename = filename
* self.target = target
* self._for_html = for_html # <<<<<<<<<<<<<<
*/
__pyx_v_self->_for_html = __pyx_v_for_html;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":734
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":754
* self.target = target
* self._for_html = for_html
* self._remove_comments = remove_comments # <<<<<<<<<<<<<<
* self._remove_pis = remove_pis
* self._strip_cdata = strip_cdata
*/
- __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_remove_comments); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 734; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_remove_comments); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 754; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_v_self->_remove_comments = __pyx_t_4;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":735
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":755
* self._for_html = for_html
* self._remove_comments = remove_comments
* self._remove_pis = remove_pis # <<<<<<<<<<<<<<
* self._strip_cdata = strip_cdata
* self._schema = schema
*/
- __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_remove_pis); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 735; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_remove_pis); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 755; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_v_self->_remove_pis = __pyx_t_4;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":736
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":756
* self._remove_comments = remove_comments
* self._remove_pis = remove_pis
* self._strip_cdata = strip_cdata # <<<<<<<<<<<<<<
* self._schema = schema
*
*/
- __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_strip_cdata); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 736; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_strip_cdata); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 756; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_v_self->_strip_cdata = __pyx_t_4;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":737
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":757
* self._remove_pis = remove_pis
* self._strip_cdata = strip_cdata
* self._schema = schema # <<<<<<<<<<<<<<
__Pyx_DECREF(((PyObject *)__pyx_v_self->_schema));
__pyx_v_self->_schema = __pyx_v_schema;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":739
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":759
* self._schema = schema
*
* self._resolvers = _ResolverRegistry() # <<<<<<<<<<<<<<
*
* if encoding is None:
*/
- __pyx_t_5 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__ResolverRegistry)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 739; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__ResolverRegistry)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 759; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
__Pyx_GIVEREF(__pyx_t_5);
__Pyx_GOTREF(__pyx_v_self->_resolvers);
__pyx_v_self->_resolvers = ((struct __pyx_obj_4lxml_5etree__ResolverRegistry *)__pyx_t_5);
__pyx_t_5 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":741
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":761
* self._resolvers = _ResolverRegistry()
*
* if encoding is None: # <<<<<<<<<<<<<<
__pyx_t_4 = (__pyx_v_encoding == Py_None);
if (__pyx_t_4) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":742
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":762
*
* if encoding is None:
* self._default_encoding = None # <<<<<<<<<<<<<<
}
/*else*/ {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":744
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":764
* self._default_encoding = None
* else:
* encoding = _utf8(encoding) # <<<<<<<<<<<<<<
* enchandler = tree.xmlFindCharEncodingHandler(_cstr(encoding))
* if enchandler is NULL:
*/
- __pyx_t_5 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_encoding)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 744; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_encoding)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 764; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_v_encoding);
__pyx_v_encoding = __pyx_t_5;
__pyx_t_5 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":745
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":765
* else:
* encoding = _utf8(encoding)
* enchandler = tree.xmlFindCharEncodingHandler(_cstr(encoding)) # <<<<<<<<<<<<<<
*/
__pyx_v_enchandler = xmlFindCharEncodingHandler(PyBytes_AS_STRING(__pyx_v_encoding));
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":746
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":766
* encoding = _utf8(encoding)
* enchandler = tree.xmlFindCharEncodingHandler(_cstr(encoding))
* if enchandler is NULL: # <<<<<<<<<<<<<<
__pyx_t_4 = (__pyx_v_enchandler == NULL);
if (__pyx_t_4) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":747
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":767
* enchandler = tree.xmlFindCharEncodingHandler(_cstr(encoding))
* if enchandler is NULL:
* raise LookupError, u"unknown encoding: '%s'" % encoding # <<<<<<<<<<<<<<
* tree.xmlCharEncCloseFunc(enchandler)
* self._default_encoding = encoding
*/
- __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_168), __pyx_v_encoding); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 747; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_177), __pyx_v_encoding); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 767; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_5));
__Pyx_Raise(__pyx_builtin_LookupError, ((PyObject *)__pyx_t_5), 0, 0);
__Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
- {__pyx_filename = __pyx_f[5]; __pyx_lineno = 747; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ {__pyx_filename = __pyx_f[5]; __pyx_lineno = 767; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L5;
}
__pyx_L5:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":748
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":768
* if enchandler is NULL:
* raise LookupError, u"unknown encoding: '%s'" % encoding
* tree.xmlCharEncCloseFunc(enchandler) # <<<<<<<<<<<<<<
*/
xmlCharEncCloseFunc(__pyx_v_enchandler);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":749
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":769
* raise LookupError, u"unknown encoding: '%s'" % encoding
* tree.xmlCharEncCloseFunc(enchandler)
* self._default_encoding = encoding # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":751
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":771
* self._default_encoding = encoding
*
* cdef _ParserContext _getParserContext(self): # <<<<<<<<<<<<<<
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("_getParserContext", 0);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":753
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":773
* cdef _ParserContext _getParserContext(self):
* cdef xmlparser.xmlParserCtxt* pctxt
* if self._parser_context is None: # <<<<<<<<<<<<<<
__pyx_t_1 = (((PyObject *)__pyx_v_self->_parser_context) == Py_None);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":754
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":774
* cdef xmlparser.xmlParserCtxt* pctxt
* if self._parser_context is None:
* self._parser_context = self._createContext(self.target) # <<<<<<<<<<<<<<
*/
__pyx_t_2 = __pyx_v_self->target;
__Pyx_INCREF(__pyx_t_2);
- __pyx_t_3 = ((PyObject *)((struct __pyx_vtabstruct_4lxml_5etree__BaseParser *)__pyx_v_self->__pyx_vtab)->_createContext(__pyx_v_self, __pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 754; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = ((PyObject *)((struct __pyx_vtabstruct_4lxml_5etree__BaseParser *)__pyx_v_self->__pyx_vtab)->_createContext(__pyx_v_self, __pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 774; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_GIVEREF(__pyx_t_3);
__pyx_v_self->_parser_context = ((struct __pyx_obj_4lxml_5etree__ParserContext *)__pyx_t_3);
__pyx_t_3 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":755
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":775
* if self._parser_context is None:
* self._parser_context = self._createContext(self.target)
* if self._schema is not None: # <<<<<<<<<<<<<<
__pyx_t_1 = (((PyObject *)__pyx_v_self->_schema) != Py_None);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":758
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":778
* self._parser_context._validator = \
* self._schema._newSaxValidator(
* self._parse_options & xmlparser.XML_PARSE_DTDATTR) # <<<<<<<<<<<<<<
* pctxt = self._newParserCtxt()
* if pctxt is NULL:
*/
- __pyx_t_3 = ((PyObject *)((struct __pyx_vtabstruct_4lxml_5etree_XMLSchema *)__pyx_v_self->_schema->__pyx_base.__pyx_vtab)->_newSaxValidator(__pyx_v_self->_schema, (__pyx_v_self->_parse_options & XML_PARSE_DTDATTR))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 757; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = ((PyObject *)((struct __pyx_vtabstruct_4lxml_5etree_XMLSchema *)__pyx_v_self->_schema->__pyx_base.__pyx_vtab)->_newSaxValidator(__pyx_v_self->_schema, (__pyx_v_self->_parse_options & XML_PARSE_DTDATTR))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 777; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":756
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":776
* self._parser_context = self._createContext(self.target)
* if self._schema is not None:
* self._parser_context._validator = \ # <<<<<<<<<<<<<<
}
__pyx_L4:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":759
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":779
* self._schema._newSaxValidator(
* self._parse_options & xmlparser.XML_PARSE_DTDATTR)
* pctxt = self._newParserCtxt() # <<<<<<<<<<<<<<
*/
__pyx_v_pctxt = ((struct __pyx_vtabstruct_4lxml_5etree__BaseParser *)__pyx_v_self->__pyx_vtab)->_newParserCtxt(__pyx_v_self);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":760
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":780
* self._parse_options & xmlparser.XML_PARSE_DTDATTR)
* pctxt = self._newParserCtxt()
* if pctxt is NULL: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_v_pctxt == NULL);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":761
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":781
* pctxt = self._newParserCtxt()
* if pctxt is NULL:
* raise MemoryError() # <<<<<<<<<<<<<<
* _initParserContext(self._parser_context, self._resolvers, pctxt)
* if self._remove_comments:
*/
- PyErr_NoMemory(); {__pyx_filename = __pyx_f[5]; __pyx_lineno = 761; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyErr_NoMemory(); {__pyx_filename = __pyx_f[5]; __pyx_lineno = 781; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L5;
}
__pyx_L5:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":762
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":782
* if pctxt is NULL:
* raise MemoryError()
* _initParserContext(self._parser_context, self._resolvers, pctxt) # <<<<<<<<<<<<<<
__Pyx_INCREF(__pyx_t_3);
__pyx_t_2 = ((PyObject *)__pyx_v_self->_resolvers);
__Pyx_INCREF(__pyx_t_2);
- __pyx_t_4 = __pyx_f_4lxml_5etree__initParserContext(((struct __pyx_obj_4lxml_5etree__ParserContext *)__pyx_t_3), ((struct __pyx_obj_4lxml_5etree__ResolverRegistry *)__pyx_t_2), __pyx_v_pctxt); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 762; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __pyx_f_4lxml_5etree__initParserContext(((struct __pyx_obj_4lxml_5etree__ParserContext *)__pyx_t_3), ((struct __pyx_obj_4lxml_5etree__ResolverRegistry *)__pyx_t_2), __pyx_v_pctxt); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 782; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":763
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":783
* raise MemoryError()
* _initParserContext(self._parser_context, self._resolvers, pctxt)
* if self._remove_comments: # <<<<<<<<<<<<<<
*/
if (__pyx_v_self->_remove_comments) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":764
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":784
* _initParserContext(self._parser_context, self._resolvers, pctxt)
* if self._remove_comments:
* pctxt.sax.comment = NULL # <<<<<<<<<<<<<<
}
__pyx_L6:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":765
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":785
* if self._remove_comments:
* pctxt.sax.comment = NULL
* if self._remove_pis: # <<<<<<<<<<<<<<
*/
if (__pyx_v_self->_remove_pis) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":766
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":786
* pctxt.sax.comment = NULL
* if self._remove_pis:
* pctxt.sax.processingInstruction = NULL # <<<<<<<<<<<<<<
}
__pyx_L7:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":767
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":787
* if self._remove_pis:
* pctxt.sax.processingInstruction = NULL
* if self._strip_cdata: # <<<<<<<<<<<<<<
*/
if (__pyx_v_self->_strip_cdata) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":769
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":789
* if self._strip_cdata:
* # hard switch-off for CDATA nodes => makes them plain text
* pctxt.sax.cdataBlock = NULL # <<<<<<<<<<<<<<
}
__pyx_L3:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":770
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":790
* # hard switch-off for CDATA nodes => makes them plain text
* pctxt.sax.cdataBlock = NULL
* return self._parser_context # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":772
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":792
* return self._parser_context
*
* cdef _ParserContext _getPushParserContext(self): # <<<<<<<<<<<<<<
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("_getPushParserContext", 0);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":774
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":794
* cdef _ParserContext _getPushParserContext(self):
* cdef xmlparser.xmlParserCtxt* pctxt
* if self._push_parser_context is None: # <<<<<<<<<<<<<<
__pyx_t_1 = (((PyObject *)__pyx_v_self->_push_parser_context) == Py_None);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":775
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":795
* cdef xmlparser.xmlParserCtxt* pctxt
* if self._push_parser_context is None:
* self._push_parser_context = self._createContext(self.target) # <<<<<<<<<<<<<<
*/
__pyx_t_2 = __pyx_v_self->target;
__Pyx_INCREF(__pyx_t_2);
- __pyx_t_3 = ((PyObject *)((struct __pyx_vtabstruct_4lxml_5etree__BaseParser *)__pyx_v_self->__pyx_vtab)->_createContext(__pyx_v_self, __pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 775; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = ((PyObject *)((struct __pyx_vtabstruct_4lxml_5etree__BaseParser *)__pyx_v_self->__pyx_vtab)->_createContext(__pyx_v_self, __pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 795; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_GIVEREF(__pyx_t_3);
__pyx_v_self->_push_parser_context = ((struct __pyx_obj_4lxml_5etree__ParserContext *)__pyx_t_3);
__pyx_t_3 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":776
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":796
* if self._push_parser_context is None:
* self._push_parser_context = self._createContext(self.target)
* if self._schema is not None: # <<<<<<<<<<<<<<
__pyx_t_1 = (((PyObject *)__pyx_v_self->_schema) != Py_None);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":779
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":799
* self._push_parser_context._validator = \
* self._schema._newSaxValidator(
* self._parse_options & xmlparser.XML_PARSE_DTDATTR) # <<<<<<<<<<<<<<
* pctxt = self._newPushParserCtxt()
* if pctxt is NULL:
*/
- __pyx_t_3 = ((PyObject *)((struct __pyx_vtabstruct_4lxml_5etree_XMLSchema *)__pyx_v_self->_schema->__pyx_base.__pyx_vtab)->_newSaxValidator(__pyx_v_self->_schema, (__pyx_v_self->_parse_options & XML_PARSE_DTDATTR))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 778; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = ((PyObject *)((struct __pyx_vtabstruct_4lxml_5etree_XMLSchema *)__pyx_v_self->_schema->__pyx_base.__pyx_vtab)->_newSaxValidator(__pyx_v_self->_schema, (__pyx_v_self->_parse_options & XML_PARSE_DTDATTR))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 798; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":777
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":797
* self._push_parser_context = self._createContext(self.target)
* if self._schema is not None:
* self._push_parser_context._validator = \ # <<<<<<<<<<<<<<
}
__pyx_L4:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":780
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":800
* self._schema._newSaxValidator(
* self._parse_options & xmlparser.XML_PARSE_DTDATTR)
* pctxt = self._newPushParserCtxt() # <<<<<<<<<<<<<<
*/
__pyx_v_pctxt = ((struct __pyx_vtabstruct_4lxml_5etree__BaseParser *)__pyx_v_self->__pyx_vtab)->_newPushParserCtxt(__pyx_v_self);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":781
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":801
* self._parse_options & xmlparser.XML_PARSE_DTDATTR)
* pctxt = self._newPushParserCtxt()
* if pctxt is NULL: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_v_pctxt == NULL);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":782
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":802
* pctxt = self._newPushParserCtxt()
* if pctxt is NULL:
* raise MemoryError() # <<<<<<<<<<<<<<
* _initParserContext(
* self._push_parser_context, self._resolvers, pctxt)
*/
- PyErr_NoMemory(); {__pyx_filename = __pyx_f[5]; __pyx_lineno = 782; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyErr_NoMemory(); {__pyx_filename = __pyx_f[5]; __pyx_lineno = 802; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L5;
}
__pyx_L5:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":784
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":804
* raise MemoryError()
* _initParserContext(
* self._push_parser_context, self._resolvers, pctxt) # <<<<<<<<<<<<<<
__Pyx_INCREF(__pyx_t_3);
__pyx_t_2 = ((PyObject *)__pyx_v_self->_resolvers);
__Pyx_INCREF(__pyx_t_2);
- __pyx_t_4 = __pyx_f_4lxml_5etree__initParserContext(((struct __pyx_obj_4lxml_5etree__ParserContext *)__pyx_t_3), ((struct __pyx_obj_4lxml_5etree__ResolverRegistry *)__pyx_t_2), __pyx_v_pctxt); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 783; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __pyx_f_4lxml_5etree__initParserContext(((struct __pyx_obj_4lxml_5etree__ParserContext *)__pyx_t_3), ((struct __pyx_obj_4lxml_5etree__ResolverRegistry *)__pyx_t_2), __pyx_v_pctxt); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 803; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":785
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":805
* _initParserContext(
* self._push_parser_context, self._resolvers, pctxt)
* if self._remove_comments: # <<<<<<<<<<<<<<
*/
if (__pyx_v_self->_remove_comments) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":786
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":806
* self._push_parser_context, self._resolvers, pctxt)
* if self._remove_comments:
* pctxt.sax.comment = NULL # <<<<<<<<<<<<<<
}
__pyx_L6:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":787
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":807
* if self._remove_comments:
* pctxt.sax.comment = NULL
* if self._remove_pis: # <<<<<<<<<<<<<<
*/
if (__pyx_v_self->_remove_pis) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":788
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":808
* pctxt.sax.comment = NULL
* if self._remove_pis:
* pctxt.sax.processingInstruction = NULL # <<<<<<<<<<<<<<
}
__pyx_L7:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":789
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":809
* if self._remove_pis:
* pctxt.sax.processingInstruction = NULL
* if self._strip_cdata: # <<<<<<<<<<<<<<
*/
if (__pyx_v_self->_strip_cdata) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":791
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":811
* if self._strip_cdata:
* # hard switch-off for CDATA nodes => makes them plain text
* pctxt.sax.cdataBlock = NULL # <<<<<<<<<<<<<<
}
__pyx_L3:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":792
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":812
* # hard switch-off for CDATA nodes => makes them plain text
* pctxt.sax.cdataBlock = NULL
* return self._push_parser_context # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":794
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":814
* return self._push_parser_context
*
* cdef _ParserContext _createContext(self, target): # <<<<<<<<<<<<<<
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("_createContext", 0);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":796
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":816
* cdef _ParserContext _createContext(self, target):
* cdef _TargetParserContext context
* if target is None: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_v_target == Py_None);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":797
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":817
* cdef _TargetParserContext context
* if target is None:
* return _ParserContext() # <<<<<<<<<<<<<<
* context._setTarget(target)
*/
__Pyx_XDECREF(((PyObject *)__pyx_r));
- __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__ParserContext)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 797; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__ParserContext)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 817; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_r = ((struct __pyx_obj_4lxml_5etree__ParserContext *)__pyx_t_2);
__pyx_t_2 = 0;
}
__pyx_L3:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":798
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":818
* if target is None:
* return _ParserContext()
* context = _TargetParserContext() # <<<<<<<<<<<<<<
* context._setTarget(target)
* return context
*/
- __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__TargetParserContext)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 798; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__TargetParserContext)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 818; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_v_context = ((struct __pyx_obj_4lxml_5etree__TargetParserContext *)__pyx_t_2);
__pyx_t_2 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":799
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":819
* return _ParserContext()
* context = _TargetParserContext()
* context._setTarget(target) # <<<<<<<<<<<<<<
* return context
*
*/
- __pyx_t_3 = __pyx_f_4lxml_5etree_20_TargetParserContext__setTarget(__pyx_v_context, __pyx_v_target); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 799; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __pyx_f_4lxml_5etree_20_TargetParserContext__setTarget(__pyx_v_context, __pyx_v_target); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 819; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":800
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":820
* context = _TargetParserContext()
* context._setTarget(target)
* return context # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":802
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":822
* return context
*
* cdef int _registerHtmlErrorHandler(self, xmlparser.xmlParserCtxt* c_ctxt) except -1: # <<<<<<<<<<<<<<
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("_registerHtmlErrorHandler", 0);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":803
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":823
*
* cdef int _registerHtmlErrorHandler(self, xmlparser.xmlParserCtxt* c_ctxt) except -1:
* cdef xmlparser.xmlSAXHandler* sax = c_ctxt.sax # <<<<<<<<<<<<<<
__pyx_t_1 = __pyx_v_c_ctxt->sax;
__pyx_v_sax = __pyx_t_1;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":804
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":824
* cdef int _registerHtmlErrorHandler(self, xmlparser.xmlParserCtxt* c_ctxt) except -1:
* cdef xmlparser.xmlSAXHandler* sax = c_ctxt.sax
* if sax is not NULL and sax.initialized and sax.initialized != xmlparser.XML_SAX2_MAGIC: # <<<<<<<<<<<<<<
}
if (__pyx_t_3) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":806
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":826
* if sax is not NULL and sax.initialized and sax.initialized != xmlparser.XML_SAX2_MAGIC:
* # need to extend SAX1 context to SAX2 to get proper error reports
* if <xmlparser.xmlSAXHandlerV1*>sax is &htmlparser.htmlDefaultSAXHandler: # <<<<<<<<<<<<<<
__pyx_t_3 = (((xmlSAXHandlerV1 *)__pyx_v_sax) == (&htmlDefaultSAXHandler));
if (__pyx_t_3) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":807
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":827
* # need to extend SAX1 context to SAX2 to get proper error reports
* if <xmlparser.xmlSAXHandlerV1*>sax is &htmlparser.htmlDefaultSAXHandler:
* sax = <xmlparser.xmlSAXHandler*> stdlib.malloc(sizeof(xmlparser.xmlSAXHandler)) # <<<<<<<<<<<<<<
*/
__pyx_v_sax = ((xmlSAXHandler *)malloc((sizeof(xmlSAXHandler))));
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":808
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":828
* if <xmlparser.xmlSAXHandlerV1*>sax is &htmlparser.htmlDefaultSAXHandler:
* sax = <xmlparser.xmlSAXHandler*> stdlib.malloc(sizeof(xmlparser.xmlSAXHandler))
* if sax is NULL: # <<<<<<<<<<<<<<
__pyx_t_3 = (__pyx_v_sax == NULL);
if (__pyx_t_3) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":809
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":829
* sax = <xmlparser.xmlSAXHandler*> stdlib.malloc(sizeof(xmlparser.xmlSAXHandler))
* if sax is NULL:
* raise MemoryError() # <<<<<<<<<<<<<<
* cstring_h.memcpy(sax, &htmlparser.htmlDefaultSAXHandler,
* sizeof(htmlparser.htmlDefaultSAXHandler))
*/
- PyErr_NoMemory(); {__pyx_filename = __pyx_f[5]; __pyx_lineno = 809; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyErr_NoMemory(); {__pyx_filename = __pyx_f[5]; __pyx_lineno = 829; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L5;
}
__pyx_L5:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":811
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":831
* raise MemoryError()
* cstring_h.memcpy(sax, &htmlparser.htmlDefaultSAXHandler,
* sizeof(htmlparser.htmlDefaultSAXHandler)) # <<<<<<<<<<<<<<
*/
memcpy(__pyx_v_sax, (&htmlDefaultSAXHandler), (sizeof(htmlDefaultSAXHandler)));
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":812
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":832
* cstring_h.memcpy(sax, &htmlparser.htmlDefaultSAXHandler,
* sizeof(htmlparser.htmlDefaultSAXHandler))
* c_ctxt.sax = sax # <<<<<<<<<<<<<<
}
__pyx_L4:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":813
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":833
* sizeof(htmlparser.htmlDefaultSAXHandler))
* c_ctxt.sax = sax
* sax.initialized = xmlparser.XML_SAX2_MAGIC # <<<<<<<<<<<<<<
*/
__pyx_v_sax->initialized = XML_SAX2_MAGIC;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":814
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":834
* c_ctxt.sax = sax
* sax.initialized = xmlparser.XML_SAX2_MAGIC
* sax.serror = _receiveParserError # <<<<<<<<<<<<<<
*/
__pyx_v_sax->serror = __pyx_f_4lxml_5etree__receiveParserError;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":815
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":835
* sax.initialized = xmlparser.XML_SAX2_MAGIC
* sax.serror = _receiveParserError
* sax.startElementNs = NULL # <<<<<<<<<<<<<<
*/
__pyx_v_sax->startElementNs = NULL;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":816
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":836
* sax.serror = _receiveParserError
* sax.startElementNs = NULL
* sax.endElementNs = NULL # <<<<<<<<<<<<<<
*/
__pyx_v_sax->endElementNs = NULL;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":817
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":837
* sax.startElementNs = NULL
* sax.endElementNs = NULL
* sax._private = NULL # <<<<<<<<<<<<<<
}
__pyx_L3:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":818
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":838
* sax.endElementNs = NULL
* sax._private = NULL
* return 0 # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":820
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":840
* return 0
*
* cdef xmlparser.xmlParserCtxt* _newParserCtxt(self): # <<<<<<<<<<<<<<
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("_newParserCtxt", 0);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":822
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":842
* cdef xmlparser.xmlParserCtxt* _newParserCtxt(self):
* cdef xmlparser.xmlParserCtxt* c_ctxt
* if self._for_html: # <<<<<<<<<<<<<<
*/
if (__pyx_v_self->_for_html) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":823
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":843
* cdef xmlparser.xmlParserCtxt* c_ctxt
* if self._for_html:
* c_ctxt = htmlparser.htmlCreateMemoryParserCtxt('dummy', 5) # <<<<<<<<<<<<<<
*/
__pyx_v_c_ctxt = htmlCreateMemoryParserCtxt(__pyx_k__dummy, 5);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":824
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":844
* if self._for_html:
* c_ctxt = htmlparser.htmlCreateMemoryParserCtxt('dummy', 5)
* self._registerHtmlErrorHandler(c_ctxt) # <<<<<<<<<<<<<<
* else:
* c_ctxt = xmlparser.xmlNewParserCtxt()
*/
- __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__BaseParser *)__pyx_v_self->__pyx_vtab)->_registerHtmlErrorHandler(__pyx_v_self, __pyx_v_c_ctxt); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 824; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__BaseParser *)__pyx_v_self->__pyx_vtab)->_registerHtmlErrorHandler(__pyx_v_self, __pyx_v_c_ctxt); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 844; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L3;
}
/*else*/ {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":826
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":846
* self._registerHtmlErrorHandler(c_ctxt)
* else:
* c_ctxt = xmlparser.xmlNewParserCtxt() # <<<<<<<<<<<<<<
}
__pyx_L3:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":827
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":847
* else:
* c_ctxt = xmlparser.xmlNewParserCtxt()
* return c_ctxt # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":829
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":849
* return c_ctxt
*
* cdef xmlparser.xmlParserCtxt* _newPushParserCtxt(self): # <<<<<<<<<<<<<<
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("_newPushParserCtxt", 0);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":831
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":851
* cdef xmlparser.xmlParserCtxt* _newPushParserCtxt(self):
* cdef xmlparser.xmlParserCtxt* c_ctxt
* cdef char* c_filename = _cstr(self._filename) if self._filename is not None else NULL # <<<<<<<<<<<<<<
}
__pyx_v_c_filename = __pyx_t_1;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":832
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":852
* cdef xmlparser.xmlParserCtxt* c_ctxt
* cdef char* c_filename = _cstr(self._filename) if self._filename is not None else NULL
* if self._for_html: # <<<<<<<<<<<<<<
*/
if (__pyx_v_self->_for_html) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":834
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":854
* if self._for_html:
* c_ctxt = htmlparser.htmlCreatePushParserCtxt(
* NULL, NULL, NULL, 0, c_filename, tree.XML_CHAR_ENCODING_NONE) # <<<<<<<<<<<<<<
*/
__pyx_v_c_ctxt = htmlCreatePushParserCtxt(NULL, NULL, NULL, 0, __pyx_v_c_filename, XML_CHAR_ENCODING_NONE);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":835
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":855
* c_ctxt = htmlparser.htmlCreatePushParserCtxt(
* NULL, NULL, NULL, 0, c_filename, tree.XML_CHAR_ENCODING_NONE)
* if c_ctxt is not NULL: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_v_c_ctxt != NULL);
if (__pyx_t_2) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":836
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":856
* NULL, NULL, NULL, 0, c_filename, tree.XML_CHAR_ENCODING_NONE)
* if c_ctxt is not NULL:
* self._registerHtmlErrorHandler(c_ctxt) # <<<<<<<<<<<<<<
* htmlparser.htmlCtxtUseOptions(c_ctxt, self._parse_options)
* else:
*/
- __pyx_t_4 = ((struct __pyx_vtabstruct_4lxml_5etree__BaseParser *)__pyx_v_self->__pyx_vtab)->_registerHtmlErrorHandler(__pyx_v_self, __pyx_v_c_ctxt); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 836; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = ((struct __pyx_vtabstruct_4lxml_5etree__BaseParser *)__pyx_v_self->__pyx_vtab)->_registerHtmlErrorHandler(__pyx_v_self, __pyx_v_c_ctxt); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 856; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":837
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":857
* if c_ctxt is not NULL:
* self._registerHtmlErrorHandler(c_ctxt)
* htmlparser.htmlCtxtUseOptions(c_ctxt, self._parse_options) # <<<<<<<<<<<<<<
}
/*else*/ {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":840
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":860
* else:
* c_ctxt = xmlparser.xmlCreatePushParserCtxt(
* NULL, NULL, NULL, 0, c_filename) # <<<<<<<<<<<<<<
*/
__pyx_v_c_ctxt = xmlCreatePushParserCtxt(NULL, NULL, NULL, 0, __pyx_v_c_filename);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":841
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":861
* c_ctxt = xmlparser.xmlCreatePushParserCtxt(
* NULL, NULL, NULL, 0, c_filename)
* if c_ctxt is not NULL: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_v_c_ctxt != NULL);
if (__pyx_t_2) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":842
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":862
* NULL, NULL, NULL, 0, c_filename)
* if c_ctxt is not NULL:
* xmlparser.xmlCtxtUseOptions(c_ctxt, self._parse_options) # <<<<<<<<<<<<<<
}
__pyx_L3:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":843
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":863
* if c_ctxt is not NULL:
* xmlparser.xmlCtxtUseOptions(c_ctxt, self._parse_options)
* return c_ctxt # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":848
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":868
* u"""The error log of the last parser run.
* """
* def __get__(self): # <<<<<<<<<<<<<<
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("__get__", 0);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":850
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":870
* def __get__(self):
* 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_filename = __pyx_f[5]; __pyx_lineno = 850; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __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_filename = __pyx_f[5]; __pyx_lineno = 870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_context = ((struct __pyx_obj_4lxml_5etree__ParserContext *)__pyx_t_1);
__pyx_t_1 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":851
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":871
* cdef _ParserContext context
* context = self._getParserContext()
* return context._error_log.copy() # <<<<<<<<<<<<<<
* property resolvers:
*/
__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_filename = __pyx_f[5]; __pyx_lineno = 851; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __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_filename = __pyx_f[5]; __pyx_lineno = 871; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":855
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":875
* property resolvers:
* u"The custom resolver registry of this parser."
* def __get__(self): # <<<<<<<<<<<<<<
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":856
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":876
* u"The custom resolver registry of this parser."
* def __get__(self):
* return self._resolvers # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":860
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":880
* property version:
* u"The version of the underlying XML parser."
* def __get__(self): # <<<<<<<<<<<<<<
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("__get__", 0);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":861
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":881
* u"The version of the underlying XML parser."
* def __get__(self):
* return u"libxml2 %d.%d.%d" % LIBXML_VERSION # <<<<<<<<<<<<<<
* def setElementClassLookup(self, ElementClassLookup lookup = None):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__LIBXML_VERSION); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 861; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__LIBXML_VERSION); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 881; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_169), __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 861; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_178), __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 881; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_2));
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_r = ((PyObject *)__pyx_t_2);
static char __pyx_doc_4lxml_5etree_11_BaseParser_2setElementClassLookup[] = ":deprecated: use ``parser.set_element_class_lookup(lookup)`` instead.";
static PyObject *__pyx_pw_4lxml_5etree_11_BaseParser_3setElementClassLookup(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
struct LxmlElementClassLookup *__pyx_v_lookup = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("setElementClassLookup (wrapper)", 0);
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__lookup,0};
PyObject* values[1] = {0};
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":863
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":883
* return u"libxml2 %d.%d.%d" % LIBXML_VERSION
*
* def setElementClassLookup(self, ElementClassLookup lookup = None): # <<<<<<<<<<<<<<
}
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setElementClassLookup") < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 863; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setElementClassLookup") < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 883; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("setElementClassLookup", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[5]; __pyx_lineno = 863; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ __Pyx_RaiseArgtupleInvalid("setElementClassLookup", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[5]; __pyx_lineno = 883; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
__pyx_L3_error:;
__Pyx_AddTraceback("lxml.etree._BaseParser.setElementClassLookup", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
- if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_lookup), __pyx_ptype_4lxml_5etree_ElementClassLookup, 1, "lookup", 0))) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 863; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_lookup), __pyx_ptype_4lxml_5etree_ElementClassLookup, 1, "lookup", 0))) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 883; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_r = __pyx_pf_4lxml_5etree_11_BaseParser_2setElementClassLookup(((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_v_self), __pyx_v_lookup);
goto __pyx_L0;
__pyx_L1_error:;
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("setElementClassLookup", 0);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":865
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":885
* def setElementClassLookup(self, ElementClassLookup lookup = None):
* u":deprecated: use ``parser.set_element_class_lookup(lookup)`` instead."
* self.set_element_class_lookup(lookup) # <<<<<<<<<<<<<<
*
* def set_element_class_lookup(self, ElementClassLookup lookup = None):
*/
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s_170); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 865; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_179); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 885; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 865; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 885; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__Pyx_INCREF(((PyObject *)__pyx_v_lookup));
PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_lookup));
__Pyx_GIVEREF(((PyObject *)__pyx_v_lookup));
- __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 865; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 885; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
static char __pyx_doc_4lxml_5etree_11_BaseParser_4set_element_class_lookup[] = "set_element_class_lookup(self, lookup = None)\n\n Set a lookup scheme for element classes generated from this parser.\n\n Reset it by passing None or nothing.\n ";
static PyObject *__pyx_pw_4lxml_5etree_11_BaseParser_5set_element_class_lookup(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
struct LxmlElementClassLookup *__pyx_v_lookup = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("set_element_class_lookup (wrapper)", 0);
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__lookup,0};
PyObject* values[1] = {0};
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":867
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":887
* self.set_element_class_lookup(lookup)
*
* def set_element_class_lookup(self, ElementClassLookup lookup = None): # <<<<<<<<<<<<<<
}
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "set_element_class_lookup") < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 867; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "set_element_class_lookup") < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 887; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("set_element_class_lookup", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[5]; __pyx_lineno = 867; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ __Pyx_RaiseArgtupleInvalid("set_element_class_lookup", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[5]; __pyx_lineno = 887; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
__pyx_L3_error:;
__Pyx_AddTraceback("lxml.etree._BaseParser.set_element_class_lookup", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
- if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_lookup), __pyx_ptype_4lxml_5etree_ElementClassLookup, 1, "lookup", 0))) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 867; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_lookup), __pyx_ptype_4lxml_5etree_ElementClassLookup, 1, "lookup", 0))) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 887; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_r = __pyx_pf_4lxml_5etree_11_BaseParser_4set_element_class_lookup(((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_v_self), __pyx_v_lookup);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("set_element_class_lookup", 0);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":874
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":894
* Reset it by passing None or nothing.
* """
* self._class_lookup = lookup # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":876
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":896
* self._class_lookup = lookup
*
* cdef _BaseParser _copy(self): # <<<<<<<<<<<<<<
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("_copy", 0);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":879
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":899
* u"Create a new parser with the same configuration."
* cdef _BaseParser parser
* parser = self.__class__() # <<<<<<<<<<<<<<
* parser._parse_options = self._parse_options
* parser._for_html = self._for_html
*/
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s____class__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 879; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s____class__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 899; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 879; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 899; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_4lxml_5etree__BaseParser))))) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 879; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_4lxml_5etree__BaseParser))))) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 899; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_v_parser = ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_t_2);
__pyx_t_2 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":880
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":900
* cdef _BaseParser parser
* parser = self.__class__()
* parser._parse_options = self._parse_options # <<<<<<<<<<<<<<
__pyx_t_3 = __pyx_v_self->_parse_options;
__pyx_v_parser->_parse_options = __pyx_t_3;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":881
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":901
* parser = self.__class__()
* parser._parse_options = self._parse_options
* parser._for_html = self._for_html # <<<<<<<<<<<<<<
__pyx_t_4 = __pyx_v_self->_for_html;
__pyx_v_parser->_for_html = __pyx_t_4;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":882
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":902
* parser._parse_options = self._parse_options
* parser._for_html = self._for_html
* parser._remove_comments = self._remove_comments # <<<<<<<<<<<<<<
__pyx_t_4 = __pyx_v_self->_remove_comments;
__pyx_v_parser->_remove_comments = __pyx_t_4;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":883
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":903
* parser._for_html = self._for_html
* parser._remove_comments = self._remove_comments
* parser._remove_pis = self._remove_pis # <<<<<<<<<<<<<<
__pyx_t_4 = __pyx_v_self->_remove_pis;
__pyx_v_parser->_remove_pis = __pyx_t_4;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":884
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":904
* parser._remove_comments = self._remove_comments
* parser._remove_pis = self._remove_pis
* parser._strip_cdata = self._strip_cdata # <<<<<<<<<<<<<<
__pyx_t_4 = __pyx_v_self->_strip_cdata;
__pyx_v_parser->_strip_cdata = __pyx_t_4;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":885
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":905
* parser._remove_pis = self._remove_pis
* parser._strip_cdata = self._strip_cdata
* parser._filename = self._filename # <<<<<<<<<<<<<<
__pyx_v_parser->_filename = __pyx_t_2;
__pyx_t_2 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":886
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":906
* parser._strip_cdata = self._strip_cdata
* parser._filename = self._filename
* parser._resolvers = self._resolvers # <<<<<<<<<<<<<<
__pyx_v_parser->_resolvers = ((struct __pyx_obj_4lxml_5etree__ResolverRegistry *)__pyx_t_2);
__pyx_t_2 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":887
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":907
* parser._filename = self._filename
* parser._resolvers = self._resolvers
* parser.target = self.target # <<<<<<<<<<<<<<
__pyx_v_parser->target = __pyx_t_2;
__pyx_t_2 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":888
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":908
* parser._resolvers = self._resolvers
* parser.target = self.target
* parser._class_lookup = self._class_lookup # <<<<<<<<<<<<<<
__pyx_v_parser->_class_lookup = ((struct LxmlElementClassLookup *)__pyx_t_2);
__pyx_t_2 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":889
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":909
* parser.target = self.target
* parser._class_lookup = self._class_lookup
* parser._default_encoding = self._default_encoding # <<<<<<<<<<<<<<
__pyx_v_parser->_default_encoding = __pyx_t_2;
__pyx_t_2 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":890
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":910
* parser._class_lookup = self._class_lookup
* parser._default_encoding = self._default_encoding
* parser._schema = self._schema # <<<<<<<<<<<<<<
__pyx_v_parser->_schema = ((struct __pyx_obj_4lxml_5etree_XMLSchema *)__pyx_t_2);
__pyx_t_2 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":891
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":911
* parser._default_encoding = self._default_encoding
* parser._schema = self._schema
* return parser # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":893
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":913
* return parser
*
* def copy(self): # <<<<<<<<<<<<<<
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("copy", 0);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":898
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":918
* Create a new parser with the same configuration.
* """
* return self._copy() # <<<<<<<<<<<<<<
* def makeelement(self, _tag, attrib=None, nsmap=None, **_extra):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = ((PyObject *)((struct __pyx_vtabstruct_4lxml_5etree__BaseParser *)__pyx_v_self->__pyx_vtab)->_copy(__pyx_v_self)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 898; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = ((PyObject *)((struct __pyx_vtabstruct_4lxml_5etree__BaseParser *)__pyx_v_self->__pyx_vtab)->_copy(__pyx_v_self)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 918; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
PyObject *__pyx_v_attrib = 0;
PyObject *__pyx_v_nsmap = 0;
PyObject *__pyx_v__extra = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("makeelement (wrapper)", 0);
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s___tag,&__pyx_n_s__attrib,&__pyx_n_s__nsmap,0};
PyObject* values[3] = {0,0,0};
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":900
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":920
* return self._copy()
*
* 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_filename = __pyx_f[5]; __pyx_lineno = 900; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v__extra, values, pos_args, "makeelement") < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 920; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[5]; __pyx_lineno = 900; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ __Pyx_RaiseArgtupleInvalid("makeelement", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[5]; __pyx_lineno = 920; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
__pyx_L3_error:;
__Pyx_DECREF(__pyx_v__extra); __pyx_v__extra = 0;
__Pyx_AddTraceback("lxml.etree._BaseParser.makeelement", __pyx_clineno, __pyx_lineno, __pyx_filename);
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("makeelement", 0);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":905
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":925
* Creates a new element associated with this parser.
* """
* return _makeElement(_tag, NULL, None, self, None, None, # <<<<<<<<<<<<<<
*/
__Pyx_XDECREF(__pyx_r);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":906
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":926
* """
* return _makeElement(_tag, NULL, None, self, None, None,
* attrib, nsmap, _extra) # <<<<<<<<<<<<<<
*
* # internal parser methods
*/
- __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__makeElement(__pyx_v__tag, NULL, ((struct LxmlDocument *)Py_None), __pyx_v_self, Py_None, Py_None, __pyx_v_attrib, __pyx_v_nsmap, ((PyObject *)__pyx_v__extra))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 905; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__makeElement(__pyx_v__tag, NULL, ((struct LxmlDocument *)Py_None), __pyx_v_self, Py_None, Py_None, __pyx_v_attrib, __pyx_v_nsmap, ((PyObject *)__pyx_v__extra))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 925; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":910
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":930
* # internal parser methods
*
* cdef xmlDoc* _parseUnicodeDoc(self, utext, char* c_filename) except NULL: # <<<<<<<<<<<<<<
int __pyx_v_buffer_len;
const char *__pyx_v_c_text;
PyObject *__pyx_v_text_utf = NULL;
+ int __pyx_v_orig_options;
xmlDoc *__pyx_r;
__Pyx_RefNannyDeclarations
int __pyx_t_1;
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("_parseUnicodeDoc", 0);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":919
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":939
* cdef int buffer_len
* cdef const_char* c_text
* py_buffer_len = python.PyUnicode_GET_DATA_SIZE(utext) # <<<<<<<<<<<<<<
*/
__pyx_v_py_buffer_len = PyUnicode_GET_DATA_SIZE(__pyx_v_utext);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":920
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":940
* cdef const_char* c_text
* py_buffer_len = python.PyUnicode_GET_DATA_SIZE(utext)
* if py_buffer_len > limits.INT_MAX or _UNICODE_ENCODING is NULL: # <<<<<<<<<<<<<<
}
if (__pyx_t_3) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":921
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":941
* py_buffer_len = python.PyUnicode_GET_DATA_SIZE(utext)
* if py_buffer_len > limits.INT_MAX or _UNICODE_ENCODING is NULL:
* text_utf = python.PyUnicode_AsUTF8String(utext) # <<<<<<<<<<<<<<
* py_buffer_len = python.PyBytes_GET_SIZE(text_utf)
* return self._parseDoc(_cstr(text_utf), py_buffer_len, c_filename)
*/
- __pyx_t_4 = ((PyObject *)PyUnicode_AsUTF8String(__pyx_v_utext)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 921; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = ((PyObject *)PyUnicode_AsUTF8String(__pyx_v_utext)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 941; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
__pyx_v_text_utf = ((PyObject*)__pyx_t_4);
__pyx_t_4 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":922
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":942
* if py_buffer_len > limits.INT_MAX or _UNICODE_ENCODING is NULL:
* text_utf = python.PyUnicode_AsUTF8String(utext)
* py_buffer_len = python.PyBytes_GET_SIZE(text_utf) # <<<<<<<<<<<<<<
*/
__pyx_v_py_buffer_len = PyBytes_GET_SIZE(((PyObject *)__pyx_v_text_utf));
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":923
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":943
* text_utf = python.PyUnicode_AsUTF8String(utext)
* py_buffer_len = python.PyBytes_GET_SIZE(text_utf)
* return self._parseDoc(_cstr(text_utf), py_buffer_len, c_filename) # <<<<<<<<<<<<<<
* buffer_len = py_buffer_len
*
*/
- __pyx_t_5 = ((struct __pyx_vtabstruct_4lxml_5etree__BaseParser *)__pyx_v_self->__pyx_vtab)->_parseDoc(__pyx_v_self, PyBytes_AS_STRING(((PyObject *)__pyx_v_text_utf)), __pyx_v_py_buffer_len, __pyx_v_c_filename); if (unlikely(__pyx_t_5 == NULL)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 923; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = ((struct __pyx_vtabstruct_4lxml_5etree__BaseParser *)__pyx_v_self->__pyx_vtab)->_parseDoc(__pyx_v_self, PyBytes_AS_STRING(((PyObject *)__pyx_v_text_utf)), __pyx_v_py_buffer_len, __pyx_v_c_filename); if (unlikely(__pyx_t_5 == NULL)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 943; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_r = __pyx_t_5;
goto __pyx_L0;
goto __pyx_L3;
}
__pyx_L3:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":924
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":944
* py_buffer_len = python.PyBytes_GET_SIZE(text_utf)
* return self._parseDoc(_cstr(text_utf), py_buffer_len, c_filename)
* buffer_len = py_buffer_len # <<<<<<<<<<<<<<
*/
__pyx_v_buffer_len = __pyx_v_py_buffer_len;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":926
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":946
* buffer_len = py_buffer_len
*
* context = self._getParserContext() # <<<<<<<<<<<<<<
* context.prepare()
* try:
*/
- __pyx_t_4 = ((PyObject *)((struct __pyx_vtabstruct_4lxml_5etree__BaseParser *)__pyx_v_self->__pyx_vtab)->_getParserContext(__pyx_v_self)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 926; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = ((PyObject *)((struct __pyx_vtabstruct_4lxml_5etree__BaseParser *)__pyx_v_self->__pyx_vtab)->_getParserContext(__pyx_v_self)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 946; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
__pyx_v_context = ((struct __pyx_obj_4lxml_5etree__ParserContext *)__pyx_t_4);
__pyx_t_4 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":927
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":947
*
* context = self._getParserContext()
* context.prepare() # <<<<<<<<<<<<<<
* try:
* pctxt = context._c_ctxt
*/
- __pyx_t_6 = ((struct __pyx_vtabstruct_4lxml_5etree__ParserContext *)__pyx_v_context->__pyx_base.__pyx_base.__pyx_vtab)->prepare(__pyx_v_context); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 927; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = ((struct __pyx_vtabstruct_4lxml_5etree__ParserContext *)__pyx_v_context->__pyx_base.__pyx_base.__pyx_vtab)->prepare(__pyx_v_context); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 947; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":928
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":948
* context = self._getParserContext()
* context.prepare()
* try: # <<<<<<<<<<<<<<
*/
/*try:*/ {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":929
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":949
* context.prepare()
* try:
* pctxt = context._c_ctxt # <<<<<<<<<<<<<<
__pyx_t_7 = __pyx_v_context->_c_ctxt;
__pyx_v_pctxt = __pyx_t_7;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":930
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":950
* try:
* pctxt = context._c_ctxt
* __GLOBAL_PARSER_CONTEXT.initParserDict(pctxt) # <<<<<<<<<<<<<<
*/
__pyx_f_4lxml_5etree_24_ParserDictionaryContext_initParserDict(__pyx_v_4lxml_5etree___GLOBAL_PARSER_CONTEXT, __pyx_v_pctxt);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":932
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":952
* __GLOBAL_PARSER_CONTEXT.initParserDict(pctxt)
*
* c_text = python.PyUnicode_AS_DATA(utext) # <<<<<<<<<<<<<<
+ * orig_options = pctxt.options
* with nogil:
- * if self._for_html:
*/
__pyx_v_c_text = PyUnicode_AS_DATA(__pyx_v_utext);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":933
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":953
*
* c_text = python.PyUnicode_AS_DATA(utext)
+ * orig_options = pctxt.options # <<<<<<<<<<<<<<
+ * with nogil:
+ * if self._for_html:
+ */
+ __pyx_t_6 = __pyx_v_pctxt->options;
+ __pyx_v_orig_options = __pyx_t_6;
+
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":954
+ * c_text = python.PyUnicode_AS_DATA(utext)
+ * orig_options = pctxt.options
* with nogil: # <<<<<<<<<<<<<<
* if self._for_html:
* result = htmlparser.htmlCtxtReadMemory(
*/
{
#ifdef WITH_THREAD
- PyThreadState *_save = NULL;
- #endif
+ PyThreadState *_save;
Py_UNBLOCK_THREADS
+ #endif
/*try:*/ {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":934
- * c_text = python.PyUnicode_AS_DATA(utext)
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":955
+ * orig_options = pctxt.options
* with nogil:
* if self._for_html: # <<<<<<<<<<<<<<
* result = htmlparser.htmlCtxtReadMemory(
*/
if (__pyx_v_self->_for_html) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":937
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":958
* result = htmlparser.htmlCtxtReadMemory(
* pctxt, c_text, buffer_len, c_filename, _UNICODE_ENCODING,
* self._parse_options) # <<<<<<<<<<<<<<
*/
__pyx_v_result = htmlCtxtReadMemory(__pyx_v_pctxt, __pyx_v_c_text, __pyx_v_buffer_len, __pyx_v_c_filename, __pyx_v_4lxml_5etree__UNICODE_ENCODING, __pyx_v_self->_parse_options);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":938
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":959
* pctxt, c_text, buffer_len, c_filename, _UNICODE_ENCODING,
* self._parse_options)
* if result is not NULL: # <<<<<<<<<<<<<<
__pyx_t_3 = (__pyx_v_result != NULL);
if (__pyx_t_3) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":939
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":960
* self._parse_options)
* if result is not NULL:
* if _fixHtmlDictNames(pctxt.dict, result) < 0: # <<<<<<<<<<<<<<
__pyx_t_3 = (__pyx_f_4lxml_5etree__fixHtmlDictNames(__pyx_v_pctxt->dict, __pyx_v_result) < 0);
if (__pyx_t_3) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":940
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":961
* if result is not NULL:
* if _fixHtmlDictNames(pctxt.dict, result) < 0:
* tree.xmlFreeDoc(result) # <<<<<<<<<<<<<<
*/
xmlFreeDoc(__pyx_v_result);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":941
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":962
* if _fixHtmlDictNames(pctxt.dict, result) < 0:
* tree.xmlFreeDoc(result)
* result = NULL # <<<<<<<<<<<<<<
}
/*else*/ {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":945
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":966
* result = xmlparser.xmlCtxtReadMemory(
* pctxt, c_text, buffer_len, c_filename, _UNICODE_ENCODING,
* self._parse_options) # <<<<<<<<<<<<<<
+ * pctxt.options = orig_options # work around libxml2 problem
*
- * return context._handleParseResultDoc(self, result, None)
*/
__pyx_v_result = xmlCtxtReadMemory(__pyx_v_pctxt, __pyx_v_c_text, __pyx_v_buffer_len, __pyx_v_c_filename, __pyx_v_4lxml_5etree__UNICODE_ENCODING, __pyx_v_self->_parse_options);
}
__pyx_L10:;
}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":933
- *
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":954
* c_text = python.PyUnicode_AS_DATA(utext)
+ * orig_options = pctxt.options
* with nogil: # <<<<<<<<<<<<<<
* if self._for_html:
* result = htmlparser.htmlCtxtReadMemory(
*/
/*finally:*/ {
+ #ifdef WITH_THREAD
Py_BLOCK_THREADS
+ #endif
}
}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":947
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":967
+ * pctxt, c_text, buffer_len, c_filename, _UNICODE_ENCODING,
* self._parse_options)
+ * pctxt.options = orig_options # work around libxml2 problem # <<<<<<<<<<<<<<
+ *
+ * return context._handleParseResultDoc(self, result, None)
+ */
+ __pyx_v_pctxt->options = __pyx_v_orig_options;
+
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":969
+ * pctxt.options = orig_options # work around libxml2 problem
*
* return context._handleParseResultDoc(self, result, None) # <<<<<<<<<<<<<<
* finally:
* context.cleanup()
*/
- __pyx_t_5 = ((struct __pyx_vtabstruct_4lxml_5etree__ParserContext *)__pyx_v_context->__pyx_base.__pyx_base.__pyx_vtab)->_handleParseResultDoc(__pyx_v_context, __pyx_v_self, __pyx_v_result, Py_None); if (unlikely(__pyx_t_5 == NULL)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 947; __pyx_clineno = __LINE__; goto __pyx_L5;}
+ __pyx_t_5 = ((struct __pyx_vtabstruct_4lxml_5etree__ParserContext *)__pyx_v_context->__pyx_base.__pyx_base.__pyx_vtab)->_handleParseResultDoc(__pyx_v_context, __pyx_v_self, __pyx_v_result, Py_None); if (unlikely(__pyx_t_5 == NULL)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 969; __pyx_clineno = __LINE__; goto __pyx_L5;}
__pyx_r = __pyx_t_5;
goto __pyx_L4;
}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":949
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":971
* return context._handleParseResultDoc(self, result, None)
* finally:
* context.cleanup() # <<<<<<<<<<<<<<
goto __pyx_L6;
}
__pyx_L6:;
- __pyx_t_6 = ((struct __pyx_vtabstruct_4lxml_5etree__ParserContext *)__pyx_v_context->__pyx_base.__pyx_base.__pyx_vtab)->cleanup(__pyx_v_context); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 949; __pyx_clineno = __LINE__; goto __pyx_L13_error;}
+ __pyx_t_6 = ((struct __pyx_vtabstruct_4lxml_5etree__ParserContext *)__pyx_v_context->__pyx_base.__pyx_base.__pyx_vtab)->cleanup(__pyx_v_context); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 971; __pyx_clineno = __LINE__; goto __pyx_L13_error;}
goto __pyx_L14;
__pyx_L13_error:;
if (__pyx_why == 4) {
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":951
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":973
* context.cleanup()
*
* cdef xmlDoc* _parseDoc(self, char* c_text, Py_ssize_t c_len, # <<<<<<<<<<<<<<
xmlDoc *__pyx_v_result;
xmlParserCtxt *__pyx_v_pctxt;
char *__pyx_v_c_encoding;
+ int __pyx_v_orig_options;
xmlDoc *__pyx_r;
__Pyx_RefNannyDeclarations
int __pyx_t_1;
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("_parseDoc", 0);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":959
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":981
* cdef xmlparser.xmlParserCtxt* pctxt
* cdef char* c_encoding
* if c_len > limits.INT_MAX: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_v_c_len > INT_MAX);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":960
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":982
* cdef char* c_encoding
* if c_len > limits.INT_MAX:
* raise ParserError, u"string is too long to parse it with libxml2" # <<<<<<<<<<<<<<
*
* context = self._getParserContext()
*/
- __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__ParserError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 960; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__ParserError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 982; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
- __Pyx_Raise(__pyx_t_2, ((PyObject *)__pyx_kp_u_171), 0, 0);
+ __Pyx_Raise(__pyx_t_2, ((PyObject *)__pyx_kp_u_180), 0, 0);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- {__pyx_filename = __pyx_f[5]; __pyx_lineno = 960; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ {__pyx_filename = __pyx_f[5]; __pyx_lineno = 982; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L3;
}
__pyx_L3:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":962
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":984
* raise ParserError, u"string is too long to parse it with libxml2"
*
* context = self._getParserContext() # <<<<<<<<<<<<<<
* context.prepare()
* try:
*/
- __pyx_t_2 = ((PyObject *)((struct __pyx_vtabstruct_4lxml_5etree__BaseParser *)__pyx_v_self->__pyx_vtab)->_getParserContext(__pyx_v_self)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 962; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = ((PyObject *)((struct __pyx_vtabstruct_4lxml_5etree__BaseParser *)__pyx_v_self->__pyx_vtab)->_getParserContext(__pyx_v_self)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 984; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_v_context = ((struct __pyx_obj_4lxml_5etree__ParserContext *)__pyx_t_2);
__pyx_t_2 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":963
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":985
*
* context = self._getParserContext()
* context.prepare() # <<<<<<<<<<<<<<
* try:
* pctxt = context._c_ctxt
*/
- __pyx_t_3 = ((struct __pyx_vtabstruct_4lxml_5etree__ParserContext *)__pyx_v_context->__pyx_base.__pyx_base.__pyx_vtab)->prepare(__pyx_v_context); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 963; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = ((struct __pyx_vtabstruct_4lxml_5etree__ParserContext *)__pyx_v_context->__pyx_base.__pyx_base.__pyx_vtab)->prepare(__pyx_v_context); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 985; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":964
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":986
* context = self._getParserContext()
* context.prepare()
* try: # <<<<<<<<<<<<<<
*/
/*try:*/ {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":965
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":987
* context.prepare()
* try:
* pctxt = context._c_ctxt # <<<<<<<<<<<<<<
__pyx_t_4 = __pyx_v_context->_c_ctxt;
__pyx_v_pctxt = __pyx_t_4;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":966
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":988
* try:
* pctxt = context._c_ctxt
* __GLOBAL_PARSER_CONTEXT.initParserDict(pctxt) # <<<<<<<<<<<<<<
*/
__pyx_f_4lxml_5etree_24_ParserDictionaryContext_initParserDict(__pyx_v_4lxml_5etree___GLOBAL_PARSER_CONTEXT, __pyx_v_pctxt);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":968
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":990
* __GLOBAL_PARSER_CONTEXT.initParserDict(pctxt)
*
* if self._default_encoding is None: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_v_self->_default_encoding == Py_None);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":969
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":991
*
* if self._default_encoding is None:
* c_encoding = NULL # <<<<<<<<<<<<<<
}
/*else*/ {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":971
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":993
* c_encoding = NULL
* else:
* c_encoding = _cstr(self._default_encoding) # <<<<<<<<<<<<<<
*
- * with nogil:
+ * orig_options = pctxt.options
*/
__pyx_t_2 = __pyx_v_self->_default_encoding;
__Pyx_INCREF(__pyx_t_2);
}
__pyx_L7:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":973
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":995
* c_encoding = _cstr(self._default_encoding)
*
+ * orig_options = pctxt.options # <<<<<<<<<<<<<<
+ * with nogil:
+ * if self._for_html:
+ */
+ __pyx_t_3 = __pyx_v_pctxt->options;
+ __pyx_v_orig_options = __pyx_t_3;
+
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":996
+ *
+ * orig_options = pctxt.options
* with nogil: # <<<<<<<<<<<<<<
* if self._for_html:
* result = htmlparser.htmlCtxtReadMemory(
*/
{
#ifdef WITH_THREAD
- PyThreadState *_save = NULL;
- #endif
+ PyThreadState *_save;
Py_UNBLOCK_THREADS
+ #endif
/*try:*/ {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":974
- *
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":997
+ * orig_options = pctxt.options
* with nogil:
* if self._for_html: # <<<<<<<<<<<<<<
* result = htmlparser.htmlCtxtReadMemory(
*/
if (__pyx_v_self->_for_html) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":977
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1000
* result = htmlparser.htmlCtxtReadMemory(
* pctxt, c_text, c_len, c_filename,
* c_encoding, self._parse_options) # <<<<<<<<<<<<<<
*/
__pyx_v_result = htmlCtxtReadMemory(__pyx_v_pctxt, __pyx_v_c_text, __pyx_v_c_len, __pyx_v_c_filename, __pyx_v_c_encoding, __pyx_v_self->_parse_options);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":978
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1001
* pctxt, c_text, c_len, c_filename,
* c_encoding, self._parse_options)
* if result is not NULL: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_v_result != NULL);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":979
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1002
* c_encoding, self._parse_options)
* if result is not NULL:
* if _fixHtmlDictNames(pctxt.dict, result) < 0: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_f_4lxml_5etree__fixHtmlDictNames(__pyx_v_pctxt->dict, __pyx_v_result) < 0);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":980
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1003
* if result is not NULL:
* if _fixHtmlDictNames(pctxt.dict, result) < 0:
* tree.xmlFreeDoc(result) # <<<<<<<<<<<<<<
*/
xmlFreeDoc(__pyx_v_result);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":981
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1004
* if _fixHtmlDictNames(pctxt.dict, result) < 0:
* tree.xmlFreeDoc(result)
* result = NULL # <<<<<<<<<<<<<<
}
/*else*/ {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":985
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1008
* result = xmlparser.xmlCtxtReadMemory(
* pctxt, c_text, c_len, c_filename,
* c_encoding, self._parse_options) # <<<<<<<<<<<<<<
+ * pctxt.options = orig_options # work around libxml2 problem
*
- * return context._handleParseResultDoc(self, result, None)
*/
__pyx_v_result = xmlCtxtReadMemory(__pyx_v_pctxt, __pyx_v_c_text, __pyx_v_c_len, __pyx_v_c_filename, __pyx_v_c_encoding, __pyx_v_self->_parse_options);
}
__pyx_L11:;
}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":973
- * c_encoding = _cstr(self._default_encoding)
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":996
*
+ * orig_options = pctxt.options
* with nogil: # <<<<<<<<<<<<<<
* if self._for_html:
* result = htmlparser.htmlCtxtReadMemory(
*/
/*finally:*/ {
+ #ifdef WITH_THREAD
Py_BLOCK_THREADS
+ #endif
}
}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":987
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1009
+ * pctxt, c_text, c_len, c_filename,
* c_encoding, self._parse_options)
+ * pctxt.options = orig_options # work around libxml2 problem # <<<<<<<<<<<<<<
+ *
+ * return context._handleParseResultDoc(self, result, None)
+ */
+ __pyx_v_pctxt->options = __pyx_v_orig_options;
+
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1011
+ * pctxt.options = orig_options # work around libxml2 problem
*
* return context._handleParseResultDoc(self, result, None) # <<<<<<<<<<<<<<
* finally:
* context.cleanup()
*/
- __pyx_t_5 = ((struct __pyx_vtabstruct_4lxml_5etree__ParserContext *)__pyx_v_context->__pyx_base.__pyx_base.__pyx_vtab)->_handleParseResultDoc(__pyx_v_context, __pyx_v_self, __pyx_v_result, Py_None); if (unlikely(__pyx_t_5 == NULL)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 987; __pyx_clineno = __LINE__; goto __pyx_L5;}
+ __pyx_t_5 = ((struct __pyx_vtabstruct_4lxml_5etree__ParserContext *)__pyx_v_context->__pyx_base.__pyx_base.__pyx_vtab)->_handleParseResultDoc(__pyx_v_context, __pyx_v_self, __pyx_v_result, Py_None); if (unlikely(__pyx_t_5 == NULL)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1011; __pyx_clineno = __LINE__; goto __pyx_L5;}
__pyx_r = __pyx_t_5;
goto __pyx_L4;
}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":989
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1013
* return context._handleParseResultDoc(self, result, None)
* finally:
* context.cleanup() # <<<<<<<<<<<<<<
goto __pyx_L6;
}
__pyx_L6:;
- __pyx_t_3 = ((struct __pyx_vtabstruct_4lxml_5etree__ParserContext *)__pyx_v_context->__pyx_base.__pyx_base.__pyx_vtab)->cleanup(__pyx_v_context); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 989; __pyx_clineno = __LINE__; goto __pyx_L14_error;}
+ __pyx_t_3 = ((struct __pyx_vtabstruct_4lxml_5etree__ParserContext *)__pyx_v_context->__pyx_base.__pyx_base.__pyx_vtab)->cleanup(__pyx_v_context); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1013; __pyx_clineno = __LINE__; goto __pyx_L14_error;}
goto __pyx_L15;
__pyx_L14_error:;
if (__pyx_why == 4) {
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":991
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1015
* context.cleanup()
*
* cdef xmlDoc* _parseDocFromFile(self, char* c_filename) except NULL: # <<<<<<<<<<<<<<
struct __pyx_obj_4lxml_5etree__ParserContext *__pyx_v_context = 0;
xmlDoc *__pyx_v_result;
xmlParserCtxt *__pyx_v_pctxt;
- int __pyx_v_orig_options;
char *__pyx_v_c_encoding;
+ int __pyx_v_orig_options;
xmlDoc *__pyx_r;
__Pyx_RefNannyDeclarations
PyObject *__pyx_t_1 = NULL;
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("_parseDocFromFile", 0);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":997
- * cdef int orig_options
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1020
+ * cdef xmlparser.xmlParserCtxt* pctxt
* cdef char* c_encoding
* result = NULL # <<<<<<<<<<<<<<
*
*/
__pyx_v_result = NULL;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":999
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1022
* result = NULL
*
* context = self._getParserContext() # <<<<<<<<<<<<<<
* context.prepare()
* try:
*/
- __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_filename = __pyx_f[5]; __pyx_lineno = 999; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __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_filename = __pyx_f[5]; __pyx_lineno = 1022; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_context = ((struct __pyx_obj_4lxml_5etree__ParserContext *)__pyx_t_1);
__pyx_t_1 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1000
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1023
*
* context = self._getParserContext()
* context.prepare() # <<<<<<<<<<<<<<
* try:
* pctxt = context._c_ctxt
*/
- __pyx_t_2 = ((struct __pyx_vtabstruct_4lxml_5etree__ParserContext *)__pyx_v_context->__pyx_base.__pyx_base.__pyx_vtab)->prepare(__pyx_v_context); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1000; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = ((struct __pyx_vtabstruct_4lxml_5etree__ParserContext *)__pyx_v_context->__pyx_base.__pyx_base.__pyx_vtab)->prepare(__pyx_v_context); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1023; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1001
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1024
* context = self._getParserContext()
* context.prepare()
* try: # <<<<<<<<<<<<<<
*/
/*try:*/ {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1002
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1025
* context.prepare()
* try:
* pctxt = context._c_ctxt # <<<<<<<<<<<<<<
__pyx_t_3 = __pyx_v_context->_c_ctxt;
__pyx_v_pctxt = __pyx_t_3;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1003
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1026
* try:
* pctxt = context._c_ctxt
* __GLOBAL_PARSER_CONTEXT.initParserDict(pctxt) # <<<<<<<<<<<<<<
*/
__pyx_f_4lxml_5etree_24_ParserDictionaryContext_initParserDict(__pyx_v_4lxml_5etree___GLOBAL_PARSER_CONTEXT, __pyx_v_pctxt);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1005
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1028
* __GLOBAL_PARSER_CONTEXT.initParserDict(pctxt)
*
* if self._default_encoding is None: # <<<<<<<<<<<<<<
__pyx_t_4 = (__pyx_v_self->_default_encoding == Py_None);
if (__pyx_t_4) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1006
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1029
*
* if self._default_encoding is None:
* c_encoding = NULL # <<<<<<<<<<<<<<
}
/*else*/ {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1008
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1031
* c_encoding = NULL
* else:
* c_encoding = _cstr(self._default_encoding) # <<<<<<<<<<<<<<
}
__pyx_L6:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1010
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1033
* c_encoding = _cstr(self._default_encoding)
*
* orig_options = pctxt.options # <<<<<<<<<<<<<<
__pyx_t_2 = __pyx_v_pctxt->options;
__pyx_v_orig_options = __pyx_t_2;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1011
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1034
*
* orig_options = pctxt.options
* with nogil: # <<<<<<<<<<<<<<
*/
{
#ifdef WITH_THREAD
- PyThreadState *_save = NULL;
- #endif
+ PyThreadState *_save;
Py_UNBLOCK_THREADS
+ #endif
/*try:*/ {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1012
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1035
* orig_options = pctxt.options
* with nogil:
* if self._for_html: # <<<<<<<<<<<<<<
*/
if (__pyx_v_self->_for_html) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1014
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1037
* if self._for_html:
* result = htmlparser.htmlCtxtReadFile(
* pctxt, c_filename, c_encoding, self._parse_options) # <<<<<<<<<<<<<<
*/
__pyx_v_result = htmlCtxtReadFile(__pyx_v_pctxt, __pyx_v_c_filename, __pyx_v_c_encoding, __pyx_v_self->_parse_options);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1015
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1038
* result = htmlparser.htmlCtxtReadFile(
* pctxt, c_filename, c_encoding, self._parse_options)
* if result is not NULL: # <<<<<<<<<<<<<<
__pyx_t_4 = (__pyx_v_result != NULL);
if (__pyx_t_4) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1016
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1039
* pctxt, c_filename, c_encoding, self._parse_options)
* if result is not NULL:
* if _fixHtmlDictNames(pctxt.dict, result) < 0: # <<<<<<<<<<<<<<
__pyx_t_4 = (__pyx_f_4lxml_5etree__fixHtmlDictNames(__pyx_v_pctxt->dict, __pyx_v_result) < 0);
if (__pyx_t_4) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1017
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1040
* if result is not NULL:
* if _fixHtmlDictNames(pctxt.dict, result) < 0:
* tree.xmlFreeDoc(result) # <<<<<<<<<<<<<<
*/
xmlFreeDoc(__pyx_v_result);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1018
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1041
* if _fixHtmlDictNames(pctxt.dict, result) < 0:
* tree.xmlFreeDoc(result)
* result = NULL # <<<<<<<<<<<<<<
}
/*else*/ {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1021
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1044
* else:
* result = xmlparser.xmlCtxtReadFile(
* pctxt, c_filename, c_encoding, self._parse_options) # <<<<<<<<<<<<<<
__pyx_L10:;
}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1011
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1034
*
* orig_options = pctxt.options
* with nogil: # <<<<<<<<<<<<<<
* result = htmlparser.htmlCtxtReadFile(
*/
/*finally:*/ {
+ #ifdef WITH_THREAD
Py_BLOCK_THREADS
+ #endif
}
}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1022
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1045
* result = xmlparser.xmlCtxtReadFile(
* pctxt, c_filename, c_encoding, self._parse_options)
* pctxt.options = orig_options # work around libxml2 problem # <<<<<<<<<<<<<<
*/
__pyx_v_pctxt->options = __pyx_v_orig_options;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1024
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1047
* pctxt.options = orig_options # work around libxml2 problem
*
* return context._handleParseResultDoc(self, result, c_filename) # <<<<<<<<<<<<<<
* finally:
* context.cleanup()
*/
- __pyx_t_1 = PyBytes_FromString(__pyx_v_c_filename); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1024; __pyx_clineno = __LINE__; goto __pyx_L4;}
+ __pyx_t_1 = __Pyx_PyBytes_FromString(__pyx_v_c_filename); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1047; __pyx_clineno = __LINE__; goto __pyx_L4;}
__Pyx_GOTREF(((PyObject *)__pyx_t_1));
- __pyx_t_5 = ((struct __pyx_vtabstruct_4lxml_5etree__ParserContext *)__pyx_v_context->__pyx_base.__pyx_base.__pyx_vtab)->_handleParseResultDoc(__pyx_v_context, __pyx_v_self, __pyx_v_result, ((PyObject *)__pyx_t_1)); if (unlikely(__pyx_t_5 == NULL)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1024; __pyx_clineno = __LINE__; goto __pyx_L4;}
+ __pyx_t_5 = ((struct __pyx_vtabstruct_4lxml_5etree__ParserContext *)__pyx_v_context->__pyx_base.__pyx_base.__pyx_vtab)->_handleParseResultDoc(__pyx_v_context, __pyx_v_self, __pyx_v_result, ((PyObject *)__pyx_t_1)); if (unlikely(__pyx_t_5 == NULL)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1047; __pyx_clineno = __LINE__; goto __pyx_L4;}
__Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
__pyx_r = __pyx_t_5;
goto __pyx_L3;
}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1026
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1049
* return context._handleParseResultDoc(self, result, c_filename)
* finally:
* context.cleanup() # <<<<<<<<<<<<<<
goto __pyx_L5;
}
__pyx_L5:;
- __pyx_t_2 = ((struct __pyx_vtabstruct_4lxml_5etree__ParserContext *)__pyx_v_context->__pyx_base.__pyx_base.__pyx_vtab)->cleanup(__pyx_v_context); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1026; __pyx_clineno = __LINE__; goto __pyx_L13_error;}
+ __pyx_t_2 = ((struct __pyx_vtabstruct_4lxml_5etree__ParserContext *)__pyx_v_context->__pyx_base.__pyx_base.__pyx_vtab)->cleanup(__pyx_v_context); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1049; __pyx_clineno = __LINE__; goto __pyx_L13_error;}
goto __pyx_L14;
__pyx_L13_error:;
if (__pyx_why == 4) {
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1028
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1051
* context.cleanup()
*
* cdef xmlDoc* _parseDocFromFilelike(self, filelike, filename) except NULL: # <<<<<<<<<<<<<<
__Pyx_RefNannySetupContext("_parseDocFromFilelike", 0);
__Pyx_INCREF(__pyx_v_filename);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1034
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1057
* cdef xmlparser.xmlParserCtxt* pctxt
* cdef char* c_filename
* if not filename: # <<<<<<<<<<<<<<
* filename = None
*
*/
- __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_filename); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1034; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_filename); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1057; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_t_2 = (!__pyx_t_1);
if (__pyx_t_2) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1035
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1058
* cdef char* c_filename
* if not filename:
* filename = None # <<<<<<<<<<<<<<
}
__pyx_L3:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1037
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1060
* filename = None
*
* context = self._getParserContext() # <<<<<<<<<<<<<<
* context.prepare()
* try:
*/
- __pyx_t_3 = ((PyObject *)((struct __pyx_vtabstruct_4lxml_5etree__BaseParser *)__pyx_v_self->__pyx_vtab)->_getParserContext(__pyx_v_self)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1037; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = ((PyObject *)((struct __pyx_vtabstruct_4lxml_5etree__BaseParser *)__pyx_v_self->__pyx_vtab)->_getParserContext(__pyx_v_self)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1060; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__pyx_v_context = ((struct __pyx_obj_4lxml_5etree__ParserContext *)__pyx_t_3);
__pyx_t_3 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1038
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1061
*
* context = self._getParserContext()
* context.prepare() # <<<<<<<<<<<<<<
* try:
* pctxt = context._c_ctxt
*/
- __pyx_t_4 = ((struct __pyx_vtabstruct_4lxml_5etree__ParserContext *)__pyx_v_context->__pyx_base.__pyx_base.__pyx_vtab)->prepare(__pyx_v_context); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1038; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = ((struct __pyx_vtabstruct_4lxml_5etree__ParserContext *)__pyx_v_context->__pyx_base.__pyx_base.__pyx_vtab)->prepare(__pyx_v_context); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1061; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1039
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1062
* context = self._getParserContext()
* context.prepare()
* try: # <<<<<<<<<<<<<<
*/
/*try:*/ {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1040
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1063
* context.prepare()
* try:
* pctxt = context._c_ctxt # <<<<<<<<<<<<<<
__pyx_t_5 = __pyx_v_context->_c_ctxt;
__pyx_v_pctxt = __pyx_t_5;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1041
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1064
* try:
* pctxt = context._c_ctxt
* __GLOBAL_PARSER_CONTEXT.initParserDict(pctxt) # <<<<<<<<<<<<<<
*/
__pyx_f_4lxml_5etree_24_ParserDictionaryContext_initParserDict(__pyx_v_4lxml_5etree___GLOBAL_PARSER_CONTEXT, __pyx_v_pctxt);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1043
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1066
* __GLOBAL_PARSER_CONTEXT.initParserDict(pctxt)
* file_context = _FileReaderContext(
* filelike, context, filename, self._default_encoding) # <<<<<<<<<<<<<<
* result = file_context._readDoc(pctxt, self._parse_options)
*
*/
- __pyx_t_3 = PyTuple_New(4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1042; __pyx_clineno = __LINE__; goto __pyx_L5;}
+ __pyx_t_3 = PyTuple_New(4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1065; __pyx_clineno = __LINE__; goto __pyx_L5;}
__Pyx_GOTREF(__pyx_t_3);
__Pyx_INCREF(__pyx_v_filelike);
PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_filelike);
__Pyx_INCREF(__pyx_v_self->_default_encoding);
PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_v_self->_default_encoding);
__Pyx_GIVEREF(__pyx_v_self->_default_encoding);
- __pyx_t_6 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__FileReaderContext)), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1042; __pyx_clineno = __LINE__; goto __pyx_L5;}
+ __pyx_t_6 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__FileReaderContext)), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1065; __pyx_clineno = __LINE__; goto __pyx_L5;}
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
__pyx_v_file_context = ((struct __pyx_obj_4lxml_5etree__FileReaderContext *)__pyx_t_6);
__pyx_t_6 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1044
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1067
* file_context = _FileReaderContext(
* filelike, context, filename, self._default_encoding)
* result = file_context._readDoc(pctxt, self._parse_options) # <<<<<<<<<<<<<<
*/
__pyx_v_result = __pyx_f_4lxml_5etree_18_FileReaderContext__readDoc(__pyx_v_file_context, __pyx_v_pctxt, __pyx_v_self->_parse_options);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1047
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1070
*
* return context._handleParseResultDoc(
* self, result, filename) # <<<<<<<<<<<<<<
* finally:
* context.cleanup()
*/
- __pyx_t_7 = ((struct __pyx_vtabstruct_4lxml_5etree__ParserContext *)__pyx_v_context->__pyx_base.__pyx_base.__pyx_vtab)->_handleParseResultDoc(__pyx_v_context, __pyx_v_self, __pyx_v_result, __pyx_v_filename); if (unlikely(__pyx_t_7 == NULL)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1046; __pyx_clineno = __LINE__; goto __pyx_L5;}
+ __pyx_t_7 = ((struct __pyx_vtabstruct_4lxml_5etree__ParserContext *)__pyx_v_context->__pyx_base.__pyx_base.__pyx_vtab)->_handleParseResultDoc(__pyx_v_context, __pyx_v_self, __pyx_v_result, __pyx_v_filename); if (unlikely(__pyx_t_7 == NULL)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1069; __pyx_clineno = __LINE__; goto __pyx_L5;}
__pyx_r = __pyx_t_7;
goto __pyx_L4;
}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1049
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1072
* self, result, filename)
* finally:
* context.cleanup() # <<<<<<<<<<<<<<
goto __pyx_L6;
}
__pyx_L6:;
- __pyx_t_4 = ((struct __pyx_vtabstruct_4lxml_5etree__ParserContext *)__pyx_v_context->__pyx_base.__pyx_base.__pyx_vtab)->cleanup(__pyx_v_context); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1049; __pyx_clineno = __LINE__; goto __pyx_L7_error;}
+ __pyx_t_4 = ((struct __pyx_vtabstruct_4lxml_5etree__ParserContext *)__pyx_v_context->__pyx_base.__pyx_base.__pyx_vtab)->cleanup(__pyx_v_context); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1072; __pyx_clineno = __LINE__; goto __pyx_L7_error;}
goto __pyx_L8;
__pyx_L7_error:;
if (__pyx_why == 4) {
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":719
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":739
* cdef XMLSchema _schema
* cdef object _filename
* cdef readonly object target # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1064
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1087
* different from what the ``error_log`` property returns.
* """
* def __get__(self): # <<<<<<<<<<<<<<
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("__get__", 0);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1066
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1089
* def __get__(self):
* cdef _ParserContext context
* context = self._getPushParserContext() # <<<<<<<<<<<<<<
* return context._error_log.copy()
*
*/
- __pyx_t_1 = ((PyObject *)((struct __pyx_vtabstruct_4lxml_5etree__FeedParser *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base._getPushParserContext(((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_v_self))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1066; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = ((PyObject *)((struct __pyx_vtabstruct_4lxml_5etree__FeedParser *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base._getPushParserContext(((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_v_self))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1089; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_context = ((struct __pyx_obj_4lxml_5etree__ParserContext *)__pyx_t_1);
__pyx_t_1 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1067
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1090
* cdef _ParserContext context
* context = self._getPushParserContext()
* return context._error_log.copy() # <<<<<<<<<<<<<<
* def feed(self, data):
*/
__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_filename = __pyx_f[5]; __pyx_lineno = 1067; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __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_filename = __pyx_f[5]; __pyx_lineno = 1090; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1069
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1092
* return context._error_log.copy()
*
* def feed(self, data): # <<<<<<<<<<<<<<
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("feed", 0);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1094
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1117
* cdef int buffer_len
* cdef int error
* cdef bint recover = self._parse_options & xmlparser.XML_PARSE_RECOVER # <<<<<<<<<<<<<<
*/
__pyx_v_recover = (__pyx_v_self->__pyx_base._parse_options & XML_PARSE_RECOVER);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1095
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1118
* cdef int error
* cdef bint recover = self._parse_options & xmlparser.XML_PARSE_RECOVER
* if isinstance(data, bytes): # <<<<<<<<<<<<<<
__pyx_t_1 = PyBytes_Check(__pyx_v_data);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1096
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1119
* cdef bint recover = self._parse_options & xmlparser.XML_PARSE_RECOVER
* if isinstance(data, bytes):
* if self._default_encoding is None: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_v_self->__pyx_base._default_encoding == Py_None);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1097
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1120
* if isinstance(data, bytes):
* if self._default_encoding is None:
* c_encoding = NULL # <<<<<<<<<<<<<<
}
/*else*/ {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1099
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1122
* c_encoding = NULL
* else:
* c_encoding = self._default_encoding # <<<<<<<<<<<<<<
* c_data = _cstr(data)
* py_buffer_len = python.PyBytes_GET_SIZE(data)
*/
- __pyx_t_2 = PyBytes_AsString(__pyx_v_self->__pyx_base._default_encoding); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1099; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_AsString(__pyx_v_self->__pyx_base._default_encoding); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1122; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_v_c_encoding = __pyx_t_2;
}
__pyx_L4:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1100
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1123
* else:
* c_encoding = self._default_encoding
* c_data = _cstr(data) # <<<<<<<<<<<<<<
*/
__pyx_v_c_data = PyBytes_AS_STRING(__pyx_v_data);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1101
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1124
* c_encoding = self._default_encoding
* c_data = _cstr(data)
* py_buffer_len = python.PyBytes_GET_SIZE(data) # <<<<<<<<<<<<<<
goto __pyx_L3;
}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1102
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1125
* c_data = _cstr(data)
* py_buffer_len = python.PyBytes_GET_SIZE(data)
* elif isinstance(data, unicode): # <<<<<<<<<<<<<<
__pyx_t_1 = PyUnicode_Check(__pyx_v_data);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1103
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1126
* py_buffer_len = python.PyBytes_GET_SIZE(data)
* elif isinstance(data, unicode):
* if _UNICODE_ENCODING is NULL: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_v_4lxml_5etree__UNICODE_ENCODING == NULL);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1104
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1127
* elif isinstance(data, unicode):
* if _UNICODE_ENCODING is NULL:
* raise ParserError, \ # <<<<<<<<<<<<<<
* u"Unicode parsing is not supported on this platform"
* c_encoding = _UNICODE_ENCODING
*/
- __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__ParserError); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s__ParserError); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
- __Pyx_Raise(__pyx_t_3, ((PyObject *)__pyx_kp_u_172), 0, 0);
+ __Pyx_Raise(__pyx_t_3, ((PyObject *)__pyx_kp_u_181), 0, 0);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L5;
}
__pyx_L5:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1106
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1129
* raise ParserError, \
* u"Unicode parsing is not supported on this platform"
* c_encoding = _UNICODE_ENCODING # <<<<<<<<<<<<<<
*/
__pyx_v_c_encoding = __pyx_v_4lxml_5etree__UNICODE_ENCODING;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1107
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1130
* u"Unicode parsing is not supported on this platform"
* c_encoding = _UNICODE_ENCODING
* c_data = python.PyUnicode_AS_DATA(data) # <<<<<<<<<<<<<<
*/
__pyx_v_c_data = PyUnicode_AS_DATA(__pyx_v_data);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1108
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1131
* c_encoding = _UNICODE_ENCODING
* c_data = python.PyUnicode_AS_DATA(data)
* py_buffer_len = python.PyUnicode_GET_DATA_SIZE(data) # <<<<<<<<<<<<<<
}
/*else*/ {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1110
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1133
* py_buffer_len = python.PyUnicode_GET_DATA_SIZE(data)
* else:
* raise TypeError, u"Parsing requires string data" # <<<<<<<<<<<<<<
*
* context = self._getPushParserContext()
*/
- __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_173), 0, 0);
- {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1110; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_182), 0, 0);
+ {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1133; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
__pyx_L3:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1112
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1135
* raise TypeError, u"Parsing requires string data"
*
* context = self._getPushParserContext() # <<<<<<<<<<<<<<
* pctxt = context._c_ctxt
* error = 0
*/
- __pyx_t_3 = ((PyObject *)((struct __pyx_vtabstruct_4lxml_5etree__FeedParser *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base._getPushParserContext(((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_v_self))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = ((PyObject *)((struct __pyx_vtabstruct_4lxml_5etree__FeedParser *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base._getPushParserContext(((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_v_self))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__pyx_v_context = ((struct __pyx_obj_4lxml_5etree__ParserContext *)__pyx_t_3);
__pyx_t_3 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1113
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1136
*
* context = self._getPushParserContext()
* pctxt = context._c_ctxt # <<<<<<<<<<<<<<
__pyx_t_4 = __pyx_v_context->_c_ctxt;
__pyx_v_pctxt = __pyx_t_4;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1114
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1137
* context = self._getPushParserContext()
* pctxt = context._c_ctxt
* error = 0 # <<<<<<<<<<<<<<
*/
__pyx_v_error = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1115
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1138
* pctxt = context._c_ctxt
* error = 0
* if not self._feed_parser_running: # <<<<<<<<<<<<<<
__pyx_t_1 = (!__pyx_v_self->_feed_parser_running);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1116
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1139
* error = 0
* if not self._feed_parser_running:
* context.prepare() # <<<<<<<<<<<<<<
* self._feed_parser_running = 1
* __GLOBAL_PARSER_CONTEXT.initParserDict(pctxt)
*/
- __pyx_t_5 = ((struct __pyx_vtabstruct_4lxml_5etree__ParserContext *)__pyx_v_context->__pyx_base.__pyx_base.__pyx_vtab)->prepare(__pyx_v_context); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = ((struct __pyx_vtabstruct_4lxml_5etree__ParserContext *)__pyx_v_context->__pyx_base.__pyx_base.__pyx_vtab)->prepare(__pyx_v_context); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1139; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1117
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1140
* if not self._feed_parser_running:
* context.prepare()
* self._feed_parser_running = 1 # <<<<<<<<<<<<<<
*/
__pyx_v_self->_feed_parser_running = 1;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1118
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1141
* context.prepare()
* self._feed_parser_running = 1
* __GLOBAL_PARSER_CONTEXT.initParserDict(pctxt) # <<<<<<<<<<<<<<
*/
__pyx_f_4lxml_5etree_24_ParserDictionaryContext_initParserDict(__pyx_v_4lxml_5etree___GLOBAL_PARSER_CONTEXT, __pyx_v_pctxt);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1119
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1142
* self._feed_parser_running = 1
* __GLOBAL_PARSER_CONTEXT.initParserDict(pctxt)
* if self._for_html: # <<<<<<<<<<<<<<
*/
if (__pyx_v_self->__pyx_base._for_html) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1121
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1144
* if self._for_html:
* error = _htmlCtxtResetPush(
* pctxt, NULL, 0, c_encoding, self._parse_options) # <<<<<<<<<<<<<<
* else:
* xmlparser.xmlCtxtUseOptions(pctxt, self._parse_options)
*/
- __pyx_t_5 = __pyx_f_4lxml_5etree__htmlCtxtResetPush(__pyx_v_pctxt, NULL, 0, __pyx_v_c_encoding, __pyx_v_self->__pyx_base._parse_options); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1120; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __pyx_f_4lxml_5etree__htmlCtxtResetPush(__pyx_v_pctxt, NULL, 0, __pyx_v_c_encoding, __pyx_v_self->__pyx_base._parse_options); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1143; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_v_error = __pyx_t_5;
goto __pyx_L7;
}
/*else*/ {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1123
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1146
* pctxt, NULL, 0, c_encoding, self._parse_options)
* else:
* xmlparser.xmlCtxtUseOptions(pctxt, self._parse_options) # <<<<<<<<<<<<<<
*/
xmlCtxtUseOptions(__pyx_v_pctxt, __pyx_v_self->__pyx_base._parse_options);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1125
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1148
* xmlparser.xmlCtxtUseOptions(pctxt, self._parse_options)
* error = xmlparser.xmlCtxtResetPush(
* pctxt, NULL, 0, NULL, c_encoding) # <<<<<<<<<<<<<<
}
__pyx_L6:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1129
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1152
* #print pctxt.charset, 'NONE' if c_encoding is NULL else c_encoding
*
* while py_buffer_len > 0 and (error == 0 or recover): # <<<<<<<<<<<<<<
}
if (!__pyx_t_6) break;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1130
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1153
*
* while py_buffer_len > 0 and (error == 0 or recover):
* with nogil: # <<<<<<<<<<<<<<
*/
{
#ifdef WITH_THREAD
- PyThreadState *_save = NULL;
- #endif
+ PyThreadState *_save;
Py_UNBLOCK_THREADS
+ #endif
/*try:*/ {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1131
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1154
* while py_buffer_len > 0 and (error == 0 or recover):
* with nogil:
* if py_buffer_len > limits.INT_MAX: # <<<<<<<<<<<<<<
__pyx_t_6 = (__pyx_v_py_buffer_len > INT_MAX);
if (__pyx_t_6) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1132
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1155
* with nogil:
* if py_buffer_len > limits.INT_MAX:
* buffer_len = limits.INT_MAX # <<<<<<<<<<<<<<
}
/*else*/ {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1134
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1157
* buffer_len = limits.INT_MAX
* else:
* buffer_len = <int>py_buffer_len # <<<<<<<<<<<<<<
}
__pyx_L15:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1135
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1158
* else:
* buffer_len = <int>py_buffer_len
* if self._for_html: # <<<<<<<<<<<<<<
*/
if (__pyx_v_self->__pyx_base._for_html) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1136
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1159
* buffer_len = <int>py_buffer_len
* if self._for_html:
* error = htmlparser.htmlParseChunk(pctxt, c_data, buffer_len, 0) # <<<<<<<<<<<<<<
}
/*else*/ {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1138
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1161
* error = htmlparser.htmlParseChunk(pctxt, c_data, buffer_len, 0)
* else:
* error = xmlparser.xmlParseChunk(pctxt, c_data, buffer_len, 0) # <<<<<<<<<<<<<<
}
__pyx_L16:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1139
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1162
* else:
* error = xmlparser.xmlParseChunk(pctxt, c_data, buffer_len, 0)
* py_buffer_len -= buffer_len # <<<<<<<<<<<<<<
*/
__pyx_v_py_buffer_len = (__pyx_v_py_buffer_len - __pyx_v_buffer_len);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1140
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1163
* error = xmlparser.xmlParseChunk(pctxt, c_data, buffer_len, 0)
* py_buffer_len -= buffer_len
* c_data += buffer_len # <<<<<<<<<<<<<<
__pyx_v_c_data = (__pyx_v_c_data + __pyx_v_buffer_len);
}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1130
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1153
*
* while py_buffer_len > 0 and (error == 0 or recover):
* with nogil: # <<<<<<<<<<<<<<
* buffer_len = limits.INT_MAX
*/
/*finally:*/ {
+ #ifdef WITH_THREAD
Py_BLOCK_THREADS
+ #endif
}
}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1142
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1165
* c_data += buffer_len
*
* if error and not pctxt.replaceEntities and not pctxt.validate: # <<<<<<<<<<<<<<
}
if (__pyx_t_6) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1144
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1167
* if error and not pctxt.replaceEntities and not pctxt.validate:
* # in this mode, we ignore errors about undefined entities
* for entry in context._error_log.filter_from_errors(): # <<<<<<<<<<<<<<
* if entry.type != ErrorTypes.WAR_UNDECLARED_ENTITY and \
* entry.type != ErrorTypes.ERR_UNDECLARED_ENTITY:
*/
- __pyx_t_3 = PyObject_GetAttr(((PyObject *)__pyx_v_context->_error_log), __pyx_n_s__filter_from_errors); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1144; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_context->_error_log), __pyx_n_s__filter_from_errors); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_8 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1144; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_8 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (PyList_CheckExact(__pyx_t_8) || PyTuple_CheckExact(__pyx_t_8)) {
__pyx_t_3 = __pyx_t_8; __Pyx_INCREF(__pyx_t_3); __pyx_t_9 = 0;
__pyx_t_10 = NULL;
} else {
- __pyx_t_9 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1144; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_9 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_10 = Py_TYPE(__pyx_t_3)->tp_iternext;
}
if (!__pyx_t_10 && PyList_CheckExact(__pyx_t_3)) {
if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_COMPILING_IN_CPYTHON
- __pyx_t_8 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_9); __Pyx_INCREF(__pyx_t_8); __pyx_t_9++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1144; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_8 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_9); __Pyx_INCREF(__pyx_t_8); __pyx_t_9++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
#else
- __pyx_t_8 = PySequence_ITEM(__pyx_t_3, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1144; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_8 = PySequence_ITEM(__pyx_t_3, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
#endif
} else if (!__pyx_t_10 && PyTuple_CheckExact(__pyx_t_3)) {
if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_COMPILING_IN_CPYTHON
- __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_9); __Pyx_INCREF(__pyx_t_8); __pyx_t_9++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1144; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_9); __Pyx_INCREF(__pyx_t_8); __pyx_t_9++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
#else
- __pyx_t_8 = PySequence_ITEM(__pyx_t_3, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1144; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_8 = PySequence_ITEM(__pyx_t_3, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
#endif
} else {
__pyx_t_8 = __pyx_t_10(__pyx_t_3);
if (unlikely(!__pyx_t_8)) {
if (PyErr_Occurred()) {
if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
- else {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1144; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ else {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
break;
}
__pyx_v_entry = __pyx_t_8;
__pyx_t_8 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1145
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1168
* # in this mode, we ignore errors about undefined entities
* for entry in context._error_log.filter_from_errors():
* if entry.type != ErrorTypes.WAR_UNDECLARED_ENTITY and \ # <<<<<<<<<<<<<<
* entry.type != ErrorTypes.ERR_UNDECLARED_ENTITY:
* break
*/
- __pyx_t_8 = PyObject_GetAttr(__pyx_v_entry, __pyx_n_s__type); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_entry, __pyx_n_s__type); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_8);
- __pyx_t_11 = __Pyx_GetName(__pyx_m, __pyx_n_s__ErrorTypes); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_11 = __Pyx_GetModuleGlobalName(__pyx_n_s__ErrorTypes); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_11);
- __pyx_t_12 = PyObject_GetAttr(__pyx_t_11, __pyx_n_s_165); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_174); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
- __pyx_t_11 = PyObject_RichCompare(__pyx_t_8, __pyx_t_12, Py_NE); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_11 = PyObject_RichCompare(__pyx_t_8, __pyx_t_12, Py_NE); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
if (__pyx_t_6) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1146
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1169
* for entry in context._error_log.filter_from_errors():
* if entry.type != ErrorTypes.WAR_UNDECLARED_ENTITY and \
* entry.type != ErrorTypes.ERR_UNDECLARED_ENTITY: # <<<<<<<<<<<<<<
* break
* else:
*/
- __pyx_t_11 = PyObject_GetAttr(__pyx_v_entry, __pyx_n_s__type); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_entry, __pyx_n_s__type); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1169; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_11);
- __pyx_t_12 = __Pyx_GetName(__pyx_m, __pyx_n_s__ErrorTypes); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_12 = __Pyx_GetModuleGlobalName(__pyx_n_s__ErrorTypes); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1169; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_12);
- __pyx_t_8 = PyObject_GetAttr(__pyx_t_12, __pyx_n_s_166); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_175); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1169; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
- __pyx_t_12 = PyObject_RichCompare(__pyx_t_11, __pyx_t_8, Py_NE); __Pyx_XGOTREF(__pyx_t_12); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_12 = PyObject_RichCompare(__pyx_t_11, __pyx_t_8, Py_NE); __Pyx_XGOTREF(__pyx_t_12); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1169; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
- __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1169; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_t_1 = __pyx_t_7;
} else {
}
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1147
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1170
* if entry.type != ErrorTypes.WAR_UNDECLARED_ENTITY and \
* entry.type != ErrorTypes.ERR_UNDECLARED_ENTITY:
* break # <<<<<<<<<<<<<<
}
/*else*/ {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1149
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1172
* break
* else:
* error = 0 # <<<<<<<<<<<<<<
__pyx_L17:;
}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1151
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1174
* error = 0
*
* if not recover and (error or not pctxt.wellFormed): # <<<<<<<<<<<<<<
}
if (__pyx_t_6) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1152
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1175
*
* if not recover and (error or not pctxt.wellFormed):
* self._feed_parser_running = 0 # <<<<<<<<<<<<<<
*/
__pyx_v_self->_feed_parser_running = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1153
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1176
* if not recover and (error or not pctxt.wellFormed):
* self._feed_parser_running = 0
* try: # <<<<<<<<<<<<<<
*/
/*try:*/ {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1154
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1177
* self._feed_parser_running = 0
* try:
* context._handleParseResult(self, NULL, None) # <<<<<<<<<<<<<<
* finally:
* context.cleanup()
*/
- __pyx_t_3 = ((struct __pyx_vtabstruct_4lxml_5etree__ParserContext *)__pyx_v_context->__pyx_base.__pyx_base.__pyx_vtab)->_handleParseResult(__pyx_v_context, ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_v_self), NULL, Py_None); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1154; __pyx_clineno = __LINE__; goto __pyx_L24;}
+ __pyx_t_3 = ((struct __pyx_vtabstruct_4lxml_5etree__ParserContext *)__pyx_v_context->__pyx_base.__pyx_base.__pyx_vtab)->_handleParseResult(__pyx_v_context, ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_v_self), NULL, Py_None); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1177; __pyx_clineno = __LINE__; goto __pyx_L24;}
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1156
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1179
* context._handleParseResult(self, NULL, None)
* finally:
* context.cleanup() # <<<<<<<<<<<<<<
goto __pyx_L25;
}
__pyx_L25:;
- __pyx_t_5 = ((struct __pyx_vtabstruct_4lxml_5etree__ParserContext *)__pyx_v_context->__pyx_base.__pyx_base.__pyx_vtab)->cleanup(__pyx_v_context); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1156; __pyx_clineno = __LINE__; goto __pyx_L26_error;}
+ __pyx_t_5 = ((struct __pyx_vtabstruct_4lxml_5etree__ParserContext *)__pyx_v_context->__pyx_base.__pyx_base.__pyx_vtab)->cleanup(__pyx_v_context); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1179; __pyx_clineno = __LINE__; goto __pyx_L26_error;}
goto __pyx_L27;
__pyx_L26_error:;
if (__pyx_why == 4) {
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1158
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1181
* context.cleanup()
*
* def close(self): # <<<<<<<<<<<<<<
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("close", 0);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1173
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1196
* cdef xmlDoc* c_doc
* cdef _Document doc
* if not self._feed_parser_running: # <<<<<<<<<<<<<<
__pyx_t_1 = (!__pyx_v_self->_feed_parser_running);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1174
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1197
* cdef _Document doc
* if not self._feed_parser_running:
* raise XMLSyntaxError(u"no element found", # <<<<<<<<<<<<<<
* xmlerror.XML_ERR_INTERNAL_ERROR, 0, 0)
*
*/
- __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__XMLSyntaxError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1174; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__XMLSyntaxError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1175
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1198
* if not self._feed_parser_running:
* raise XMLSyntaxError(u"no element found",
* xmlerror.XML_ERR_INTERNAL_ERROR, 0, 0) # <<<<<<<<<<<<<<
*
* context = self._getPushParserContext()
*/
- __pyx_t_3 = PyInt_FromLong(XML_ERR_INTERNAL_ERROR); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyInt_FromLong(XML_ERR_INTERNAL_ERROR); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1198; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_4 = PyTuple_New(4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1174; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = PyTuple_New(4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
- __Pyx_INCREF(((PyObject *)__pyx_kp_u_174));
- PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_kp_u_174));
- __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_174));
+ __Pyx_INCREF(((PyObject *)__pyx_kp_u_183));
+ PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_kp_u_183));
+ __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_183));
PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
__Pyx_GIVEREF(__pyx_t_3);
__Pyx_INCREF(__pyx_int_0);
PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_int_0);
__Pyx_GIVEREF(__pyx_int_0);
__pyx_t_3 = 0;
- __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1174; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(((PyObject *)__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_filename = __pyx_f[5]; __pyx_lineno = 1174; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L3;
}
__pyx_L3:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1177
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1200
* xmlerror.XML_ERR_INTERNAL_ERROR, 0, 0)
*
* context = self._getPushParserContext() # <<<<<<<<<<<<<<
* pctxt = context._c_ctxt
*
*/
- __pyx_t_3 = ((PyObject *)((struct __pyx_vtabstruct_4lxml_5etree__FeedParser *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base._getPushParserContext(((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_v_self))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = ((PyObject *)((struct __pyx_vtabstruct_4lxml_5etree__FeedParser *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base._getPushParserContext(((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_v_self))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1200; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__pyx_v_context = ((struct __pyx_obj_4lxml_5etree__ParserContext *)__pyx_t_3);
__pyx_t_3 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1178
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1201
*
* context = self._getPushParserContext()
* pctxt = context._c_ctxt # <<<<<<<<<<<<<<
__pyx_t_5 = __pyx_v_context->_c_ctxt;
__pyx_v_pctxt = __pyx_t_5;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1180
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1203
* pctxt = context._c_ctxt
*
* self._feed_parser_running = 0 # <<<<<<<<<<<<<<
*/
__pyx_v_self->_feed_parser_running = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1181
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1204
*
* self._feed_parser_running = 0
* if self._for_html: # <<<<<<<<<<<<<<
*/
if (__pyx_v_self->__pyx_base._for_html) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1182
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1205
* self._feed_parser_running = 0
* if self._for_html:
* htmlparser.htmlParseChunk(pctxt, NULL, 0, 1) # <<<<<<<<<<<<<<
}
/*else*/ {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1184
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1207
* htmlparser.htmlParseChunk(pctxt, NULL, 0, 1)
* else:
* xmlparser.xmlParseChunk(pctxt, NULL, 0, 1) # <<<<<<<<<<<<<<
}
__pyx_L4:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1185
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1208
* else:
* xmlparser.xmlParseChunk(pctxt, NULL, 0, 1)
* try: # <<<<<<<<<<<<<<
*/
/*try:*/ {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1186
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1209
* xmlparser.xmlParseChunk(pctxt, NULL, 0, 1)
* try:
* result = context._handleParseResult(self, pctxt.myDoc, None) # <<<<<<<<<<<<<<
* finally:
* context.cleanup()
*/
- __pyx_t_3 = ((struct __pyx_vtabstruct_4lxml_5etree__ParserContext *)__pyx_v_context->__pyx_base.__pyx_base.__pyx_vtab)->_handleParseResult(__pyx_v_context, ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_v_self), __pyx_v_pctxt->myDoc, Py_None); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1186; __pyx_clineno = __LINE__; goto __pyx_L6;}
+ __pyx_t_3 = ((struct __pyx_vtabstruct_4lxml_5etree__ParserContext *)__pyx_v_context->__pyx_base.__pyx_base.__pyx_vtab)->_handleParseResult(__pyx_v_context, ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_v_self), __pyx_v_pctxt->myDoc, Py_None); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1209; __pyx_clineno = __LINE__; goto __pyx_L6;}
__Pyx_GOTREF(__pyx_t_3);
__pyx_v_result = __pyx_t_3;
__pyx_t_3 = 0;
}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1188
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1211
* result = context._handleParseResult(self, pctxt.myDoc, None)
* finally:
* context.cleanup() # <<<<<<<<<<<<<<
goto __pyx_L7;
}
__pyx_L7:;
- __pyx_t_6 = ((struct __pyx_vtabstruct_4lxml_5etree__ParserContext *)__pyx_v_context->__pyx_base.__pyx_base.__pyx_vtab)->cleanup(__pyx_v_context); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1188; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
+ __pyx_t_6 = ((struct __pyx_vtabstruct_4lxml_5etree__ParserContext *)__pyx_v_context->__pyx_base.__pyx_base.__pyx_vtab)->cleanup(__pyx_v_context); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1211; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
goto __pyx_L9;
__pyx_L8_error:;
if (__pyx_why == 4) {
}
}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1190
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1213
* context.cleanup()
*
* if isinstance(result, _Document): # <<<<<<<<<<<<<<
__pyx_t_1 = __Pyx_TypeCheck(__pyx_v_result, ((PyObject*)__pyx_ptype_4lxml_5etree__Document));
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1191
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1214
*
* if isinstance(result, _Document):
* return (<_Document>result).getroot() # <<<<<<<<<<<<<<
* return result
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_3 = __pyx_f_4lxml_5etree_9_Document_getroot(((struct LxmlDocument *)__pyx_v_result)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1191; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __pyx_f_4lxml_5etree_9_Document_getroot(((struct LxmlDocument *)__pyx_v_result)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__pyx_r = __pyx_t_3;
__pyx_t_3 = 0;
}
/*else*/ {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1193
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1216
* return (<_Document>result).getroot()
* else:
* return result # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1195
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1218
* return result
*
* cdef int _htmlCtxtResetPush(xmlparser.xmlParserCtxt* c_ctxt, # <<<<<<<<<<<<<<
int __pyx_t_3;
__Pyx_RefNannySetupContext("_htmlCtxtResetPush", 0);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1200
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1223
* cdef xmlparser.xmlParserInput* c_input_stream
* # libxml2 crashes if spaceTab is not initialised
* if _LIBXML_VERSION_INT < 20629 and c_ctxt.spaceTab is NULL: # <<<<<<<<<<<<<<
}
if (__pyx_t_3) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1201
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1224
* # libxml2 crashes if spaceTab is not initialised
* if _LIBXML_VERSION_INT < 20629 and c_ctxt.spaceTab is NULL:
* c_ctxt.spaceTab = <int*>tree.xmlMalloc(10 * sizeof(int)) # <<<<<<<<<<<<<<
*/
__pyx_v_c_ctxt->spaceTab = ((int *)xmlMalloc((10 * (sizeof(int)))));
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1202
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1225
* if _LIBXML_VERSION_INT < 20629 and c_ctxt.spaceTab is NULL:
* c_ctxt.spaceTab = <int*>tree.xmlMalloc(10 * sizeof(int))
* c_ctxt.spaceMax = 10 # <<<<<<<<<<<<<<
}
__pyx_L3:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1205
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1228
*
* # libxml2 lacks an HTML push parser setup function
* error = xmlparser.xmlCtxtResetPush(c_ctxt, NULL, 0, NULL, c_encoding) # <<<<<<<<<<<<<<
*/
__pyx_v_error = xmlCtxtResetPush(__pyx_v_c_ctxt, NULL, 0, NULL, __pyx_v_c_encoding);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1206
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1229
* # libxml2 lacks an HTML push parser setup function
* error = xmlparser.xmlCtxtResetPush(c_ctxt, NULL, 0, NULL, c_encoding)
* if error: # <<<<<<<<<<<<<<
*/
if (__pyx_v_error) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1207
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1230
* error = xmlparser.xmlCtxtResetPush(c_ctxt, NULL, 0, NULL, c_encoding)
* if error:
* return error # <<<<<<<<<<<<<<
}
__pyx_L4:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1210
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1233
*
* # fix libxml2 setup for HTML
* c_ctxt.progressive = 1 # <<<<<<<<<<<<<<
*/
__pyx_v_c_ctxt->progressive = 1;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1211
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1234
* # fix libxml2 setup for HTML
* c_ctxt.progressive = 1
* c_ctxt.html = 1 # <<<<<<<<<<<<<<
*/
__pyx_v_c_ctxt->html = 1;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1212
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1235
* c_ctxt.progressive = 1
* c_ctxt.html = 1
* htmlparser.htmlCtxtUseOptions(c_ctxt, parse_options) # <<<<<<<<<<<<<<
*/
htmlCtxtUseOptions(__pyx_v_c_ctxt, __pyx_v_parse_options);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1214
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1237
* htmlparser.htmlCtxtUseOptions(c_ctxt, parse_options)
*
* if c_data is not NULL and buffer_len > 0: # <<<<<<<<<<<<<<
}
if (__pyx_t_2) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1215
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1238
*
* if c_data is not NULL and buffer_len > 0:
* return htmlparser.htmlParseChunk(c_ctxt, c_data, buffer_len, 0) # <<<<<<<<<<<<<<
}
__pyx_L5:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1216
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1239
* if c_data is not NULL and buffer_len > 0:
* return htmlparser.htmlParseChunk(c_ctxt, c_data, buffer_len, 0)
* return 0 # <<<<<<<<<<<<<<
PyObject *__pyx_v_strip_cdata = 0;
PyObject *__pyx_v_target = 0;
PyObject *__pyx_v_compact = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__encoding,&__pyx_n_s__attribute_defaults,&__pyx_n_s__dtd_validation,&__pyx_n_s__load_dtd,&__pyx_n_s__no_network,&__pyx_n_s__ns_clean,&__pyx_n_s__recover,&__pyx_n_s__schema,&__pyx_n_s__huge_tree,&__pyx_n_s__remove_blank_text,&__pyx_n_s__resolve_entities,&__pyx_n_s__remove_comments,&__pyx_n_s__remove_pis,&__pyx_n_s__strip_cdata,&__pyx_n_s__target,&__pyx_n_s__compact,0};
PyObject* values[16] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1274
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1297
* apply to the default parser.
* """
* def __init__(self, *, encoding=None, attribute_defaults=False, # <<<<<<<<<<<<<<
* ns_clean=False, recover=False, XMLSchema schema=None,
*/
values[0] = ((PyObject *)Py_None);
- values[1] = __pyx_k_175;
- values[2] = __pyx_k_176;
- values[3] = __pyx_k_177;
- values[4] = __pyx_k_178;
- values[5] = __pyx_k_179;
- values[6] = __pyx_k_180;
-
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1276
+ values[1] = __pyx_k_184;
+ values[2] = __pyx_k_185;
+ values[3] = __pyx_k_186;
+ values[4] = __pyx_k_187;
+ values[5] = __pyx_k_188;
+ values[6] = __pyx_k_189;
+
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1299
* def __init__(self, *, encoding=None, attribute_defaults=False,
* dtd_validation=False, load_dtd=False, no_network=True,
* ns_clean=False, recover=False, XMLSchema schema=None, # <<<<<<<<<<<<<<
* remove_comments=False, remove_pis=False, strip_cdata=True,
*/
values[7] = (PyObject *)((struct __pyx_obj_4lxml_5etree_XMLSchema *)Py_None);
- values[8] = __pyx_k_181;
- values[9] = __pyx_k_182;
- values[10] = __pyx_k_183;
- values[11] = __pyx_k_184;
- values[12] = __pyx_k_185;
- values[13] = __pyx_k_186;
-
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1279
+ values[8] = __pyx_k_190;
+ values[9] = __pyx_k_191;
+ values[10] = __pyx_k_192;
+ values[11] = __pyx_k_193;
+ values[12] = __pyx_k_194;
+ values[13] = __pyx_k_195;
+
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1302
* huge_tree=False, remove_blank_text=False, resolve_entities=True,
* remove_comments=False, remove_pis=False, strip_cdata=True,
* target=None, compact=True): # <<<<<<<<<<<<<<
* parse_options = _XML_DEFAULT_PARSE_OPTIONS
*/
values[14] = ((PyObject *)Py_None);
- values[15] = __pyx_k_187;
+ values[15] = __pyx_k_196;
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
}
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, 0, "__init__") < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1274; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, 0, "__init__") < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1297; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[5]; __pyx_lineno = 1274; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1297; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
__pyx_L3_error:;
__Pyx_AddTraceback("lxml.etree.XMLParser.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return -1;
__pyx_L4_argument_unpacking_done:;
- if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_schema), __pyx_ptype_4lxml_5etree_XMLSchema, 1, "schema", 0))) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1276; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_schema), __pyx_ptype_4lxml_5etree_XMLSchema, 1, "schema", 0))) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1299; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_r = __pyx_pf_4lxml_5etree_9XMLParser___init__(((struct __pyx_obj_4lxml_5etree_XMLParser *)__pyx_v_self), __pyx_v_encoding, __pyx_v_attribute_defaults, __pyx_v_dtd_validation, __pyx_v_load_dtd, __pyx_v_no_network, __pyx_v_ns_clean, __pyx_v_recover, __pyx_v_schema, __pyx_v_huge_tree, __pyx_v_remove_blank_text, __pyx_v_resolve_entities, __pyx_v_remove_comments, __pyx_v_remove_pis, __pyx_v_strip_cdata, __pyx_v_target, __pyx_v_compact);
goto __pyx_L0;
__pyx_L1_error:;
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1274
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1297
* apply to the default parser.
* """
* def __init__(self, *, encoding=None, attribute_defaults=False, # <<<<<<<<<<<<<<
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("__init__", 0);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1281
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1304
* target=None, compact=True):
* cdef int parse_options
* parse_options = _XML_DEFAULT_PARSE_OPTIONS # <<<<<<<<<<<<<<
*/
__pyx_v_parse_options = __pyx_v_4lxml_5etree__XML_DEFAULT_PARSE_OPTIONS;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1282
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1305
* cdef int parse_options
* parse_options = _XML_DEFAULT_PARSE_OPTIONS
* if load_dtd: # <<<<<<<<<<<<<<
* parse_options = parse_options | xmlparser.XML_PARSE_DTDLOAD
* if dtd_validation:
*/
- __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_load_dtd); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1282; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_load_dtd); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1305; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1283
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1306
* parse_options = _XML_DEFAULT_PARSE_OPTIONS
* if load_dtd:
* parse_options = parse_options | xmlparser.XML_PARSE_DTDLOAD # <<<<<<<<<<<<<<
}
__pyx_L3:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1284
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1307
* if load_dtd:
* parse_options = parse_options | xmlparser.XML_PARSE_DTDLOAD
* if dtd_validation: # <<<<<<<<<<<<<<
* parse_options = parse_options | xmlparser.XML_PARSE_DTDVALID | \
* xmlparser.XML_PARSE_DTDLOAD
*/
- __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_dtd_validation); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1284; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_dtd_validation); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1307; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1286
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1309
* if dtd_validation:
* parse_options = parse_options | xmlparser.XML_PARSE_DTDVALID | \
* xmlparser.XML_PARSE_DTDLOAD # <<<<<<<<<<<<<<
}
__pyx_L4:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1287
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1310
* parse_options = parse_options | xmlparser.XML_PARSE_DTDVALID | \
* xmlparser.XML_PARSE_DTDLOAD
* if attribute_defaults: # <<<<<<<<<<<<<<
* parse_options = parse_options | xmlparser.XML_PARSE_DTDATTR
* if schema is None:
*/
- __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_attribute_defaults); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1287; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_attribute_defaults); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1310; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1288
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1311
* xmlparser.XML_PARSE_DTDLOAD
* if attribute_defaults:
* parse_options = parse_options | xmlparser.XML_PARSE_DTDATTR # <<<<<<<<<<<<<<
*/
__pyx_v_parse_options = (__pyx_v_parse_options | XML_PARSE_DTDATTR);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1289
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1312
* if attribute_defaults:
* parse_options = parse_options | xmlparser.XML_PARSE_DTDATTR
* if schema is None: # <<<<<<<<<<<<<<
__pyx_t_1 = (((PyObject *)__pyx_v_schema) == Py_None);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1290
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1313
* parse_options = parse_options | xmlparser.XML_PARSE_DTDATTR
* if schema is None:
* parse_options = parse_options | xmlparser.XML_PARSE_DTDLOAD # <<<<<<<<<<<<<<
}
__pyx_L5:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1291
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1314
* if schema is None:
* parse_options = parse_options | xmlparser.XML_PARSE_DTDLOAD
* if ns_clean: # <<<<<<<<<<<<<<
* parse_options = parse_options | xmlparser.XML_PARSE_NSCLEAN
* if recover:
*/
- __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_ns_clean); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1291; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_ns_clean); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1314; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1292
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1315
* parse_options = parse_options | xmlparser.XML_PARSE_DTDLOAD
* if ns_clean:
* parse_options = parse_options | xmlparser.XML_PARSE_NSCLEAN # <<<<<<<<<<<<<<
}
__pyx_L7:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1293
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1316
* if ns_clean:
* parse_options = parse_options | xmlparser.XML_PARSE_NSCLEAN
* if recover: # <<<<<<<<<<<<<<
* parse_options = parse_options | xmlparser.XML_PARSE_RECOVER
* if remove_blank_text:
*/
- __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_recover); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1293; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_recover); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1316; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1294
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1317
* parse_options = parse_options | xmlparser.XML_PARSE_NSCLEAN
* if recover:
* parse_options = parse_options | xmlparser.XML_PARSE_RECOVER # <<<<<<<<<<<<<<
}
__pyx_L8:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1295
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1318
* if recover:
* parse_options = parse_options | xmlparser.XML_PARSE_RECOVER
* if remove_blank_text: # <<<<<<<<<<<<<<
* parse_options = parse_options | xmlparser.XML_PARSE_NOBLANKS
* if huge_tree:
*/
- __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_remove_blank_text); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1295; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_remove_blank_text); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1318; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1296
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1319
* parse_options = parse_options | xmlparser.XML_PARSE_RECOVER
* if remove_blank_text:
* parse_options = parse_options | xmlparser.XML_PARSE_NOBLANKS # <<<<<<<<<<<<<<
}
__pyx_L9:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1297
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1320
* if remove_blank_text:
* parse_options = parse_options | xmlparser.XML_PARSE_NOBLANKS
* if huge_tree: # <<<<<<<<<<<<<<
* parse_options = parse_options | xmlparser.XML_PARSE_HUGE
* if not no_network:
*/
- __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_huge_tree); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1297; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_huge_tree); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1320; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1298
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1321
* parse_options = parse_options | xmlparser.XML_PARSE_NOBLANKS
* if huge_tree:
* parse_options = parse_options | xmlparser.XML_PARSE_HUGE # <<<<<<<<<<<<<<
}
__pyx_L10:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1299
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1322
* if huge_tree:
* parse_options = parse_options | xmlparser.XML_PARSE_HUGE
* if not no_network: # <<<<<<<<<<<<<<
* parse_options = parse_options ^ xmlparser.XML_PARSE_NONET
* if not compact:
*/
- __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_no_network); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1299; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_no_network); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1322; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_t_2 = (!__pyx_t_1);
if (__pyx_t_2) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1300
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1323
* parse_options = parse_options | xmlparser.XML_PARSE_HUGE
* if not no_network:
* parse_options = parse_options ^ xmlparser.XML_PARSE_NONET # <<<<<<<<<<<<<<
}
__pyx_L11:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1301
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1324
* if not no_network:
* parse_options = parse_options ^ xmlparser.XML_PARSE_NONET
* if not compact: # <<<<<<<<<<<<<<
* parse_options = parse_options ^ xmlparser.XML_PARSE_COMPACT
* if not resolve_entities:
*/
- __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_compact); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1301; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_compact); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1324; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_t_1 = (!__pyx_t_2);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1302
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1325
* parse_options = parse_options ^ xmlparser.XML_PARSE_NONET
* if not compact:
* parse_options = parse_options ^ xmlparser.XML_PARSE_COMPACT # <<<<<<<<<<<<<<
}
__pyx_L12:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1303
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1326
* if not compact:
* parse_options = parse_options ^ xmlparser.XML_PARSE_COMPACT
* if not resolve_entities: # <<<<<<<<<<<<<<
* parse_options = parse_options ^ xmlparser.XML_PARSE_NOENT
* if not strip_cdata:
*/
- __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_resolve_entities); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1303; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_resolve_entities); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1326; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_t_2 = (!__pyx_t_1);
if (__pyx_t_2) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1304
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1327
* parse_options = parse_options ^ xmlparser.XML_PARSE_COMPACT
* if not resolve_entities:
* parse_options = parse_options ^ xmlparser.XML_PARSE_NOENT # <<<<<<<<<<<<<<
}
__pyx_L13:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1305
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1328
* if not resolve_entities:
* parse_options = parse_options ^ xmlparser.XML_PARSE_NOENT
* if not strip_cdata: # <<<<<<<<<<<<<<
* parse_options = parse_options ^ xmlparser.XML_PARSE_NOCDATA
*
*/
- __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_strip_cdata); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1305; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_strip_cdata); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1328; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_t_1 = (!__pyx_t_2);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1306
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1329
* parse_options = parse_options ^ xmlparser.XML_PARSE_NOENT
* if not strip_cdata:
* parse_options = parse_options ^ xmlparser.XML_PARSE_NOCDATA # <<<<<<<<<<<<<<
}
__pyx_L14:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1308
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1331
* parse_options = parse_options ^ xmlparser.XML_PARSE_NOCDATA
*
* _BaseParser.__init__(self, parse_options, 0, schema, # <<<<<<<<<<<<<<
* remove_comments, remove_pis, strip_cdata,
* target, None, encoding)
*/
- __pyx_t_3 = PyObject_GetAttr(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__BaseParser)), __pyx_n_s____init__); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1308; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__BaseParser)), __pyx_n_s____init__); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1331; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_4 = PyInt_FromLong(__pyx_v_parse_options); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1308; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = PyInt_FromLong(__pyx_v_parse_options); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1331; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1310
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1333
* _BaseParser.__init__(self, parse_options, 0, schema,
* remove_comments, remove_pis, strip_cdata,
* target, None, encoding) # <<<<<<<<<<<<<<
*
* cdef class ETCompatXMLParser(XMLParser):
*/
- __pyx_t_5 = PyTuple_New(10); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1308; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = PyTuple_New(10); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1331; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
__Pyx_INCREF(((PyObject *)__pyx_v_self));
PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_self));
PyTuple_SET_ITEM(__pyx_t_5, 9, __pyx_v_encoding);
__Pyx_GIVEREF(__pyx_v_encoding);
__pyx_t_4 = 0;
- __pyx_t_4 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1308; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1331; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
PyObject *__pyx_v_strip_cdata = 0;
PyObject *__pyx_v_target = 0;
PyObject *__pyx_v_compact = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__encoding,&__pyx_n_s__attribute_defaults,&__pyx_n_s__dtd_validation,&__pyx_n_s__load_dtd,&__pyx_n_s__no_network,&__pyx_n_s__ns_clean,&__pyx_n_s__recover,&__pyx_n_s__schema,&__pyx_n_s__huge_tree,&__pyx_n_s__remove_blank_text,&__pyx_n_s__resolve_entities,&__pyx_n_s__remove_comments,&__pyx_n_s__remove_pis,&__pyx_n_s__strip_cdata,&__pyx_n_s__target,&__pyx_n_s__compact,0};
PyObject* values[16] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1327
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1350
* and thus ignores comments and processing instructions.
* """
* def __init__(self, *, encoding=None, attribute_defaults=False, # <<<<<<<<<<<<<<
* ns_clean=False, recover=False, schema=None,
*/
values[0] = ((PyObject *)Py_None);
- values[1] = __pyx_k_188;
- values[2] = __pyx_k_189;
- values[3] = __pyx_k_190;
- values[4] = __pyx_k_191;
- values[5] = __pyx_k_192;
- values[6] = __pyx_k_193;
-
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1329
+ values[1] = __pyx_k_197;
+ values[2] = __pyx_k_198;
+ values[3] = __pyx_k_199;
+ values[4] = __pyx_k_200;
+ values[5] = __pyx_k_201;
+ values[6] = __pyx_k_202;
+
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1352
* def __init__(self, *, encoding=None, attribute_defaults=False,
* dtd_validation=False, load_dtd=False, no_network=True,
* ns_clean=False, recover=False, schema=None, # <<<<<<<<<<<<<<
* remove_comments=True, remove_pis=True, strip_cdata=True,
*/
values[7] = ((PyObject *)Py_None);
- values[8] = __pyx_k_194;
- values[9] = __pyx_k_195;
- values[10] = __pyx_k_196;
- values[11] = __pyx_k_197;
- values[12] = __pyx_k_198;
- values[13] = __pyx_k_199;
-
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1332
+ values[8] = __pyx_k_203;
+ values[9] = __pyx_k_204;
+ values[10] = __pyx_k_205;
+ values[11] = __pyx_k_206;
+ values[12] = __pyx_k_207;
+ values[13] = __pyx_k_208;
+
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1355
* huge_tree=False, remove_blank_text=False, resolve_entities=True,
* remove_comments=True, remove_pis=True, strip_cdata=True,
* target=None, compact=True): # <<<<<<<<<<<<<<
* attribute_defaults=attribute_defaults,
*/
values[14] = ((PyObject *)Py_None);
- values[15] = __pyx_k_200;
+ values[15] = __pyx_k_209;
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
}
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, 0, "__init__") < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1327; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, 0, "__init__") < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1350; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[5]; __pyx_lineno = 1327; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1350; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
__pyx_L3_error:;
__Pyx_AddTraceback("lxml.etree.ETCompatXMLParser.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1327
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1350
* and thus ignores comments and processing instructions.
* """
* def __init__(self, *, encoding=None, attribute_defaults=False, # <<<<<<<<<<<<<<
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("__init__", 0);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1333
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1356
* remove_comments=True, remove_pis=True, strip_cdata=True,
* target=None, compact=True):
* XMLParser.__init__(self, # <<<<<<<<<<<<<<
* attribute_defaults=attribute_defaults,
* dtd_validation=dtd_validation,
*/
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_XMLParser)), __pyx_n_s____init__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_XMLParser)), __pyx_n_s____init__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1356; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1356; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__Pyx_INCREF(((PyObject *)__pyx_v_self));
PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self));
__Pyx_GIVEREF(((PyObject *)__pyx_v_self));
- __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1356; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_3));
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1334
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1357
* target=None, compact=True):
* XMLParser.__init__(self,
* attribute_defaults=attribute_defaults, # <<<<<<<<<<<<<<
* dtd_validation=dtd_validation,
* load_dtd=load_dtd,
*/
- if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__attribute_defaults), __pyx_v_attribute_defaults) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__attribute_defaults), __pyx_v_attribute_defaults) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1356; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1335
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1358
* XMLParser.__init__(self,
* attribute_defaults=attribute_defaults,
* dtd_validation=dtd_validation, # <<<<<<<<<<<<<<
* load_dtd=load_dtd,
* no_network=no_network,
*/
- if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__dtd_validation), __pyx_v_dtd_validation) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__dtd_validation), __pyx_v_dtd_validation) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1356; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1336
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1359
* attribute_defaults=attribute_defaults,
* dtd_validation=dtd_validation,
* load_dtd=load_dtd, # <<<<<<<<<<<<<<
* no_network=no_network,
* ns_clean=ns_clean,
*/
- if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__load_dtd), __pyx_v_load_dtd) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__load_dtd), __pyx_v_load_dtd) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1356; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1337
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1360
* dtd_validation=dtd_validation,
* load_dtd=load_dtd,
* no_network=no_network, # <<<<<<<<<<<<<<
* ns_clean=ns_clean,
* recover=recover,
*/
- if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__no_network), __pyx_v_no_network) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__no_network), __pyx_v_no_network) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1356; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1338
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1361
* load_dtd=load_dtd,
* no_network=no_network,
* ns_clean=ns_clean, # <<<<<<<<<<<<<<
* recover=recover,
* remove_blank_text=remove_blank_text,
*/
- if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__ns_clean), __pyx_v_ns_clean) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__ns_clean), __pyx_v_ns_clean) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1356; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1339
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1362
* no_network=no_network,
* ns_clean=ns_clean,
* recover=recover, # <<<<<<<<<<<<<<
* remove_blank_text=remove_blank_text,
* huge_tree=huge_tree,
*/
- if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__recover), __pyx_v_recover) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__recover), __pyx_v_recover) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1356; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1340
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1363
* ns_clean=ns_clean,
* recover=recover,
* remove_blank_text=remove_blank_text, # <<<<<<<<<<<<<<
* huge_tree=huge_tree,
* compact=compact,
*/
- if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__remove_blank_text), __pyx_v_remove_blank_text) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__remove_blank_text), __pyx_v_remove_blank_text) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1356; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1341
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1364
* recover=recover,
* remove_blank_text=remove_blank_text,
* huge_tree=huge_tree, # <<<<<<<<<<<<<<
* compact=compact,
* resolve_entities=resolve_entities,
*/
- if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__huge_tree), __pyx_v_huge_tree) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__huge_tree), __pyx_v_huge_tree) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1356; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1342
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1365
* remove_blank_text=remove_blank_text,
* huge_tree=huge_tree,
* compact=compact, # <<<<<<<<<<<<<<
* resolve_entities=resolve_entities,
* remove_comments=remove_comments,
*/
- if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__compact), __pyx_v_compact) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__compact), __pyx_v_compact) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1356; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1343
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1366
* huge_tree=huge_tree,
* compact=compact,
* resolve_entities=resolve_entities, # <<<<<<<<<<<<<<
* remove_comments=remove_comments,
* remove_pis=remove_pis,
*/
- if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__resolve_entities), __pyx_v_resolve_entities) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__resolve_entities), __pyx_v_resolve_entities) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1356; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1344
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1367
* compact=compact,
* resolve_entities=resolve_entities,
* remove_comments=remove_comments, # <<<<<<<<<<<<<<
* remove_pis=remove_pis,
* strip_cdata=strip_cdata,
*/
- if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__remove_comments), __pyx_v_remove_comments) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__remove_comments), __pyx_v_remove_comments) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1356; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1345
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1368
* resolve_entities=resolve_entities,
* remove_comments=remove_comments,
* remove_pis=remove_pis, # <<<<<<<<<<<<<<
* strip_cdata=strip_cdata,
* target=target,
*/
- if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__remove_pis), __pyx_v_remove_pis) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__remove_pis), __pyx_v_remove_pis) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1356; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1346
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1369
* remove_comments=remove_comments,
* remove_pis=remove_pis,
* strip_cdata=strip_cdata, # <<<<<<<<<<<<<<
* target=target,
* encoding=encoding,
*/
- if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__strip_cdata), __pyx_v_strip_cdata) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__strip_cdata), __pyx_v_strip_cdata) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1356; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1347
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1370
* remove_pis=remove_pis,
* strip_cdata=strip_cdata,
* target=target, # <<<<<<<<<<<<<<
* encoding=encoding,
* schema=schema)
*/
- if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__target), __pyx_v_target) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__target), __pyx_v_target) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1356; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1348
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1371
* strip_cdata=strip_cdata,
* target=target,
* encoding=encoding, # <<<<<<<<<<<<<<
* schema=schema)
*
*/
- if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__encoding), __pyx_v_encoding) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__encoding), __pyx_v_encoding) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1356; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1349
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1372
* target=target,
* encoding=encoding,
* schema=schema) # <<<<<<<<<<<<<<
*
* # ET 1.2 compatible name
*/
- if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__schema), __pyx_v_schema) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_t_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__schema), __pyx_v_schema) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1356; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1356; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
static PyMethodDef __pyx_mdef_4lxml_5etree_43set_default_parser = {__Pyx_NAMESTR("set_default_parser"), (PyCFunction)__pyx_pw_4lxml_5etree_43set_default_parser, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_42set_default_parser)};
static PyObject *__pyx_pw_4lxml_5etree_43set_default_parser(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
struct __pyx_obj_4lxml_5etree__BaseParser *__pyx_v_parser = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("set_default_parser (wrapper)", 0);
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__parser,0};
PyObject* values[1] = {0};
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1360
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1383
* __GLOBAL_PARSER_CONTEXT.setDefaultParser(__DEFAULT_XML_PARSER)
*
* def set_default_parser(_BaseParser parser=None): # <<<<<<<<<<<<<<
}
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "set_default_parser") < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1360; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "set_default_parser") < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1383; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[5]; __pyx_lineno = 1360; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ __Pyx_RaiseArgtupleInvalid("set_default_parser", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1383; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
__pyx_L3_error:;
__Pyx_AddTraceback("lxml.etree.set_default_parser", __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_filename = __pyx_f[5]; __pyx_lineno = 1360; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_parser), __pyx_ptype_4lxml_5etree__BaseParser, 1, "parser", 0))) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1383; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_r = __pyx_pf_4lxml_5etree_42set_default_parser(__pyx_self, __pyx_v_parser);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_RefNannySetupContext("set_default_parser", 0);
__Pyx_INCREF((PyObject *)__pyx_v_parser);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1372
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1395
* parser for each thread explicitly or use a parser pool.
* """
* if parser is None: # <<<<<<<<<<<<<<
__pyx_t_1 = (((PyObject *)__pyx_v_parser) == Py_None);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1373
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1396
* """
* if parser is None:
* parser = __DEFAULT_XML_PARSER # <<<<<<<<<<<<<<
}
__pyx_L3:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1374
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1397
* if parser is None:
* parser = __DEFAULT_XML_PARSER
* __GLOBAL_PARSER_CONTEXT.setDefaultParser(parser) # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1376
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1399
* __GLOBAL_PARSER_CONTEXT.setDefaultParser(parser)
*
* def get_default_parser(): # <<<<<<<<<<<<<<
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("get_default_parser", 0);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1378
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1401
* def get_default_parser():
* u"get_default_parser()"
* return __GLOBAL_PARSER_CONTEXT.getDefaultParser() # <<<<<<<<<<<<<<
* ############################################################
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree_24_ParserDictionaryContext_getDefaultParser(__pyx_v_4lxml_5etree___GLOBAL_PARSER_CONTEXT)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1378; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree_24_ParserDictionaryContext_getDefaultParser(__pyx_v_4lxml_5etree___GLOBAL_PARSER_CONTEXT)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1401; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
struct __pyx_obj_4lxml_5etree_XMLSchema *__pyx_v_schema = 0;
PyObject *__pyx_v_recover = 0;
PyObject *__pyx_v_compact = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__encoding,&__pyx_n_s__remove_blank_text,&__pyx_n_s__remove_comments,&__pyx_n_s__remove_pis,&__pyx_n_s__strip_cdata,&__pyx_n_s__no_network,&__pyx_n_s__target,&__pyx_n_s__schema,&__pyx_n_s__recover,&__pyx_n_s__compact,0};
PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0};
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1423
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1446
* reasons.
* """
* def __init__(self, *, encoding=None, remove_blank_text=False, # <<<<<<<<<<<<<<
* no_network=True, target=None, XMLSchema schema=None,
*/
values[0] = ((PyObject *)Py_None);
- values[1] = __pyx_k_201;
- values[2] = __pyx_k_202;
- values[3] = __pyx_k_203;
- values[4] = __pyx_k_204;
- values[5] = __pyx_k_205;
+ values[1] = __pyx_k_210;
+ values[2] = __pyx_k_211;
+ values[3] = __pyx_k_212;
+ values[4] = __pyx_k_213;
+ values[5] = __pyx_k_214;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1425
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1448
* def __init__(self, *, encoding=None, remove_blank_text=False,
* remove_comments=False, remove_pis=False, strip_cdata=True,
* no_network=True, target=None, XMLSchema schema=None, # <<<<<<<<<<<<<<
*/
values[6] = ((PyObject *)Py_None);
values[7] = (PyObject *)((struct __pyx_obj_4lxml_5etree_XMLSchema *)Py_None);
- values[8] = __pyx_k_206;
- values[9] = __pyx_k_207;
+ values[8] = __pyx_k_215;
+ values[9] = __pyx_k_216;
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
}
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, 0, "__init__") < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1423; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, 0, "__init__") < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1446; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[5]; __pyx_lineno = 1423; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1446; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
__pyx_L3_error:;
__Pyx_AddTraceback("lxml.etree.HTMLParser.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return -1;
__pyx_L4_argument_unpacking_done:;
- if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_schema), __pyx_ptype_4lxml_5etree_XMLSchema, 1, "schema", 0))) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_schema), __pyx_ptype_4lxml_5etree_XMLSchema, 1, "schema", 0))) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1448; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_r = __pyx_pf_4lxml_5etree_10HTMLParser___init__(((struct __pyx_obj_4lxml_5etree_HTMLParser *)__pyx_v_self), __pyx_v_encoding, __pyx_v_remove_blank_text, __pyx_v_remove_comments, __pyx_v_remove_pis, __pyx_v_strip_cdata, __pyx_v_no_network, __pyx_v_target, __pyx_v_schema, __pyx_v_recover, __pyx_v_compact);
goto __pyx_L0;
__pyx_L1_error:;
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1423
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1446
* reasons.
* """
* def __init__(self, *, encoding=None, remove_blank_text=False, # <<<<<<<<<<<<<<
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("__init__", 0);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1428
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1451
* recover=True, compact=True):
* cdef int parse_options
* parse_options = _HTML_DEFAULT_PARSE_OPTIONS # <<<<<<<<<<<<<<
*/
__pyx_v_parse_options = __pyx_v_4lxml_5etree__HTML_DEFAULT_PARSE_OPTIONS;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1429
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1452
* cdef int parse_options
* parse_options = _HTML_DEFAULT_PARSE_OPTIONS
* if remove_blank_text: # <<<<<<<<<<<<<<
* parse_options = parse_options | htmlparser.HTML_PARSE_NOBLANKS
* if not recover:
*/
- __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_remove_blank_text); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1429; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_remove_blank_text); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1452; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1430
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1453
* parse_options = _HTML_DEFAULT_PARSE_OPTIONS
* if remove_blank_text:
* parse_options = parse_options | htmlparser.HTML_PARSE_NOBLANKS # <<<<<<<<<<<<<<
}
__pyx_L3:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1431
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1454
* if remove_blank_text:
* parse_options = parse_options | htmlparser.HTML_PARSE_NOBLANKS
* if not recover: # <<<<<<<<<<<<<<
* parse_options = parse_options ^ htmlparser.HTML_PARSE_RECOVER
* if not no_network:
*/
- __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_recover); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1431; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_recover); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1454; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_t_2 = (!__pyx_t_1);
if (__pyx_t_2) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1432
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1455
* parse_options = parse_options | htmlparser.HTML_PARSE_NOBLANKS
* if not recover:
* parse_options = parse_options ^ htmlparser.HTML_PARSE_RECOVER # <<<<<<<<<<<<<<
}
__pyx_L4:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1433
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1456
* if not recover:
* parse_options = parse_options ^ htmlparser.HTML_PARSE_RECOVER
* if not no_network: # <<<<<<<<<<<<<<
* parse_options = parse_options ^ htmlparser.HTML_PARSE_NONET
* if not compact:
*/
- __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_no_network); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1433; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_no_network); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1456; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_t_1 = (!__pyx_t_2);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1434
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1457
* parse_options = parse_options ^ htmlparser.HTML_PARSE_RECOVER
* if not no_network:
* parse_options = parse_options ^ htmlparser.HTML_PARSE_NONET # <<<<<<<<<<<<<<
}
__pyx_L5:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1435
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1458
* if not no_network:
* parse_options = parse_options ^ htmlparser.HTML_PARSE_NONET
* if not compact: # <<<<<<<<<<<<<<
* parse_options = parse_options ^ htmlparser.HTML_PARSE_COMPACT
*
*/
- __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_compact); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1435; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_compact); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1458; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_t_2 = (!__pyx_t_1);
if (__pyx_t_2) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1436
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1459
* parse_options = parse_options ^ htmlparser.HTML_PARSE_NONET
* if not compact:
* parse_options = parse_options ^ htmlparser.HTML_PARSE_COMPACT # <<<<<<<<<<<<<<
}
__pyx_L6:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1438
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1461
* parse_options = parse_options ^ htmlparser.HTML_PARSE_COMPACT
*
* _BaseParser.__init__(self, parse_options, 1, schema, # <<<<<<<<<<<<<<
* remove_comments, remove_pis, strip_cdata,
* target, None, encoding)
*/
- __pyx_t_3 = PyObject_GetAttr(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__BaseParser)), __pyx_n_s____init__); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1438; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__BaseParser)), __pyx_n_s____init__); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1461; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_4 = PyInt_FromLong(__pyx_v_parse_options); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1438; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = PyInt_FromLong(__pyx_v_parse_options); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1461; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1440
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1463
* _BaseParser.__init__(self, parse_options, 1, schema,
* remove_comments, remove_pis, strip_cdata,
* target, None, encoding) # <<<<<<<<<<<<<<
*
* cdef HTMLParser __DEFAULT_HTML_PARSER
*/
- __pyx_t_5 = PyTuple_New(10); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1438; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = PyTuple_New(10); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1461; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
__Pyx_INCREF(((PyObject *)__pyx_v_self));
PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_self));
PyTuple_SET_ITEM(__pyx_t_5, 9, __pyx_v_encoding);
__Pyx_GIVEREF(__pyx_v_encoding);
__pyx_t_4 = 0;
- __pyx_t_4 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1438; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1461; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1449
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1472
* ############################################################
*
* cdef xmlDoc* _parseDoc(text, filename, _BaseParser parser) except NULL: # <<<<<<<<<<<<<<
__Pyx_RefNannySetupContext("_parseDoc", 0);
__Pyx_INCREF((PyObject *)__pyx_v_parser);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1453
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1476
* cdef char* c_text
* cdef Py_ssize_t c_len
* if parser is None: # <<<<<<<<<<<<<<
__pyx_t_1 = (((PyObject *)__pyx_v_parser) == Py_None);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1454
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1477
* cdef Py_ssize_t c_len
* if parser is None:
* parser = __GLOBAL_PARSER_CONTEXT.getDefaultParser() # <<<<<<<<<<<<<<
* if not filename:
* c_filename = NULL
*/
- __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree_24_ParserDictionaryContext_getDefaultParser(__pyx_v_4lxml_5etree___GLOBAL_PARSER_CONTEXT)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1454; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree_24_ParserDictionaryContext_getDefaultParser(__pyx_v_4lxml_5etree___GLOBAL_PARSER_CONTEXT)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1477; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(((PyObject *)__pyx_v_parser));
__pyx_v_parser = ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_t_2);
}
__pyx_L3:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1455
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1478
* if parser is None:
* parser = __GLOBAL_PARSER_CONTEXT.getDefaultParser()
* if not filename: # <<<<<<<<<<<<<<
* c_filename = NULL
* else:
*/
- __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_filename); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1455; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_filename); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1478; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_t_3 = (!__pyx_t_1);
if (__pyx_t_3) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1456
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1479
* parser = __GLOBAL_PARSER_CONTEXT.getDefaultParser()
* if not filename:
* c_filename = NULL # <<<<<<<<<<<<<<
}
/*else*/ {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1458
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1481
* c_filename = NULL
* else:
* filename_utf = _encodeFilenameUTF8(filename) # <<<<<<<<<<<<<<
* c_filename = _cstr(filename_utf)
* if isinstance(text, unicode):
*/
- __pyx_t_2 = __pyx_f_4lxml_5etree__encodeFilenameUTF8(__pyx_v_filename); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1458; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __pyx_f_4lxml_5etree__encodeFilenameUTF8(__pyx_v_filename); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1481; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_v_filename_utf = __pyx_t_2;
__pyx_t_2 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1459
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1482
* else:
* filename_utf = _encodeFilenameUTF8(filename)
* c_filename = _cstr(filename_utf) # <<<<<<<<<<<<<<
}
__pyx_L4:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1460
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1483
* filename_utf = _encodeFilenameUTF8(filename)
* c_filename = _cstr(filename_utf)
* if isinstance(text, unicode): # <<<<<<<<<<<<<<
__pyx_t_3 = PyUnicode_Check(__pyx_v_text);
if (__pyx_t_3) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1461
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1484
* c_filename = _cstr(filename_utf)
* if isinstance(text, unicode):
* c_len = python.PyUnicode_GET_DATA_SIZE(text) # <<<<<<<<<<<<<<
*/
__pyx_v_c_len = PyUnicode_GET_DATA_SIZE(__pyx_v_text);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1462
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1485
* if isinstance(text, unicode):
* c_len = python.PyUnicode_GET_DATA_SIZE(text)
* if c_len > limits.INT_MAX: # <<<<<<<<<<<<<<
__pyx_t_3 = (__pyx_v_c_len > INT_MAX);
if (__pyx_t_3) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1464
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1487
* if c_len > limits.INT_MAX:
* return (<_BaseParser>parser)._parseDocFromFilelike(
* StringIO(text), filename) # <<<<<<<<<<<<<<
* return (<_BaseParser>parser)._parseUnicodeDoc(text, c_filename)
* else:
*/
- __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1464; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1487; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__Pyx_INCREF(__pyx_v_text);
PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_text);
__Pyx_GIVEREF(__pyx_v_text);
- __pyx_t_4 = PyObject_Call(__pyx_v_4lxml_5etree_StringIO, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1464; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = PyObject_Call(__pyx_v_4lxml_5etree_StringIO, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1487; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
- __pyx_t_5 = ((struct __pyx_vtabstruct_4lxml_5etree__BaseParser *)((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_v_parser)->__pyx_vtab)->_parseDocFromFilelike(((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_v_parser), __pyx_t_4, __pyx_v_filename); if (unlikely(__pyx_t_5 == NULL)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1463; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = ((struct __pyx_vtabstruct_4lxml_5etree__BaseParser *)((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_v_parser)->__pyx_vtab)->_parseDocFromFilelike(((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_v_parser), __pyx_t_4, __pyx_v_filename); if (unlikely(__pyx_t_5 == NULL)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1486; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_r = __pyx_t_5;
goto __pyx_L0;
}
__pyx_L6:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1465
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1488
* return (<_BaseParser>parser)._parseDocFromFilelike(
* StringIO(text), filename)
* return (<_BaseParser>parser)._parseUnicodeDoc(text, c_filename) # <<<<<<<<<<<<<<
* else:
* c_len = python.PyBytes_GET_SIZE(text)
*/
- __pyx_t_5 = ((struct __pyx_vtabstruct_4lxml_5etree__BaseParser *)((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_v_parser)->__pyx_vtab)->_parseUnicodeDoc(((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_v_parser), __pyx_v_text, __pyx_v_c_filename); if (unlikely(__pyx_t_5 == NULL)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1465; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = ((struct __pyx_vtabstruct_4lxml_5etree__BaseParser *)((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_v_parser)->__pyx_vtab)->_parseUnicodeDoc(((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_v_parser), __pyx_v_text, __pyx_v_c_filename); if (unlikely(__pyx_t_5 == NULL)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1488; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_r = __pyx_t_5;
goto __pyx_L0;
goto __pyx_L5;
}
/*else*/ {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1467
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1490
* return (<_BaseParser>parser)._parseUnicodeDoc(text, c_filename)
* else:
* c_len = python.PyBytes_GET_SIZE(text) # <<<<<<<<<<<<<<
*/
__pyx_v_c_len = PyBytes_GET_SIZE(__pyx_v_text);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1468
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1491
* else:
* c_len = python.PyBytes_GET_SIZE(text)
* if c_len > limits.INT_MAX: # <<<<<<<<<<<<<<
__pyx_t_3 = (__pyx_v_c_len > INT_MAX);
if (__pyx_t_3) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1470
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1493
* if c_len > limits.INT_MAX:
* return (<_BaseParser>parser)._parseDocFromFilelike(
* BytesIO(text), filename) # <<<<<<<<<<<<<<
* c_text = _cstr(text)
* return (<_BaseParser>parser)._parseDoc(c_text, c_len, c_filename)
*/
- __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1470; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1493; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
__Pyx_INCREF(__pyx_v_text);
PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_text);
__Pyx_GIVEREF(__pyx_v_text);
- __pyx_t_2 = PyObject_Call(__pyx_v_4lxml_5etree_BytesIO, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1470; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyObject_Call(__pyx_v_4lxml_5etree_BytesIO, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1493; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
- __pyx_t_5 = ((struct __pyx_vtabstruct_4lxml_5etree__BaseParser *)((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_v_parser)->__pyx_vtab)->_parseDocFromFilelike(((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_v_parser), __pyx_t_2, __pyx_v_filename); if (unlikely(__pyx_t_5 == NULL)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1469; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = ((struct __pyx_vtabstruct_4lxml_5etree__BaseParser *)((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_v_parser)->__pyx_vtab)->_parseDocFromFilelike(((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_v_parser), __pyx_t_2, __pyx_v_filename); if (unlikely(__pyx_t_5 == NULL)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_r = __pyx_t_5;
goto __pyx_L0;
}
__pyx_L7:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1471
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1494
* return (<_BaseParser>parser)._parseDocFromFilelike(
* BytesIO(text), filename)
* c_text = _cstr(text) # <<<<<<<<<<<<<<
*/
__pyx_v_c_text = PyBytes_AS_STRING(__pyx_v_text);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1472
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1495
* BytesIO(text), filename)
* c_text = _cstr(text)
* return (<_BaseParser>parser)._parseDoc(c_text, c_len, c_filename) # <<<<<<<<<<<<<<
*
* cdef xmlDoc* _parseDocFromFile(filename8, _BaseParser parser) except NULL:
*/
- __pyx_t_5 = ((struct __pyx_vtabstruct_4lxml_5etree__BaseParser *)((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_v_parser)->__pyx_vtab)->_parseDoc(((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_v_parser), __pyx_v_c_text, __pyx_v_c_len, __pyx_v_c_filename); if (unlikely(__pyx_t_5 == NULL)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1472; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = ((struct __pyx_vtabstruct_4lxml_5etree__BaseParser *)((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_v_parser)->__pyx_vtab)->_parseDoc(((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_v_parser), __pyx_v_c_text, __pyx_v_c_len, __pyx_v_c_filename); if (unlikely(__pyx_t_5 == NULL)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1495; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_r = __pyx_t_5;
goto __pyx_L0;
}
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1474
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1497
* return (<_BaseParser>parser)._parseDoc(c_text, c_len, c_filename)
*
* cdef xmlDoc* _parseDocFromFile(filename8, _BaseParser parser) except NULL: # <<<<<<<<<<<<<<
__Pyx_RefNannySetupContext("_parseDocFromFile", 0);
__Pyx_INCREF((PyObject *)__pyx_v_parser);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1475
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1498
*
* cdef xmlDoc* _parseDocFromFile(filename8, _BaseParser parser) except NULL:
* if parser is None: # <<<<<<<<<<<<<<
__pyx_t_1 = (((PyObject *)__pyx_v_parser) == Py_None);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1476
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1499
* cdef xmlDoc* _parseDocFromFile(filename8, _BaseParser parser) except NULL:
* if parser is None:
* parser = __GLOBAL_PARSER_CONTEXT.getDefaultParser() # <<<<<<<<<<<<<<
* return (<_BaseParser>parser)._parseDocFromFile(_cstr(filename8))
*
*/
- __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree_24_ParserDictionaryContext_getDefaultParser(__pyx_v_4lxml_5etree___GLOBAL_PARSER_CONTEXT)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1476; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree_24_ParserDictionaryContext_getDefaultParser(__pyx_v_4lxml_5etree___GLOBAL_PARSER_CONTEXT)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1499; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(((PyObject *)__pyx_v_parser));
__pyx_v_parser = ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_t_2);
}
__pyx_L3:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1477
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1500
* if parser is None:
* parser = __GLOBAL_PARSER_CONTEXT.getDefaultParser()
* return (<_BaseParser>parser)._parseDocFromFile(_cstr(filename8)) # <<<<<<<<<<<<<<
*
* cdef xmlDoc* _parseDocFromFilelike(source, filename,
*/
- __pyx_t_3 = ((struct __pyx_vtabstruct_4lxml_5etree__BaseParser *)((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_v_parser)->__pyx_vtab)->_parseDocFromFile(((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_v_parser), PyBytes_AS_STRING(__pyx_v_filename8)); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1477; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = ((struct __pyx_vtabstruct_4lxml_5etree__BaseParser *)((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_v_parser)->__pyx_vtab)->_parseDocFromFile(((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_v_parser), PyBytes_AS_STRING(__pyx_v_filename8)); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1500; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_r = __pyx_t_3;
goto __pyx_L0;
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1479
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1502
* return (<_BaseParser>parser)._parseDocFromFile(_cstr(filename8))
*
* cdef xmlDoc* _parseDocFromFilelike(source, filename, # <<<<<<<<<<<<<<
__Pyx_RefNannySetupContext("_parseDocFromFilelike", 0);
__Pyx_INCREF((PyObject *)__pyx_v_parser);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1481
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1504
* cdef xmlDoc* _parseDocFromFilelike(source, filename,
* _BaseParser parser) except NULL:
* if parser is None: # <<<<<<<<<<<<<<
__pyx_t_1 = (((PyObject *)__pyx_v_parser) == Py_None);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1482
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1505
* _BaseParser parser) except NULL:
* if parser is None:
* parser = __GLOBAL_PARSER_CONTEXT.getDefaultParser() # <<<<<<<<<<<<<<
* return (<_BaseParser>parser)._parseDocFromFilelike(source, filename)
*
*/
- __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree_24_ParserDictionaryContext_getDefaultParser(__pyx_v_4lxml_5etree___GLOBAL_PARSER_CONTEXT)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1482; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree_24_ParserDictionaryContext_getDefaultParser(__pyx_v_4lxml_5etree___GLOBAL_PARSER_CONTEXT)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1505; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(((PyObject *)__pyx_v_parser));
__pyx_v_parser = ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_t_2);
}
__pyx_L3:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1483
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1506
* if parser is None:
* parser = __GLOBAL_PARSER_CONTEXT.getDefaultParser()
* return (<_BaseParser>parser)._parseDocFromFilelike(source, filename) # <<<<<<<<<<<<<<
*
* cdef xmlDoc* _newXMLDoc() except NULL:
*/
- __pyx_t_3 = ((struct __pyx_vtabstruct_4lxml_5etree__BaseParser *)((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_v_parser)->__pyx_vtab)->_parseDocFromFilelike(((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_v_parser), __pyx_v_source, __pyx_v_filename); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1483; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = ((struct __pyx_vtabstruct_4lxml_5etree__BaseParser *)((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_v_parser)->__pyx_vtab)->_parseDocFromFilelike(((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_v_parser), __pyx_v_source, __pyx_v_filename); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1506; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_r = __pyx_t_3;
goto __pyx_L0;
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1485
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1508
* return (<_BaseParser>parser)._parseDocFromFilelike(source, filename)
*
* cdef xmlDoc* _newXMLDoc() except NULL: # <<<<<<<<<<<<<<
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("_newXMLDoc", 0);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1487
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1510
* cdef xmlDoc* _newXMLDoc() except NULL:
* cdef xmlDoc* result
* result = tree.xmlNewDoc(NULL) # <<<<<<<<<<<<<<
*/
__pyx_v_result = xmlNewDoc(NULL);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1488
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1511
* cdef xmlDoc* result
* result = tree.xmlNewDoc(NULL)
* if result is NULL: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_v_result == NULL);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1489
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1512
* result = tree.xmlNewDoc(NULL)
* if result is NULL:
* raise MemoryError() # <<<<<<<<<<<<<<
* if result.encoding is NULL:
* result.encoding = tree.xmlStrdup(<unsigned char*>"UTF-8")
*/
- PyErr_NoMemory(); {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1489; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyErr_NoMemory(); {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1512; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L3;
}
__pyx_L3:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1490
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1513
* if result is NULL:
* raise MemoryError()
* if result.encoding is NULL: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_v_result->encoding == NULL);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1491
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1514
* raise MemoryError()
* if result.encoding is NULL:
* result.encoding = tree.xmlStrdup(<unsigned char*>"UTF-8") # <<<<<<<<<<<<<<
* __GLOBAL_PARSER_CONTEXT.initDocDict(result)
* return result
*/
- __pyx_v_result->encoding = xmlStrdup(((unsigned char *)((unsigned char *)__pyx_k_101)));
+ __pyx_v_result->encoding = xmlStrdup(((unsigned char *)((unsigned char *)__pyx_k_105)));
goto __pyx_L4;
}
__pyx_L4:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1492
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1515
* if result.encoding is NULL:
* result.encoding = tree.xmlStrdup(<unsigned char*>"UTF-8")
* __GLOBAL_PARSER_CONTEXT.initDocDict(result) # <<<<<<<<<<<<<<
*/
__pyx_f_4lxml_5etree_24_ParserDictionaryContext_initDocDict(__pyx_v_4lxml_5etree___GLOBAL_PARSER_CONTEXT, __pyx_v_result);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1493
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1516
* result.encoding = tree.xmlStrdup(<unsigned char*>"UTF-8")
* __GLOBAL_PARSER_CONTEXT.initDocDict(result)
* return result # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1495
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1518
* return result
*
* cdef xmlDoc* _newHTMLDoc() except NULL: # <<<<<<<<<<<<<<
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("_newHTMLDoc", 0);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1497
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1520
* cdef xmlDoc* _newHTMLDoc() except NULL:
* cdef xmlDoc* result
* result = tree.htmlNewDoc(NULL, NULL) # <<<<<<<<<<<<<<
*/
__pyx_v_result = htmlNewDoc(NULL, NULL);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1498
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1521
* cdef xmlDoc* result
* result = tree.htmlNewDoc(NULL, NULL)
* if result is NULL: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_v_result == NULL);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1499
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1522
* result = tree.htmlNewDoc(NULL, NULL)
* if result is NULL:
* raise MemoryError() # <<<<<<<<<<<<<<
* __GLOBAL_PARSER_CONTEXT.initDocDict(result)
* return result
*/
- PyErr_NoMemory(); {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1499; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyErr_NoMemory(); {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1522; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L3;
}
__pyx_L3:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1500
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1523
* if result is NULL:
* raise MemoryError()
* __GLOBAL_PARSER_CONTEXT.initDocDict(result) # <<<<<<<<<<<<<<
*/
__pyx_f_4lxml_5etree_24_ParserDictionaryContext_initDocDict(__pyx_v_4lxml_5etree___GLOBAL_PARSER_CONTEXT, __pyx_v_result);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1501
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1524
* raise MemoryError()
* __GLOBAL_PARSER_CONTEXT.initDocDict(result)
* return result # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1503
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1526
* return result
*
* cdef xmlDoc* _copyDoc(xmlDoc* c_doc, int recursive) except NULL: # <<<<<<<<<<<<<<
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("_copyDoc", 0);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1505
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1528
* cdef xmlDoc* _copyDoc(xmlDoc* c_doc, int recursive) except NULL:
* cdef xmlDoc* result
* if recursive: # <<<<<<<<<<<<<<
*/
if (__pyx_v_recursive) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1506
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1529
* cdef xmlDoc* result
* if recursive:
* with nogil: # <<<<<<<<<<<<<<
*/
{
#ifdef WITH_THREAD
- PyThreadState *_save = NULL;
- #endif
+ PyThreadState *_save;
Py_UNBLOCK_THREADS
+ #endif
/*try:*/ {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1507
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1530
* if recursive:
* with nogil:
* result = tree.xmlCopyDoc(c_doc, recursive) # <<<<<<<<<<<<<<
__pyx_v_result = xmlCopyDoc(__pyx_v_c_doc, __pyx_v_recursive);
}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1506
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1529
* cdef xmlDoc* result
* if recursive:
* with nogil: # <<<<<<<<<<<<<<
* else:
*/
/*finally:*/ {
+ #ifdef WITH_THREAD
Py_BLOCK_THREADS
+ #endif
}
}
goto __pyx_L3;
}
/*else*/ {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1509
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1532
* result = tree.xmlCopyDoc(c_doc, recursive)
* else:
* result = tree.xmlCopyDoc(c_doc, 0) # <<<<<<<<<<<<<<
}
__pyx_L3:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1510
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1533
* else:
* result = tree.xmlCopyDoc(c_doc, 0)
* if result is NULL: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_v_result == NULL);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1511
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1534
* result = tree.xmlCopyDoc(c_doc, 0)
* if result is NULL:
* raise MemoryError() # <<<<<<<<<<<<<<
* __GLOBAL_PARSER_CONTEXT.initDocDict(result)
* return result
*/
- PyErr_NoMemory(); {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1511; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyErr_NoMemory(); {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1534; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L7;
}
__pyx_L7:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1512
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1535
* if result is NULL:
* raise MemoryError()
* __GLOBAL_PARSER_CONTEXT.initDocDict(result) # <<<<<<<<<<<<<<
*/
__pyx_f_4lxml_5etree_24_ParserDictionaryContext_initDocDict(__pyx_v_4lxml_5etree___GLOBAL_PARSER_CONTEXT, __pyx_v_result);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1513
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1536
* raise MemoryError()
* __GLOBAL_PARSER_CONTEXT.initDocDict(result)
* return result # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1515
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1538
* return result
*
* cdef xmlDoc* _copyDocRoot(xmlDoc* c_doc, xmlNode* c_new_root) except NULL: # <<<<<<<<<<<<<<
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("_copyDocRoot", 0);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1519
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1542
* cdef xmlDoc* result
* cdef xmlNode* c_node
* result = tree.xmlCopyDoc(c_doc, 0) # non recursive # <<<<<<<<<<<<<<
*/
__pyx_v_result = xmlCopyDoc(__pyx_v_c_doc, 0);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1520
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1543
* cdef xmlNode* c_node
* result = tree.xmlCopyDoc(c_doc, 0) # non recursive
* __GLOBAL_PARSER_CONTEXT.initDocDict(result) # <<<<<<<<<<<<<<
*/
__pyx_f_4lxml_5etree_24_ParserDictionaryContext_initDocDict(__pyx_v_4lxml_5etree___GLOBAL_PARSER_CONTEXT, __pyx_v_result);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1521
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1544
* result = tree.xmlCopyDoc(c_doc, 0) # non recursive
* __GLOBAL_PARSER_CONTEXT.initDocDict(result)
* with nogil: # <<<<<<<<<<<<<<
*/
{
#ifdef WITH_THREAD
- PyThreadState *_save = NULL;
- #endif
+ PyThreadState *_save;
Py_UNBLOCK_THREADS
+ #endif
/*try:*/ {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1522
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1545
* __GLOBAL_PARSER_CONTEXT.initDocDict(result)
* with nogil:
* c_node = tree.xmlDocCopyNode(c_new_root, result, 1) # recursive # <<<<<<<<<<<<<<
__pyx_v_c_node = xmlDocCopyNode(__pyx_v_c_new_root, __pyx_v_result, 1);
}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1521
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1544
* result = tree.xmlCopyDoc(c_doc, 0) # non recursive
* __GLOBAL_PARSER_CONTEXT.initDocDict(result)
* with nogil: # <<<<<<<<<<<<<<
* if c_node is NULL:
*/
/*finally:*/ {
+ #ifdef WITH_THREAD
Py_BLOCK_THREADS
+ #endif
}
}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1523
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1546
* with nogil:
* c_node = tree.xmlDocCopyNode(c_new_root, result, 1) # recursive
* if c_node is NULL: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_v_c_node == NULL);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1524
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1547
* c_node = tree.xmlDocCopyNode(c_new_root, result, 1) # recursive
* if c_node is NULL:
* raise MemoryError() # <<<<<<<<<<<<<<
* tree.xmlDocSetRootElement(result, c_node)
* _copyTail(c_new_root.next, c_node)
*/
- PyErr_NoMemory(); {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1524; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyErr_NoMemory(); {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1547; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L6;
}
__pyx_L6:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1525
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1548
* if c_node is NULL:
* raise MemoryError()
* tree.xmlDocSetRootElement(result, c_node) # <<<<<<<<<<<<<<
*/
xmlDocSetRootElement(__pyx_v_result, __pyx_v_c_node);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1526
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1549
* raise MemoryError()
* tree.xmlDocSetRootElement(result, c_node)
* _copyTail(c_new_root.next, c_node) # <<<<<<<<<<<<<<
* return result
*
*/
- __pyx_t_2 = __pyx_f_4lxml_5etree__copyTail(__pyx_v_c_new_root->next, __pyx_v_c_node); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1526; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __pyx_f_4lxml_5etree__copyTail(__pyx_v_c_new_root->next, __pyx_v_c_node); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1549; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1527
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1550
* tree.xmlDocSetRootElement(result, c_node)
* _copyTail(c_new_root.next, c_node)
* return result # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1529
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1552
* return result
*
* cdef xmlNode* _copyNodeToDoc(xmlNode* c_node, xmlDoc* c_doc) except NULL: # <<<<<<<<<<<<<<
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("_copyNodeToDoc", 0);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1532
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1555
* u"Recursively copy the element into the document. c_doc is not modified."
* cdef xmlNode* c_root
* c_root = tree.xmlDocCopyNode(c_node, c_doc, 1) # recursive # <<<<<<<<<<<<<<
*/
__pyx_v_c_root = xmlDocCopyNode(__pyx_v_c_node, __pyx_v_c_doc, 1);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1533
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1556
* cdef xmlNode* c_root
* c_root = tree.xmlDocCopyNode(c_node, c_doc, 1) # recursive
* if c_root is NULL: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_v_c_root == NULL);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1534
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1557
* c_root = tree.xmlDocCopyNode(c_node, c_doc, 1) # recursive
* if c_root is NULL:
* raise MemoryError() # <<<<<<<<<<<<<<
* _copyTail(c_node.next, c_root)
* return c_root
*/
- PyErr_NoMemory(); {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1534; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyErr_NoMemory(); {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1557; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L3;
}
__pyx_L3:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1535
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1558
* if c_root is NULL:
* raise MemoryError()
* _copyTail(c_node.next, c_root) # <<<<<<<<<<<<<<
* return c_root
*
*/
- __pyx_t_2 = __pyx_f_4lxml_5etree__copyTail(__pyx_v_c_node->next, __pyx_v_c_root); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1535; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __pyx_f_4lxml_5etree__copyTail(__pyx_v_c_node->next, __pyx_v_c_root); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1558; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1536
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1559
* raise MemoryError()
* _copyTail(c_node.next, c_root)
* return c_root # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1544
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1567
* ############################################################
*
* cdef _Document _parseDocument(source, _BaseParser parser, base_url): # <<<<<<<<<<<<<<
__Pyx_RefNannySetupContext("_parseDocument", 0);
__Pyx_INCREF(__pyx_v_base_url);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1546
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1569
* cdef _Document _parseDocument(source, _BaseParser parser, base_url):
* cdef _Document doc
* if _isString(source): # <<<<<<<<<<<<<<
__pyx_t_1 = _isString(__pyx_v_source);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1548
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1571
* if _isString(source):
* # parse the file directly from the filesystem
* doc = _parseDocumentFromURL(_encodeFilename(source), parser) # <<<<<<<<<<<<<<
* # fix base URL if requested
* if base_url is not None:
*/
- __pyx_t_2 = __pyx_f_4lxml_5etree__encodeFilename(__pyx_v_source); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1548; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __pyx_f_4lxml_5etree__encodeFilename(__pyx_v_source); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1571; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__parseDocumentFromURL(__pyx_t_2, __pyx_v_parser)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1548; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__parseDocumentFromURL(__pyx_t_2, __pyx_v_parser)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1571; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_v_doc = ((struct LxmlDocument *)__pyx_t_3);
__pyx_t_3 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1550
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1573
* doc = _parseDocumentFromURL(_encodeFilename(source), parser)
* # fix base URL if requested
* if base_url is not None: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_v_base_url != Py_None);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1551
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1574
* # fix base URL if requested
* if base_url is not None:
* base_url = _encodeFilenameUTF8(base_url) # <<<<<<<<<<<<<<
* if doc._c_doc.URL is not NULL:
* tree.xmlFree(<char*>doc._c_doc.URL)
*/
- __pyx_t_3 = __pyx_f_4lxml_5etree__encodeFilenameUTF8(__pyx_v_base_url); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1551; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __pyx_f_4lxml_5etree__encodeFilenameUTF8(__pyx_v_base_url); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1574; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_v_base_url);
__pyx_v_base_url = __pyx_t_3;
__pyx_t_3 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1552
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1575
* if base_url is not None:
* base_url = _encodeFilenameUTF8(base_url)
* if doc._c_doc.URL is not NULL: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_v_doc->_c_doc->URL != NULL);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1553
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1576
* base_url = _encodeFilenameUTF8(base_url)
* if doc._c_doc.URL is not NULL:
* tree.xmlFree(<char*>doc._c_doc.URL) # <<<<<<<<<<<<<<
}
__pyx_L5:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1554
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1577
* if doc._c_doc.URL is not NULL:
* tree.xmlFree(<char*>doc._c_doc.URL)
* doc._c_doc.URL = tree.xmlStrdup(_xcstr(base_url)) # <<<<<<<<<<<<<<
}
__pyx_L4:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1555
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1578
* tree.xmlFree(<char*>doc._c_doc.URL)
* doc._c_doc.URL = tree.xmlStrdup(_xcstr(base_url))
* return doc # <<<<<<<<<<<<<<
}
__pyx_L3:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1557
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1580
* return doc
*
* if base_url is not None: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_v_base_url != Py_None);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1558
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1581
*
* if base_url is not None:
* url = base_url # <<<<<<<<<<<<<<
}
/*else*/ {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1560
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1583
* url = base_url
* else:
* url = _getFilenameForFile(source) # <<<<<<<<<<<<<<
*
* if hasattr(source, u'getvalue') and hasattr(source, u'tell'):
*/
- __pyx_t_3 = __pyx_f_4lxml_5etree__getFilenameForFile(__pyx_v_source); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1560; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __pyx_f_4lxml_5etree__getFilenameForFile(__pyx_v_source); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1583; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__pyx_v_url = __pyx_t_3;
__pyx_t_3 = 0;
}
__pyx_L6:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1562
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1585
* url = _getFilenameForFile(source)
*
* if hasattr(source, u'getvalue') and hasattr(source, u'tell'): # <<<<<<<<<<<<<<
* # StringIO - reading from start?
* if source.tell() == 0:
*/
- __pyx_t_1 = PyObject_HasAttr(__pyx_v_source, ((PyObject *)__pyx_n_u__getvalue)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1562; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyObject_HasAttr(__pyx_v_source, ((PyObject *)__pyx_n_u__getvalue)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1585; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
if (__pyx_t_1) {
- __pyx_t_4 = PyObject_HasAttr(__pyx_v_source, ((PyObject *)__pyx_n_u__tell)); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1562; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = PyObject_HasAttr(__pyx_v_source, ((PyObject *)__pyx_n_u__tell)); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1585; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_t_5 = __pyx_t_4;
} else {
__pyx_t_5 = __pyx_t_1;
}
if (__pyx_t_5) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1564
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1587
* if hasattr(source, u'getvalue') and hasattr(source, u'tell'):
* # StringIO - reading from start?
* if source.tell() == 0: # <<<<<<<<<<<<<<
* return _parseMemoryDocument(
* source.getvalue(), _encodeFilenameUTF8(url), parser)
*/
- __pyx_t_3 = PyObject_GetAttr(__pyx_v_source, __pyx_n_s__tell); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1564; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_source, __pyx_n_s__tell); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1587; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_2 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1564; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1587; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- __pyx_t_3 = PyObject_RichCompare(__pyx_t_2, __pyx_int_0, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1564; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyObject_RichCompare(__pyx_t_2, __pyx_int_0, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1587; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1564; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1587; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (__pyx_t_5) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1565
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1588
* # StringIO - reading from start?
* if source.tell() == 0:
* return _parseMemoryDocument( # <<<<<<<<<<<<<<
*/
__Pyx_XDECREF(((PyObject *)__pyx_r));
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1566
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1589
* if source.tell() == 0:
* return _parseMemoryDocument(
* source.getvalue(), _encodeFilenameUTF8(url), parser) # <<<<<<<<<<<<<<
*
* # Support for file-like objects (urlgrabber.urlopen, ...)
*/
- __pyx_t_3 = PyObject_GetAttr(__pyx_v_source, __pyx_n_s__getvalue); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1566; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_source, __pyx_n_s__getvalue); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1589; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_2 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1566; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1589; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- __pyx_t_3 = __pyx_f_4lxml_5etree__encodeFilenameUTF8(__pyx_v_url); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1566; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __pyx_f_4lxml_5etree__encodeFilenameUTF8(__pyx_v_url); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1589; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_6 = ((PyObject *)__pyx_f_4lxml_5etree__parseMemoryDocument(__pyx_t_2, __pyx_t_3, __pyx_v_parser)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1565; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = ((PyObject *)__pyx_f_4lxml_5etree__parseMemoryDocument(__pyx_t_2, __pyx_t_3, __pyx_v_parser)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1588; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
__pyx_L7:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1569
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1592
*
* # Support for file-like objects (urlgrabber.urlopen, ...)
* if hasattr(source, u'read'): # <<<<<<<<<<<<<<
* return _parseFilelikeDocument(
* source, _encodeFilenameUTF8(url), parser)
*/
- __pyx_t_5 = PyObject_HasAttr(__pyx_v_source, ((PyObject *)__pyx_n_u__read)); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1569; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = PyObject_HasAttr(__pyx_v_source, ((PyObject *)__pyx_n_u__read)); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1592; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
if (__pyx_t_5) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1570
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1593
* # Support for file-like objects (urlgrabber.urlopen, ...)
* if hasattr(source, u'read'):
* return _parseFilelikeDocument( # <<<<<<<<<<<<<<
*/
__Pyx_XDECREF(((PyObject *)__pyx_r));
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1571
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1594
* if hasattr(source, u'read'):
* return _parseFilelikeDocument(
* source, _encodeFilenameUTF8(url), parser) # <<<<<<<<<<<<<<
*
* raise TypeError, u"cannot parse from '%s'" % python._fqtypename(source).decode('UTF-8')
*/
- __pyx_t_6 = __pyx_f_4lxml_5etree__encodeFilenameUTF8(__pyx_v_url); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1571; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __pyx_f_4lxml_5etree__encodeFilenameUTF8(__pyx_v_url); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1594; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
- __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__parseFilelikeDocument(__pyx_v_source, __pyx_t_6, __pyx_v_parser)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1570; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__parseFilelikeDocument(__pyx_v_source, __pyx_t_6, __pyx_v_parser)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1593; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_r = ((struct LxmlDocument *)__pyx_t_3);
}
__pyx_L9:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1573
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1596
* source, _encodeFilenameUTF8(url), parser)
*
* raise TypeError, u"cannot parse from '%s'" % python._fqtypename(source).decode('UTF-8') # <<<<<<<<<<<<<<
* cdef _Document _parseDocumentFromURL(url, _BaseParser parser):
*/
__pyx_t_7 = _fqtypename(__pyx_v_source);
- __pyx_t_3 = ((PyObject *)__Pyx_decode_c_string(__pyx_t_7, 0, strlen(__pyx_t_7), NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1573; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = ((PyObject *)__Pyx_decode_c_string(__pyx_t_7, 0, strlen(__pyx_t_7), NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1596; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_3));
- __pyx_t_6 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_208), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1573; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_217), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1596; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_6));
__Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
__Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_t_6), 0, 0);
__Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
- {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1573; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1596; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_r = ((struct LxmlDocument *)Py_None); __Pyx_INCREF(Py_None);
goto __pyx_L0;
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1575
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1598
* raise TypeError, u"cannot parse from '%s'" % python._fqtypename(source).decode('UTF-8')
*
* cdef _Document _parseDocumentFromURL(url, _BaseParser parser): # <<<<<<<<<<<<<<
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("_parseDocumentFromURL", 0);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1577
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1600
* cdef _Document _parseDocumentFromURL(url, _BaseParser parser):
* cdef xmlDoc* c_doc
* c_doc = _parseDocFromFile(url, parser) # <<<<<<<<<<<<<<
* return _documentFactory(c_doc, parser)
*
*/
- __pyx_t_1 = __pyx_f_4lxml_5etree__parseDocFromFile(__pyx_v_url, __pyx_v_parser); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1577; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __pyx_f_4lxml_5etree__parseDocFromFile(__pyx_v_url, __pyx_v_parser); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1600; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_v_c_doc = __pyx_t_1;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1578
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1601
* cdef xmlDoc* c_doc
* c_doc = _parseDocFromFile(url, parser)
* return _documentFactory(c_doc, parser) # <<<<<<<<<<<<<<
* cdef _Document _parseMemoryDocument(text, url, _BaseParser 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_filename = __pyx_f[5]; __pyx_lineno = 1578; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[5]; __pyx_lineno = 1601; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_r = ((struct LxmlDocument *)__pyx_t_2);
__pyx_t_2 = 0;
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1580
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1603
* return _documentFactory(c_doc, parser)
*
* cdef _Document _parseMemoryDocument(text, url, _BaseParser parser): # <<<<<<<<<<<<<<
__Pyx_INCREF(__pyx_v_text);
__Pyx_INCREF(__pyx_v_url);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1582
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1605
* cdef _Document _parseMemoryDocument(text, url, _BaseParser parser):
* cdef xmlDoc* c_doc
* if isinstance(text, unicode): # <<<<<<<<<<<<<<
__pyx_t_1 = PyUnicode_Check(__pyx_v_text);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1583
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1606
* cdef xmlDoc* c_doc
* if isinstance(text, unicode):
* if _hasEncodingDeclaration(text): # <<<<<<<<<<<<<<
__pyx_t_1 = __pyx_f_4lxml_5etree__hasEncodingDeclaration(__pyx_v_text);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1584
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1607
* if isinstance(text, unicode):
* if _hasEncodingDeclaration(text):
* raise ValueError( # <<<<<<<<<<<<<<
* u"Unicode strings with encoding declaration are not supported. "
* u"Please use bytes input or XML fragments without declaration.")
*/
- __pyx_t_2 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_210), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1584; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_219), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1607; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[5]; __pyx_lineno = 1584; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1607; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L4;
}
__pyx_L4:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1588
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1611
* u"Please use bytes input or XML fragments without declaration.")
* # pass native unicode only if libxml2 can handle it
* if _UNICODE_ENCODING is NULL: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_v_4lxml_5etree__UNICODE_ENCODING == NULL);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1589
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1612
* # pass native unicode only if libxml2 can handle it
* if _UNICODE_ENCODING is NULL:
* text = (<unicode>text).encode('utf8') # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_text == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "encode");
- {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1589; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1612; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
- __pyx_t_2 = ((PyObject *)PyUnicode_AsUTF8String(((PyObject*)__pyx_v_text))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1589; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = ((PyObject *)PyUnicode_AsUTF8String(((PyObject*)__pyx_v_text))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1612; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_2));
__Pyx_DECREF(__pyx_v_text);
__pyx_v_text = ((PyObject *)__pyx_t_2);
goto __pyx_L3;
}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1590
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1613
* if _UNICODE_ENCODING is NULL:
* text = (<unicode>text).encode('utf8')
* elif not isinstance(text, bytes): # <<<<<<<<<<<<<<
__pyx_t_3 = (!__pyx_t_1);
if (__pyx_t_3) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1591
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1614
* text = (<unicode>text).encode('utf8')
* elif not isinstance(text, bytes):
* raise ValueError, u"can only parse strings" # <<<<<<<<<<<<<<
* if isinstance(url, unicode):
* url = (<unicode>url).encode('utf8')
*/
- __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_211), 0, 0);
- {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1591; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_220), 0, 0);
+ {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1614; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L3;
}
__pyx_L3:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1592
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1615
* elif not isinstance(text, bytes):
* raise ValueError, u"can only parse strings"
* if isinstance(url, unicode): # <<<<<<<<<<<<<<
__pyx_t_3 = PyUnicode_Check(__pyx_v_url);
if (__pyx_t_3) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1593
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1616
* raise ValueError, u"can only parse strings"
* if isinstance(url, unicode):
* url = (<unicode>url).encode('utf8') # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_url == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "encode");
- {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1593; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1616; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
- __pyx_t_2 = ((PyObject *)PyUnicode_AsUTF8String(((PyObject*)__pyx_v_url))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1593; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = ((PyObject *)PyUnicode_AsUTF8String(((PyObject*)__pyx_v_url))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1616; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_2));
__Pyx_DECREF(__pyx_v_url);
__pyx_v_url = ((PyObject *)__pyx_t_2);
}
__pyx_L6:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1594
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1617
* if isinstance(url, unicode):
* url = (<unicode>url).encode('utf8')
* c_doc = _parseDoc(text, url, parser) # <<<<<<<<<<<<<<
* return _documentFactory(c_doc, parser)
*
*/
- __pyx_t_4 = __pyx_f_4lxml_5etree__parseDoc(__pyx_v_text, __pyx_v_url, __pyx_v_parser); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1594; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __pyx_f_4lxml_5etree__parseDoc(__pyx_v_text, __pyx_v_url, __pyx_v_parser); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1617; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_v_c_doc = __pyx_t_4;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1595
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1618
* url = (<unicode>url).encode('utf8')
* c_doc = _parseDoc(text, url, parser)
* return _documentFactory(c_doc, parser) # <<<<<<<<<<<<<<
* cdef _Document _parseFilelikeDocument(source, url, _BaseParser 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_filename = __pyx_f[5]; __pyx_lineno = 1595; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[5]; __pyx_lineno = 1618; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_r = ((struct LxmlDocument *)__pyx_t_2);
__pyx_t_2 = 0;
return __pyx_r;
}
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1597
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1620
* return _documentFactory(c_doc, parser)
*
* cdef _Document _parseFilelikeDocument(source, url, _BaseParser parser): # <<<<<<<<<<<<<<
__Pyx_RefNannySetupContext("_parseFilelikeDocument", 0);
__Pyx_INCREF(__pyx_v_url);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1599
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1622
* cdef _Document _parseFilelikeDocument(source, url, _BaseParser parser):
* cdef xmlDoc* c_doc
* if isinstance(url, unicode): # <<<<<<<<<<<<<<
__pyx_t_1 = PyUnicode_Check(__pyx_v_url);
if (__pyx_t_1) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1600
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1623
* cdef xmlDoc* c_doc
* if isinstance(url, unicode):
* url = (<unicode>url).encode('utf8') # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_url == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "encode");
- {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1600; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1623; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
- __pyx_t_2 = ((PyObject *)PyUnicode_AsUTF8String(((PyObject*)__pyx_v_url))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1600; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = ((PyObject *)PyUnicode_AsUTF8String(((PyObject*)__pyx_v_url))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1623; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_2));
__Pyx_DECREF(__pyx_v_url);
__pyx_v_url = ((PyObject *)__pyx_t_2);
}
__pyx_L3:;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1601
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1624
* if isinstance(url, unicode):
* url = (<unicode>url).encode('utf8')
* c_doc = _parseDocFromFilelike(source, url, parser) # <<<<<<<<<<<<<<
* return _documentFactory(c_doc, parser)
*/
- __pyx_t_3 = __pyx_f_4lxml_5etree__parseDocFromFilelike(__pyx_v_source, __pyx_v_url, __pyx_v_parser); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1601; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __pyx_f_4lxml_5etree__parseDocFromFilelike(__pyx_v_source, __pyx_v_url, __pyx_v_parser); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1624; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_v_c_doc = __pyx_t_3;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1602
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1625
* url = (<unicode>url).encode('utf8')
* c_doc = _parseDocFromFilelike(source, url, parser)
* 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_filename = __pyx_f[5]; __pyx_lineno = 1602; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[5]; __pyx_lineno = 1625; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_r = ((struct LxmlDocument *)__pyx_t_2);
__pyx_t_2 = 0;
* else:
* value = ''
*/
- __Pyx_INCREF(((PyObject *)__pyx_kp_u_21));
+ __Pyx_INCREF(((PyObject *)__pyx_kp_u_25));
__Pyx_XDECREF(__pyx_v_value);
- __pyx_v_value = ((PyObject *)__pyx_kp_u_21);
+ __pyx_v_value = ((PyObject *)__pyx_kp_u_25);
goto __pyx_L19;
}
/*else*/ {
* else:
* value = python.PyUnicode_DecodeUTF8(
*/
- __Pyx_INCREF(((PyObject *)__pyx_kp_s_21));
+ __Pyx_INCREF(((PyObject *)__pyx_kp_s_25));
__Pyx_XDECREF(__pyx_v_value);
- __pyx_v_value = ((PyObject *)__pyx_kp_s_21);
+ __pyx_v_value = ((PyObject *)__pyx_kp_s_25);
}
__pyx_L19:;
goto __pyx_L18;
* else:
* value = ''
*/
- __Pyx_INCREF(((PyObject *)__pyx_kp_u_21));
+ __Pyx_INCREF(((PyObject *)__pyx_kp_u_25));
__Pyx_XDECREF(__pyx_v_value);
- __pyx_v_value = ((PyObject *)__pyx_kp_u_21);
+ __pyx_v_value = ((PyObject *)__pyx_kp_u_25);
goto __pyx_L17;
}
/*else*/ {
* else:
* value = funicode(c_attributes[1])
*/
- __Pyx_INCREF(((PyObject *)__pyx_kp_s_21));
+ __Pyx_INCREF(((PyObject *)__pyx_kp_s_25));
__Pyx_XDECREF(__pyx_v_value);
- __pyx_v_value = ((PyObject *)__pyx_kp_s_21);
+ __pyx_v_value = ((PyObject *)__pyx_kp_s_25);
}
__pyx_L17:;
goto __pyx_L16;
static int __pyx_pw_4lxml_5etree_11TreeBuilder_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_element_factory = 0;
PyObject *__pyx_v_parser = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
* self._last = None # last element
* self._in_tail = 0 # true if we're after an end tag
*/
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self->_element_stack), __pyx_n_s__pop); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 351; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_element_stack), __pyx_n_s__pop); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 351; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GIVEREF(__pyx_t_1);
__Pyx_GOTREF(__pyx_v_self->_element_stack_pop);
*/
__pyx_t_1 = ((PyObject *)__pyx_v_self->_data);
__Pyx_INCREF(__pyx_t_1);
- __pyx_t_3 = ((PyObject *)PyUnicode_Join(__pyx_kp_u_21, __pyx_t_1)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 360; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = ((PyObject *)PyUnicode_Join(__pyx_kp_u_25, __pyx_t_1)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 360; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_v_text = __pyx_t_3;
* else:
*/
#ifndef CYTHON_WITHOUT_ASSERTIONS
- __pyx_t_3 = PyObject_GetAttr(((PyObject *)__pyx_v_self->_last), __pyx_n_s__tail); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 362; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_last), __pyx_n_s__tail); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 362; __pyx_clineno = __LINE__; goto __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;
if (unlikely(!__pyx_t_2)) {
- PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_u_212));
+ PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_u_221));
{__pyx_filename = __pyx_f[12]; __pyx_lineno = 362; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
#endif
* else:
* assert self._last.text is None, u"internal error (text)"
*/
- if (PyObject_SetAttr(((PyObject *)__pyx_v_self->_last), __pyx_n_s__tail, __pyx_v_text) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 363; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self->_last), __pyx_n_s__tail, __pyx_v_text) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 363; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L5;
}
/*else*/ {
* del self._data[:]
*/
#ifndef CYTHON_WITHOUT_ASSERTIONS
- __pyx_t_3 = PyObject_GetAttr(((PyObject *)__pyx_v_self->_last), __pyx_n_s__text); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 365; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_last), __pyx_n_s__text); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 365; __pyx_clineno = __LINE__; goto __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;
if (unlikely(!__pyx_t_2)) {
- PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_u_213));
+ PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_u_222));
{__pyx_filename = __pyx_f[12]; __pyx_lineno = 365; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
#endif
* del self._data[:]
* return 0
*/
- if (PyObject_SetAttr(((PyObject *)__pyx_v_self->_last), __pyx_n_s__text, __pyx_v_text) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 366; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self->_last), __pyx_n_s__text, __pyx_v_text) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 366; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
__pyx_L5:;
goto __pyx_L4;
* return 0
*
*/
- if (__Pyx_PySequence_DelSlice(((PyObject *)__pyx_v_self->_data), 0, PY_SSIZE_T_MAX) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 367; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (unlikely(((PyObject *)__pyx_v_self->_data) == Py_None)) {
+ PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
+ {__pyx_filename = __pyx_f[12]; __pyx_lineno = 367; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ }
+ if (__Pyx_PyObject_DelSlice(((PyObject *)__pyx_v_self->_data), 0, 0, NULL, NULL, NULL, 0, 0, 1) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 367; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L3;
}
__pyx_L3:;
__pyx_t_1 = ((PyObject *)__pyx_v_self->_element_stack);
__Pyx_INCREF(__pyx_t_1);
if (unlikely(!(PyList_GET_SIZE(__pyx_t_1) == 0))) {
- PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_u_214));
+ PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_u_223));
{__pyx_filename = __pyx_f[12]; __pyx_lineno = 378; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
#ifndef CYTHON_WITHOUT_ASSERTIONS
__pyx_t_2 = (((PyObject *)__pyx_v_self->_last) != Py_None);
if (unlikely(!__pyx_t_2)) {
- PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_u_215));
+ PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_u_224));
{__pyx_filename = __pyx_f[12]; __pyx_lineno = 379; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
#endif
PyObject *__pyx_v_tag = 0;
PyObject *__pyx_v_attrs = 0;
PyObject *__pyx_v_nsmap = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("start (wrapper)", 0);
* self._last.tag, tag)
*/
#ifndef CYTHON_WITHOUT_ASSERTIONS
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self->_last), __pyx_n_s__tag); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_last), __pyx_n_s__tag); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_v_tag, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
* return element
*
*/
- __pyx_t_2 = PyObject_GetAttr(((PyObject *)__pyx_v_self->_last), __pyx_n_s__tag); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 407; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_last), __pyx_n_s__tag); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 407; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 407; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_tag);
__Pyx_GIVEREF(__pyx_v_tag);
__pyx_t_2 = 0;
- __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_216), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 406; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_225), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 406; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_2));
__Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_t_2));
static PyObject *__pyx_pw_4lxml_5etree_11TreeBuilder_11pi(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_target = 0;
PyObject *__pyx_v_data = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("pi (wrapper)", 0);
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
{__pyx_filename = __pyx_f[12]; __pyx_lineno = 427; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
- __pyx_t_4 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_self->_element_stack), -1, sizeof(long), PyInt_FromLong); if (!__pyx_t_4) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 427; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_self->_element_stack), -1, sizeof(long), PyInt_FromLong, 1, 1, 1); if (!__pyx_t_4) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 427; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[12]; __pyx_lineno = 427; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_t_3 = ((PyObject *)__pyx_v_self->_last);
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
{__pyx_filename = __pyx_f[12]; __pyx_lineno = 430; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
- __pyx_t_3 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_self->_element_stack), -1, sizeof(long), PyInt_FromLong); if (!__pyx_t_3) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 430; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_self->_element_stack), -1, sizeof(long), PyInt_FromLong, 1, 1, 1); if (!__pyx_t_3) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 430; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 430; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__makeSubElement(((struct LxmlElement *)__pyx_t_3), __pyx_v_tag, Py_None, Py_None, __pyx_v_attrib, __pyx_v_nsmap, Py_None)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 429; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
__pyx_t_3 = ((PyObject *)__pyx_v_self->_last);
__Pyx_INCREF(__pyx_t_3);
- __pyx_t_5 = PyList_Append(__pyx_v_self->_element_stack, __pyx_t_3); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 434; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_PyList_Append(__pyx_v_self->_element_stack, __pyx_t_3); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 434; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":435
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append");
{__pyx_filename = __pyx_f[12]; __pyx_lineno = 445; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
- __pyx_t_1 = PyList_Append(__pyx_v_self->_data, __pyx_v_data); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 445; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyList_Append(__pyx_v_self->_data, __pyx_v_data); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 445; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_r = 0;
goto __pyx_L0;
* if python.PyList_GET_SIZE(self._element_stack) > 0:
* _appendChild(self._element_stack[-1], self._last)
*/
- __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s_78); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 449; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_82); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 449; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 449; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
{__pyx_filename = __pyx_f[12]; __pyx_lineno = 451; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
- __pyx_t_4 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_self->_element_stack), -1, sizeof(long), PyInt_FromLong); if (!__pyx_t_4) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 451; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_self->_element_stack), -1, sizeof(long), PyInt_FromLong, 1, 1, 1); if (!__pyx_t_4) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 451; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[12]; __pyx_lineno = 451; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_t_3 = ((PyObject *)__pyx_v_self->_last);
* if python.PyList_GET_SIZE(self._element_stack) > 0:
* _appendChild(self._element_stack[-1], self._last)
*/
- __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__Comment); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 457; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__Comment); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 457; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 457; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
{__pyx_filename = __pyx_f[12]; __pyx_lineno = 459; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
- __pyx_t_4 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_self->_element_stack), -1, sizeof(long), PyInt_FromLong); if (!__pyx_t_4) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 459; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_self->_element_stack), -1, sizeof(long), PyInt_FromLong, 1, 1, 1); if (!__pyx_t_4) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 459; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[12]; __pyx_lineno = 459; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_t_3 = ((PyObject *)__pyx_v_self->_last);
static PyObject *__pyx_pw_4lxml_5etree_19_TargetParserResult_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_result = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
*
* @cython.final
*/
- if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__result, __pyx_v_result) < 0) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 11; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s__result, __pyx_v_result) < 0) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 11; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
static int __pyx_pw_4lxml_5etree_22_PythonSaxParserTarget_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4lxml_5etree_22_PythonSaxParserTarget_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_target = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
* if self._target_start is not None:
* event_filter = event_filter | SAX_EVENT_START
*/
- __pyx_t_4 = PyObject_GetAttr(__pyx_v_target, __pyx_n_s__start); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 29; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_target, __pyx_n_s__start); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 29; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
__Pyx_GOTREF(__pyx_t_4);
__Pyx_GIVEREF(__pyx_t_4);
__Pyx_GOTREF(__pyx_v_self->_target_start);
* self._start_takes_nsmap = 1
* except TypeError:
*/
- __pyx_t_9 = __Pyx_GetItemInt(__pyx_v_arguments, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_9) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L12_error;}
+ __pyx_t_9 = __Pyx_GetItemInt(__pyx_v_arguments, 0, sizeof(long), PyInt_FromLong, 0, 0, 1); if (!__pyx_t_9) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L12_error;}
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_10 = PyObject_Length(__pyx_t_9); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L12_error;}
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_5 = (__pyx_t_10 > 3);
if (!__pyx_t_5) {
- __pyx_t_9 = __Pyx_GetItemInt(__pyx_v_arguments, 1, sizeof(long), PyInt_FromLong); if (!__pyx_t_9) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L12_error;}
+ __pyx_t_9 = __Pyx_GetItemInt(__pyx_v_arguments, 1, sizeof(long), PyInt_FromLong, 0, 0, 1); if (!__pyx_t_9) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L12_error;}
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_11 = (__pyx_t_9 != Py_None);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
* if self._target_end is not None:
* event_filter = event_filter | SAX_EVENT_END
*/
- __pyx_t_9 = PyObject_GetAttr(__pyx_v_target, __pyx_n_s__end); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 42; __pyx_clineno = __LINE__; goto __pyx_L21_error;}
+ __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_target, __pyx_n_s__end); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 42; __pyx_clineno = __LINE__; goto __pyx_L21_error;}
__Pyx_GOTREF(__pyx_t_9);
__Pyx_GIVEREF(__pyx_t_9);
__Pyx_GOTREF(__pyx_v_self->_target_end);
* if self._target_data is not None:
* event_filter = event_filter | SAX_EVENT_DATA
*/
- __pyx_t_9 = PyObject_GetAttr(__pyx_v_target, __pyx_n_s__data); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L30_error;}
+ __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_target, __pyx_n_s__data); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L30_error;}
__Pyx_GOTREF(__pyx_t_9);
__Pyx_GIVEREF(__pyx_t_9);
__Pyx_GOTREF(__pyx_v_self->_target_data);
* if self._target_doctype is not None:
* event_filter = event_filter | SAX_EVENT_DOCTYPE
*/
- __pyx_t_9 = PyObject_GetAttr(__pyx_v_target, __pyx_n_s__doctype); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L39_error;}
+ __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_target, __pyx_n_s__doctype); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L39_error;}
__Pyx_GOTREF(__pyx_t_9);
__Pyx_GIVEREF(__pyx_t_9);
__Pyx_GOTREF(__pyx_v_self->_target_doctype);
* if self._target_pi is not None:
* event_filter = event_filter | SAX_EVENT_PI
*/
- __pyx_t_9 = PyObject_GetAttr(__pyx_v_target, __pyx_n_s__pi); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L48_error;}
+ __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_target, __pyx_n_s__pi); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L48_error;}
__Pyx_GOTREF(__pyx_t_9);
__Pyx_GIVEREF(__pyx_t_9);
__Pyx_GOTREF(__pyx_v_self->_target_pi);
* if self._target_comment is not None:
* event_filter = event_filter | SAX_EVENT_COMMENT
*/
- __pyx_t_9 = PyObject_GetAttr(__pyx_v_target, __pyx_n_s__comment); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L57_error;}
+ __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_target, __pyx_n_s__comment); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L57_error;}
__Pyx_GOTREF(__pyx_t_9);
__Pyx_GIVEREF(__pyx_t_9);
__Pyx_GOTREF(__pyx_v_self->_target_comment);
* raise
* else:
*/
- __pyx_t_11 = PyObject_GetAttr(__pyx_v_self->_python_target, __pyx_n_s__close); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 135; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
+ __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_python_target, __pyx_n_s__close); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 135; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
__Pyx_GOTREF(__pyx_t_11);
__pyx_t_12 = PyObject_Call(__pyx_t_11, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 135; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
__Pyx_GOTREF(__pyx_t_12);
* # Python 2 can't chain exceptions
* try: self._python_target.close()
*/
- __pyx_t_12 = PyObject_GetAttr(__pyx_v_4lxml_5etree_sys, __pyx_n_s__exc_info); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
+ __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_sys, __pyx_n_s__exc_info); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_11 = PyObject_Call(__pyx_t_12, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
__Pyx_GOTREF(__pyx_t_11);
__Pyx_XGOTREF(__pyx_t_14);
__Pyx_XGOTREF(__pyx_t_15);
/*try:*/ {
- __pyx_t_11 = PyObject_GetAttr(__pyx_v_self->_python_target, __pyx_n_s__close); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L16_error;}
+ __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_python_target, __pyx_n_s__close); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L16_error;}
__Pyx_GOTREF(__pyx_t_11);
__pyx_t_12 = PyObject_Call(__pyx_t_11, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L16_error;}
__Pyx_GOTREF(__pyx_t_12);
* return self._python_target.close()
*
*/
- __pyx_t_12 = __Pyx_GetItemInt(__pyx_v_exc, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_12) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
+ __pyx_t_12 = __Pyx_GetItemInt(__pyx_v_exc, 0, sizeof(long), PyInt_FromLong, 0, 0, 1); if (!__pyx_t_12) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
__Pyx_GOTREF(__pyx_t_12);
- __pyx_t_11 = __Pyx_GetItemInt(__pyx_v_exc, 1, sizeof(long), PyInt_FromLong); if (!__pyx_t_11) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
+ __pyx_t_11 = __Pyx_GetItemInt(__pyx_v_exc, 1, sizeof(long), PyInt_FromLong, 0, 0, 1); if (!__pyx_t_11) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
__Pyx_GOTREF(__pyx_t_11);
- __pyx_t_16 = __Pyx_GetItemInt(__pyx_v_exc, 2, sizeof(long), PyInt_FromLong); if (!__pyx_t_16) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
+ __pyx_t_16 = __Pyx_GetItemInt(__pyx_v_exc, 2, sizeof(long), PyInt_FromLong, 0, 0, 1); if (!__pyx_t_16) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
__Pyx_GOTREF(__pyx_t_16);
__Pyx_Raise(__pyx_t_12, __pyx_t_11, __pyx_t_16, 0);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
* cdef xmlDoc* _handleParseResultDoc(self, _BaseParser parser,
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_10 = PyObject_GetAttr(__pyx_v_self->_python_target, __pyx_n_s__close); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_python_target, __pyx_n_s__close); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_10);
__pyx_t_9 = PyObject_Call(__pyx_t_10, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_9);
* raise
* else:
*/
- __pyx_t_11 = PyObject_GetAttr(__pyx_v_self->_python_target, __pyx_n_s__close); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 159; __pyx_clineno = __LINE__; goto __pyx_L6_except_error;}
+ __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_python_target, __pyx_n_s__close); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 159; __pyx_clineno = __LINE__; goto __pyx_L6_except_error;}
__Pyx_GOTREF(__pyx_t_11);
__pyx_t_12 = PyObject_Call(__pyx_t_11, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 159; __pyx_clineno = __LINE__; goto __pyx_L6_except_error;}
__Pyx_GOTREF(__pyx_t_12);
* # Python 2 can't chain exceptions
* try: self._python_target.close()
*/
- __pyx_t_12 = PyObject_GetAttr(__pyx_v_4lxml_5etree_sys, __pyx_n_s__exc_info); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L6_except_error;}
+ __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_sys, __pyx_n_s__exc_info); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L6_except_error;}
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_11 = PyObject_Call(__pyx_t_12, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L6_except_error;}
__Pyx_GOTREF(__pyx_t_11);
__Pyx_XGOTREF(__pyx_t_14);
__Pyx_XGOTREF(__pyx_t_15);
/*try:*/ {
- __pyx_t_11 = PyObject_GetAttr(__pyx_v_self->_python_target, __pyx_n_s__close); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L16_error;}
+ __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_python_target, __pyx_n_s__close); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L16_error;}
__Pyx_GOTREF(__pyx_t_11);
__pyx_t_12 = PyObject_Call(__pyx_t_11, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L16_error;}
__Pyx_GOTREF(__pyx_t_12);
* parse_result = self._python_target.close()
* raise _TargetParserResult(parse_result)
*/
- __pyx_t_12 = __Pyx_GetItemInt(__pyx_v_exc, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_12) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L6_except_error;}
+ __pyx_t_12 = __Pyx_GetItemInt(__pyx_v_exc, 0, sizeof(long), PyInt_FromLong, 0, 0, 1); if (!__pyx_t_12) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L6_except_error;}
__Pyx_GOTREF(__pyx_t_12);
- __pyx_t_11 = __Pyx_GetItemInt(__pyx_v_exc, 1, sizeof(long), PyInt_FromLong); if (!__pyx_t_11) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L6_except_error;}
+ __pyx_t_11 = __Pyx_GetItemInt(__pyx_v_exc, 1, sizeof(long), PyInt_FromLong, 0, 0, 1); if (!__pyx_t_11) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L6_except_error;}
__Pyx_GOTREF(__pyx_t_11);
- __pyx_t_16 = __Pyx_GetItemInt(__pyx_v_exc, 2, sizeof(long), PyInt_FromLong); if (!__pyx_t_16) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L6_except_error;}
+ __pyx_t_16 = __Pyx_GetItemInt(__pyx_v_exc, 2, sizeof(long), PyInt_FromLong, 0, 0, 1); if (!__pyx_t_16) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L6_except_error;}
__Pyx_GOTREF(__pyx_t_16);
__Pyx_Raise(__pyx_t_12, __pyx_t_11, __pyx_t_16, 0);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
* parse_result = self._python_target.close() # <<<<<<<<<<<<<<
* raise _TargetParserResult(parse_result)
*/
- __pyx_t_10 = PyObject_GetAttr(__pyx_v_self->_python_target, __pyx_n_s__close); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_python_target, __pyx_n_s__close); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_10);
__pyx_t_9 = PyObject_Call(__pyx_t_10, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_9);
* parse_result = self._python_target.close()
* raise _TargetParserResult(parse_result) # <<<<<<<<<<<<<<
*/
- __pyx_t_9 = __Pyx_GetName(__pyx_m, __pyx_n_s___TargetParserResult); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_9 = __Pyx_GetModuleGlobalName(__pyx_n_s___TargetParserResult); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_10 = PyTuple_New(1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_10);
* if method == "xml":
* return OUTPUT_METHOD_XML
*/
- __pyx_t_2 = PyObject_GetAttr(__pyx_v_method, __pyx_n_s__lower); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_method, __pyx_n_s__lower); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
*
* cdef _textToString(xmlNode* c_node, encoding, bint with_tail):
*/
- __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_217), __pyx_v_method); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_226), __pyx_v_method); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_3));
__pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
*/
{
#ifdef WITH_THREAD
- PyThreadState *_save = NULL;
- #endif
+ PyThreadState *_save;
Py_UNBLOCK_THREADS
+ #endif
/*try:*/ {
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":36
* if with_tail:
*/
/*finally:*/ {
+ #ifdef WITH_THREAD
Py_BLOCK_THREADS
+ #endif
}
}
*
* try:
*/
- __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__SerialisationError); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s__SerialisationError); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
- __Pyx_Raise(__pyx_t_4, ((PyObject *)__pyx_kp_u_218), 0, 0);
+ __Pyx_Raise(__pyx_t_4, ((PyObject *)__pyx_kp_u_227), 0, 0);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
{__pyx_filename = __pyx_f[6]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L10;
* if encoding not in (u'utf8', u'utf-8'):
* if encoding == u'ascii':
*/
- __pyx_t_4 = PyObject_GetAttr(__pyx_v_encoding, __pyx_n_s__lower); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L12;}
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_encoding, __pyx_n_s__lower); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L12;}
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L12;}
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L12;}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (((int)__pyx_t_3)) {
- __pyx_t_4 = PyObject_RichCompare(__pyx_t_5, ((PyObject *)__pyx_kp_u_219), Py_NE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L12;}
+ __pyx_t_4 = PyObject_RichCompare(__pyx_t_5, ((PyObject *)__pyx_kp_u_228), Py_NE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L12;}
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L12;}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_2 = ((int)__pyx_t_1);
* else:
* text = (<unsigned char*>c_text)[:tree.xmlBufferLength(c_buffer)]
*/
- __pyx_t_7 = PyBytes_AsString(__pyx_v_encoding); if (unlikely((!__pyx_t_7) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L12;}
+ __pyx_t_7 = __Pyx_PyObject_AsString(__pyx_v_encoding); if (unlikely((!__pyx_t_7) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L12;}
__pyx_t_5 = ((PyObject *)PyUnicode_AsEncodedString(__pyx_v_text, __pyx_t_7, __pyx_k__strict)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L12;}
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_v_text);
* finally:
* tree.xmlBufferFree(c_buffer)
*/
- __pyx_t_5 = PyBytes_FromStringAndSize(((const char*)((unsigned char *)__pyx_v_c_text)) + 0, xmlBufferLength(__pyx_v_c_buffer) - 0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L12;}
+ __pyx_t_5 = __Pyx_PyBytes_FromStringAndSize(((const char*)((unsigned char *)__pyx_v_c_text)) + 0, xmlBufferLength(__pyx_v_c_buffer) - 0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L12;}
__Pyx_GOTREF(((PyObject *)__pyx_t_5));
__pyx_v_text = ((PyObject *)__pyx_t_5);
__pyx_t_5 = 0;
* raise LookupError, u"unknown encoding: '%s'" % encoding
* c_buffer = tree.xmlAllocOutputBuffer(enchandler)
*/
- __pyx_t_3 = PyObject_GetAttr(__pyx_v_encoding, __pyx_n_s__decode); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_encoding, __pyx_n_s__decode); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_6 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_k_tuple_220), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_k_tuple_229), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_v_encoding);
* c_buffer = tree.xmlAllocOutputBuffer(enchandler)
* if c_buffer is NULL:
*/
- __pyx_t_6 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_168), __pyx_v_encoding); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_177), __pyx_v_encoding); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_6));
__Pyx_Raise(__pyx_builtin_LookupError, ((PyObject *)__pyx_t_6), 0, 0);
__Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
*/
{
#ifdef WITH_THREAD
- PyThreadState *_save = NULL;
- #endif
+ PyThreadState *_save;
Py_UNBLOCK_THREADS
+ #endif
/*try:*/ {
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":122
* write_xml_declaration, write_complete_document,
*/
/*finally:*/ {
+ #ifdef WITH_THREAD
Py_BLOCK_THREADS
+ #endif
}
}
* finally:
* error_result = tree.xmlOutputBufferClose(c_buffer)
*/
- __pyx_t_6 = PyBytes_FromStringAndSize(((const char*)((unsigned char *)xmlBufContent(__pyx_v_c_result_buffer))) + 0, xmlBufUse(__pyx_v_c_result_buffer) - 0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L16;}
+ __pyx_t_6 = __Pyx_PyBytes_FromStringAndSize(((const char*)((unsigned char *)xmlBufContent(__pyx_v_c_result_buffer))) + 0, xmlBufUse(__pyx_v_c_result_buffer) - 0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L16;}
__Pyx_GOTREF(((PyObject *)__pyx_t_6));
__Pyx_INCREF(((PyObject *)((PyObject*)__pyx_t_6)));
__pyx_v_result = ((PyObject *)__pyx_t_6);
*/
{
#ifdef WITH_THREAD
- PyThreadState *_save = NULL;
- #endif
+ PyThreadState *_save;
Py_UNBLOCK_THREADS
+ #endif
/*try:*/ {
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":169
* c_doc, NULL, exclusive, c_inclusive_ns_prefixes, with_comments, &c_buffer)
*/
/*finally:*/ {
+ #ifdef WITH_THREAD
Py_BLOCK_THREADS
+ #endif
}
}
}
* try:
* result = c_buffer[:byte_count]
*/
- __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__C14NError); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 179; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s__C14NError); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 179; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
- __Pyx_Raise(__pyx_t_3, ((PyObject *)__pyx_kp_u_221), 0, 0);
+ __Pyx_Raise(__pyx_t_3, ((PyObject *)__pyx_kp_u_230), 0, 0);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
{__pyx_filename = __pyx_f[6]; __pyx_lineno = 179; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L11;
* finally:
* tree.xmlFree(c_buffer)
*/
- __pyx_t_3 = PyBytes_FromStringAndSize(((const char*)__pyx_v_c_buffer) + 0, __pyx_v_byte_count - 0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L14;}
+ __pyx_t_3 = __Pyx_PyBytes_FromStringAndSize(((const char*)__pyx_v_c_buffer) + 0, __pyx_v_byte_count - 0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L14;}
__Pyx_GOTREF(((PyObject *)__pyx_t_3));
__pyx_v_result = ((PyObject*)__pyx_t_3);
__pyx_t_3 = 0;
* if message is None:
* message = u"unknown error %d" % error_result
*/
- __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__ErrorTypes); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 189; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__ErrorTypes); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 189; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_3 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s___getName); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 189; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s___getName); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 189; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = PyInt_FromLong(__pyx_v_error_result); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 189; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
*/
__pyx_t_2 = PyInt_FromLong(__pyx_v_error_result); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 191; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_222), __pyx_t_2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 191; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_231), __pyx_t_2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 191; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_4));
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_v_message);
*
* ############################################################
*/
- __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__SerialisationError); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s__SerialisationError); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
__Pyx_Raise(__pyx_t_4, __pyx_v_message, 0, 0);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
*
* cdef void _writeNodeToBuffer(tree.xmlOutputBuffer* c_buffer,
*/
- xmlOutputBufferWriteString(__pyx_v_c_buffer, __pyx_k_46);
+ xmlOutputBufferWriteString(__pyx_v_c_buffer, __pyx_k_50);
}
*
* cdef void _writeDeclarationToBuffer(tree.xmlOutputBuffer* c_buffer,
*/
- xmlOutputBufferWrite(__pyx_v_c_buffer, 1, __pyx_k_46);
+ xmlOutputBufferWrite(__pyx_v_c_buffer, 1, __pyx_k_50);
goto __pyx_L14;
}
__pyx_L14:;
* tree.xmlOutputBufferWrite(c_buffer, 15, "<?xml version='")
* tree.xmlOutputBufferWriteString(c_buffer, <const_char*>version)
*/
- __pyx_v_version = ((unsigned char *)((unsigned char *)__pyx_k_223));
+ __pyx_v_version = ((unsigned char *)((unsigned char *)__pyx_k_232));
goto __pyx_L3;
}
__pyx_L3:;
* tree.xmlOutputBufferWriteString(c_buffer, <const_char*>version)
* tree.xmlOutputBufferWrite(c_buffer, 12, "' encoding='")
*/
- xmlOutputBufferWrite(__pyx_v_c_buffer, 15, __pyx_k_224);
+ xmlOutputBufferWrite(__pyx_v_c_buffer, 15, __pyx_k_233);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":265
* version = <unsigned char*>"1.0"
* tree.xmlOutputBufferWriteString(c_buffer, encoding)
* if standalone == 0:
*/
- xmlOutputBufferWrite(__pyx_v_c_buffer, 12, __pyx_k_225);
+ xmlOutputBufferWrite(__pyx_v_c_buffer, 12, __pyx_k_234);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":267
* tree.xmlOutputBufferWriteString(c_buffer, <const_char*>version)
* elif standalone == 1:
* tree.xmlOutputBufferWrite(c_buffer, 21, "' standalone='yes'?>\n")
*/
- xmlOutputBufferWrite(__pyx_v_c_buffer, 20, __pyx_k_226);
+ xmlOutputBufferWrite(__pyx_v_c_buffer, 20, __pyx_k_235);
break;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":270
* else:
* tree.xmlOutputBufferWrite(c_buffer, 4, "'?>\n")
*/
- xmlOutputBufferWrite(__pyx_v_c_buffer, 21, __pyx_k_227);
+ xmlOutputBufferWrite(__pyx_v_c_buffer, 21, __pyx_k_236);
break;
default:
*
* cdef void _writeDtdToBuffer(tree.xmlOutputBuffer* c_buffer,
*/
- xmlOutputBufferWrite(__pyx_v_c_buffer, 4, __pyx_k_228);
+ xmlOutputBufferWrite(__pyx_v_c_buffer, 4, __pyx_k_237);
break;
}
* tree.xmlOutputBufferWriteString(c_buffer, <const_char*>c_dtd.name)
* if c_dtd.SystemID and c_dtd.SystemID[0] != c'\0':
*/
- xmlOutputBufferWrite(__pyx_v_c_buffer, 10, __pyx_k_229);
+ xmlOutputBufferWrite(__pyx_v_c_buffer, 10, __pyx_k_238);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":286
* return
* tree.xmlOutputBufferWriteString(c_buffer, <const_char*>c_dtd.ExternalID)
* tree.xmlOutputBufferWrite(c_buffer, 3, '" "')
*/
- xmlOutputBufferWrite(__pyx_v_c_buffer, 9, __pyx_k_230);
+ xmlOutputBufferWrite(__pyx_v_c_buffer, 9, __pyx_k_239);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":290
* if c_dtd.ExternalID != NULL and c_dtd.ExternalID[0] != c'\0':
* else:
* tree.xmlOutputBufferWrite(c_buffer, 9, ' SYSTEM "')
*/
- xmlOutputBufferWrite(__pyx_v_c_buffer, 3, __pyx_k_231);
+ xmlOutputBufferWrite(__pyx_v_c_buffer, 3, __pyx_k_240);
goto __pyx_L6;
}
/*else*/ {
* tree.xmlOutputBufferWriteString(c_buffer, <const_char*>c_dtd.SystemID)
* tree.xmlOutputBufferWrite(c_buffer, 1, '"')
*/
- xmlOutputBufferWrite(__pyx_v_c_buffer, 9, __pyx_k_232);
+ xmlOutputBufferWrite(__pyx_v_c_buffer, 9, __pyx_k_241);
}
__pyx_L6:;
* if not c_dtd.entities and not c_dtd.elements and \
* not c_dtd.attributes and not c_dtd.notations and \
*/
- xmlOutputBufferWrite(__pyx_v_c_buffer, 1, __pyx_k_233);
+ xmlOutputBufferWrite(__pyx_v_c_buffer, 1, __pyx_k_242);
goto __pyx_L5;
}
__pyx_L5:;
* return
* tree.xmlOutputBufferWrite(c_buffer, 3, ' [\n')
*/
- xmlOutputBufferWrite(__pyx_v_c_buffer, 2, __pyx_k_234);
+ xmlOutputBufferWrite(__pyx_v_c_buffer, 2, __pyx_k_243);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":300
* not c_dtd.pentities:
* if c_dtd.notations and not c_buffer.error:
* c_buf = tree.xmlBufferCreate()
*/
- xmlOutputBufferWrite(__pyx_v_c_buffer, 3, __pyx_k_235);
+ xmlOutputBufferWrite(__pyx_v_c_buffer, 3, __pyx_k_244);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":302
* return
*
* cdef void _writeTail(tree.xmlOutputBuffer* c_buffer, xmlNode* c_node,
*/
- xmlOutputBufferWrite(__pyx_v_c_buffer, 3, __pyx_k_236);
+ xmlOutputBufferWrite(__pyx_v_c_buffer, 3, __pyx_k_245);
__pyx_L0:;
}
* c_sibling = c_sibling.next
*
*/
- xmlOutputBufferWriteString(__pyx_v_c_buffer, __pyx_k_46);
+ xmlOutputBufferWriteString(__pyx_v_c_buffer, __pyx_k_50);
goto __pyx_L8;
}
__pyx_L8:;
* tree.xmlNodeDumpOutput(c_buffer, c_node.doc, c_sibling, 0,
* pretty_print, encoding)
*/
- xmlOutputBufferWriteString(__pyx_v_c_buffer, __pyx_k_46);
+ xmlOutputBufferWriteString(__pyx_v_c_buffer, __pyx_k_50);
goto __pyx_L6;
}
__pyx_L6:;
PyObject *__pyx_v_filelike = 0;
PyObject *__pyx_v_exc_context = 0;
PyObject *__pyx_v_compression = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
* fileobj=filelike, mode='wb', compresslevel=compression)
* self._close_filelike = filelike.close
*/
- __pyx_t_2 = PyObject_GetAttr(__pyx_v_4lxml_5etree_gzip, __pyx_n_s__GzipFile); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_gzip, __pyx_n_s__GzipFile); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_5));
* self._filelike = filelike
* if exc_context is None:
*/
- __pyx_t_6 = PyObject_GetAttr(__pyx_v_filelike, __pyx_n_s__close); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 375; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_filelike, __pyx_n_s__close); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 375; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
__Pyx_GIVEREF(__pyx_t_6);
__Pyx_GOTREF(__pyx_v_self->_close_filelike);
* return c_buffer
*
*/
- __Pyx_Raise(__pyx_builtin_IOError, ((PyObject *)__pyx_kp_u_237), 0, 0);
+ __Pyx_Raise(__pyx_builtin_IOError, ((PyObject *)__pyx_kp_u_246), 0, 0);
{__pyx_filename = __pyx_f[6]; __pyx_lineno = 390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L3;
}
* py_buffer = <bytes>c_buffer[:size]
* self._filelike.write(py_buffer)
*/
- __Pyx_Raise(__pyx_builtin_IOError, ((PyObject *)__pyx_kp_u_238), 0, 0);
+ __Pyx_Raise(__pyx_builtin_IOError, ((PyObject *)__pyx_kp_u_247), 0, 0);
{__pyx_filename = __pyx_f[6]; __pyx_lineno = 396; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
goto __pyx_L11;
}
* self._filelike.write(py_buffer)
* return size
*/
- __pyx_t_5 = PyBytes_FromStringAndSize(((const char*)__pyx_v_c_buffer) + 0, __pyx_v_size - 0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 397; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ __pyx_t_5 = __Pyx_PyBytes_FromStringAndSize(__pyx_v_c_buffer + 0, __pyx_v_size - 0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 397; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_5));
__Pyx_INCREF(((PyObject *)((PyObject*)__pyx_t_5)));
__pyx_v_py_buffer = ((PyObject*)__pyx_t_5);
* return size
* except:
*/
- __pyx_t_5 = PyObject_GetAttr(__pyx_v_self->_filelike, __pyx_n_s__write); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 398; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_filelike, __pyx_n_s__write); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 398; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 398; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
__Pyx_GOTREF(__pyx_t_6);
* fileobj=bytes_out, mode='wb', compresslevel=compression)
* try:
*/
- __pyx_t_2 = PyObject_GetAttr(__pyx_v_4lxml_5etree_gzip, __pyx_n_s__GzipFile); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_gzip, __pyx_n_s__GzipFile); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_4));
* finally:
* gzip_file.close()
*/
- __pyx_t_5 = PyObject_GetAttr(__pyx_v_gzip_file, __pyx_n_s__write); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 450; __pyx_clineno = __LINE__; goto __pyx_L8;}
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_gzip_file, __pyx_n_s__write); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 450; __pyx_clineno = __LINE__; goto __pyx_L8;}
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 450; __pyx_clineno = __LINE__; goto __pyx_L8;}
__Pyx_GOTREF(__pyx_t_4);
goto __pyx_L9;
}
__pyx_L9:;
- __pyx_t_2 = PyObject_GetAttr(__pyx_v_gzip_file, __pyx_n_s__close); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 452; __pyx_clineno = __LINE__; goto __pyx_L10_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_gzip_file, __pyx_n_s__close); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 452; __pyx_clineno = __LINE__; goto __pyx_L10_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 452; __pyx_clineno = __LINE__; goto __pyx_L10_error;}
__Pyx_GOTREF(__pyx_t_4);
* finally:
* f.close()
*/
- __pyx_t_2 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 458; __pyx_clineno = __LINE__; goto __pyx_L14;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 458; __pyx_clineno = __LINE__; goto __pyx_L14;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 458; __pyx_clineno = __LINE__; goto __pyx_L14;}
__Pyx_GOTREF(__pyx_t_4);
goto __pyx_L15;
}
__pyx_L15:;
- __pyx_t_5 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__close); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 460; __pyx_clineno = __LINE__; goto __pyx_L16_error;}
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_n_s__close); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 460; __pyx_clineno = __LINE__; goto __pyx_L16_error;}
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_4 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 460; __pyx_clineno = __LINE__; goto __pyx_L16_error;}
__Pyx_GOTREF(__pyx_t_4);
* return
*
*/
- __pyx_t_4 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 462; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 462; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 462; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
*/
__pyx_t_3 = ((PyObject *)__Pyx_decode_c_string(__pyx_v_c_enc, 0, strlen(__pyx_v_c_enc), NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 493; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_3));
- __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_168), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_177), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_4));
__Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
- __pyx_t_2 = ((PyObject*)__pyx_t_4);
+ __pyx_t_2 = ((PyObject *)__pyx_t_4);
__pyx_t_4 = 0;
} else {
- __Pyx_INCREF(((PyObject *)__pyx_kp_u_21));
- __pyx_t_2 = __pyx_kp_u_21;
+ __Pyx_INCREF(((PyObject *)__pyx_kp_u_25));
+ __pyx_t_2 = ((PyObject *)__pyx_kp_u_25);
}
__pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
- PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_t_2));
- __Pyx_GIVEREF(((PyObject *)__pyx_t_2));
+ PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
+ __Pyx_GIVEREF(__pyx_t_2);
__pyx_t_2 = 0;
__pyx_t_2 = PyObject_Call(__pyx_builtin_LookupError, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_9 = _fqtypename(__pyx_v_f);
__pyx_t_3 = ((PyObject *)__Pyx_decode_c_string(__pyx_t_9, 0, strlen(__pyx_t_9), NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 508; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_3));
- __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_239), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 507; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
+ __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_248), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 507; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_4));
__Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
__pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 506; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
*/
{
#ifdef WITH_THREAD
- PyThreadState *_save = NULL;
- #endif
+ PyThreadState *_save;
Py_UNBLOCK_THREADS
+ #endif
/*try:*/ {
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":558
* c_doc, NULL, exclusive, c_inclusive_ns_prefixes,
*/
/*finally:*/ {
+ #ifdef WITH_THREAD
Py_BLOCK_THREADS
+ #endif
}
}
goto __pyx_L6;
* c_doc, NULL, exclusive, c_inclusive_ns_prefixes,
*/
/*with:*/ {
- __pyx_t_9 = PyObject_GetAttr(((PyObject *)__pyx_v_writer->error_log), __pyx_n_s____exit__); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L4;}
+ __pyx_t_9 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_writer->error_log), __pyx_n_s____exit__); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L4;}
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_10 = __pyx_f_4lxml_5etree_9_ErrorLog___enter__(__pyx_v_writer->error_log); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L10_error;}
/*try:*/ {
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_15);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
- if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L16_except_error;}
+ if (__pyx_t_3 < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L16_except_error;}
__pyx_t_16 = (!__pyx_t_3);
if (__pyx_t_16) {
__Pyx_GIVEREF(__pyx_t_7);
}
/*finally:*/ {
if (__pyx_t_9) {
- __pyx_t_13 = PyObject_Call(__pyx_t_9, __pyx_k_tuple_240, NULL);
+ __pyx_t_13 = PyObject_Call(__pyx_t_9, __pyx_k_tuple_249, NULL);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L4;}
__Pyx_GOTREF(__pyx_t_13);
__pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_13);
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
- if (unlikely(__pyx_t_16 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L4;}
+ if (__pyx_t_16 < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L4;}
}
}
goto __pyx_L25;
__pyx_t_17 = _fqtypename(__pyx_v_f);
__pyx_t_5 = ((PyObject *)__Pyx_decode_c_string(__pyx_t_17, 0, strlen(__pyx_t_17), NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 571; __pyx_clineno = __LINE__; goto __pyx_L4;}
__Pyx_GOTREF(((PyObject *)__pyx_t_5));
- __pyx_t_6 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_239), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 570; __pyx_clineno = __LINE__; goto __pyx_L4;}
+ __pyx_t_6 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_248), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 570; __pyx_clineno = __LINE__; goto __pyx_L4;}
__Pyx_GOTREF(((PyObject *)__pyx_t_6));
__Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
__pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 570; __pyx_clineno = __LINE__; goto __pyx_L4;}
* if writer is not None:
* errors = writer.error_log
*/
- __Pyx_INCREF(((PyObject *)__pyx_kp_u_221));
- __pyx_v_message = ((PyObject *)__pyx_kp_u_221);
+ __Pyx_INCREF(((PyObject *)__pyx_kp_u_230));
+ __pyx_v_message = ((PyObject *)__pyx_kp_u_230);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":582
* if error < 0:
* raise C14NError(message)
*
*/
- __pyx_t_6 = __Pyx_GetItemInt(((PyObject *)__pyx_v_errors), 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_6) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 585; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_GetItemInt(((PyObject *)__pyx_v_errors), 0, sizeof(long), PyInt_FromLong, 0, 0, 1); if (!__pyx_t_6) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 585; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
- __pyx_t_5 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__message); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 585; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s__message); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 585; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_v_message);
*
* # incremental serialisation
*/
- __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__C14NError); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 586; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s__C14NError); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 586; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 586; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
PyObject *__pyx_v_output_file = 0;
PyObject *__pyx_v_encoding = 0;
PyObject *__pyx_v_compression = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
PyObject *__pyx_v_exc_type = 0;
CYTHON_UNUSED PyObject *__pyx_v_exc_val = 0;
CYTHON_UNUSED PyObject *__pyx_v_exc_tb = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__exit__ (wrapper)", 0);
PyObject *__pyx_v_outfile = 0;
PyObject *__pyx_v_encoding = 0;
int __pyx_v_compresslevel;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
PyObject *__pyx_v_version = 0;
PyObject *__pyx_v_standalone = 0;
PyObject *__pyx_v_doctype = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("write_declaration (wrapper)", 0);
* version = _utf8orNone(version)
* c_version = _xcstr(version) if version is not None else NULL
*/
- __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__LxmlSyntaxError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 673; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__LxmlSyntaxError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 673; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_242), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 673; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_251), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 673; __pyx_clineno = __LINE__; goto __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);
* doctype = _utf8(doctype)
* _writeDoctype(self._c_out, _xcstr(doctype))
*/
- __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__LxmlSyntaxError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 698; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__LxmlSyntaxError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 698; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_244), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 698; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_253), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 698; __pyx_clineno = __LINE__; goto __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);
PyObject *__pyx_v_attrib = 0;
PyObject *__pyx_v_nsmap = 0;
PyObject *__pyx_v__extra = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("element (wrapper)", 0);
* for name, value in attrib:
* if name not in _extra:
*/
- __pyx_t_1 = PyObject_GetAttr(__pyx_v_attrib, __pyx_n_s__items); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 713; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_attrib, __pyx_n_s__items); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 713; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_5 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 713; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_1);
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
- __pyx_t_12 = PyList_Append(__pyx_v_attributes, ((PyObject *)__pyx_t_8)); if (unlikely(__pyx_t_12 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 717; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_12 = __Pyx_PyList_Append(__pyx_v_attributes, ((PyObject *)__pyx_t_8)); if (unlikely(__pyx_t_12 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 717; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0;
goto __pyx_L9;
}
PyTuple_SET_ITEM(__pyx_t_9, 2, __pyx_t_1);
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
- __pyx_t_12 = PyList_Append(__pyx_v_attributes, ((PyObject *)__pyx_t_9)); if (unlikely(__pyx_t_12 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 721; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_12 = __Pyx_PyList_Append(__pyx_v_attributes, ((PyObject *)__pyx_t_9)); if (unlikely(__pyx_t_12 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 721; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0;
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
* if prefix is not None:
* prefix = _utf8(prefix)
*/
- __pyx_t_5 = PyObject_GetAttr(__pyx_v_nsmap, __pyx_n_s__items); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 724; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_nsmap, __pyx_n_s__items); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 724; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_9 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 724; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_9);
* tree.xmlOutputBufferWrite(self._c_out, len(name), _cstr(name))
*
*/
- xmlOutputBufferWrite(__pyx_v_self->_c_out, 1, __pyx_k_245);
+ xmlOutputBufferWrite(__pyx_v_self->_c_out, 1, __pyx_k_254);
goto __pyx_L3;
}
__pyx_L3:;
* ns, name, attributes, nsmap = element_config
* flat_namespace_map, new_namespaces = self._collect_namespaces(nsmap)
*/
- __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__LxmlSyntaxError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 740; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__LxmlSyntaxError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 740; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_247), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 740; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_256), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 740; __pyx_clineno = __LINE__; goto __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);
* self._write_qname(name, prefix)
* self._write_attributes_and_namespaces(
*/
- xmlOutputBufferWrite(__pyx_v_self->_c_out, 1, __pyx_k_248);
+ xmlOutputBufferWrite(__pyx_v_self->_c_out, 1, __pyx_k_257);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":745
* prefix = self._find_prefix(ns, flat_namespace_map, new_namespaces)
* self._handle_error(self._c_out.error)
*
*/
- xmlOutputBufferWrite(__pyx_v_self->_c_out, 1, __pyx_k_249);
+ xmlOutputBufferWrite(__pyx_v_self->_c_out, 1, __pyx_k_258);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":749
* attributes, flat_namespace_map, new_namespaces)
__Pyx_INCREF(__pyx_v_flat_namespace_map);
PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_v_flat_namespace_map);
__Pyx_GIVEREF(__pyx_v_flat_namespace_map);
- __pyx_t_8 = PyList_Append(__pyx_v_self->_element_stack, ((PyObject *)__pyx_t_5)); if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 751; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_self->_element_stack, ((PyObject *)__pyx_t_5)); if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 751; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":752
PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_v_value);
__Pyx_GIVEREF(__pyx_v_value);
__pyx_t_5 = 0;
- if (unlikely(__Pyx_PyList_Append(__pyx_t_2, (PyObject*)__pyx_t_8))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 759; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_8))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 759; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0;
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- __pyx_t_3 = ((PyObject *)__pyx_t_2);
- __Pyx_INCREF(__pyx_t_3);
- __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
__Pyx_DECREF(((PyObject *)__pyx_v_attributes));
- __pyx_v_attributes = ((PyObject*)__pyx_t_3);
- __pyx_t_3 = 0;
+ __pyx_v_attributes = ((PyObject*)__pyx_t_2);
+ __pyx_t_2 = 0;
goto __pyx_L3;
}
__pyx_L3:;
* if attributes:
* self._write_attributes_list(attributes)
*/
- __pyx_t_3 = __pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_attributes_list(__pyx_v_self, __pyx_v_new_namespaces); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 764; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_t_3);
- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+ __pyx_t_2 = __pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_attributes_list(__pyx_v_self, __pyx_v_new_namespaces); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 764; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_2);
+ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
goto __pyx_L8;
}
__pyx_L8:;
*
* cdef _write_attributes_list(self, list attributes):
*/
- __pyx_t_3 = __pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_attributes_list(__pyx_v_self, __pyx_v_attributes); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 766; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_t_3);
- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+ __pyx_t_2 = __pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_attributes_list(__pyx_v_self, __pyx_v_attributes); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 766; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_2);
+ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
goto __pyx_L9;
}
__pyx_L9:;
* self._write_qname(name, prefix)
* tree.xmlOutputBufferWrite(self._c_out, 2, '="')
*/
- xmlOutputBufferWrite(__pyx_v_self->_c_out, 1, __pyx_k_13);
+ xmlOutputBufferWrite(__pyx_v_self->_c_out, 1, __pyx_k_17);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":771
* for prefix, name, value in attributes:
* tree.xmlOutputBufferWriteEscape(self._c_out, _xcstr(value), NULL)
* tree.xmlOutputBufferWrite(self._c_out, 1, '"')
*/
- xmlOutputBufferWrite(__pyx_v_self->_c_out, 2, __pyx_k_250);
+ xmlOutputBufferWrite(__pyx_v_self->_c_out, 2, __pyx_k_259);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":773
* self._write_qname(name, prefix)
*
* cdef _write_end_element(self, element_config):
*/
- xmlOutputBufferWrite(__pyx_v_self->_c_out, 1, __pyx_k_233);
+ xmlOutputBufferWrite(__pyx_v_self->_c_out, 1, __pyx_k_242);
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
* if not self._element_stack or self._element_stack[-1][:2] != element_config[:2]:
* raise LxmlSyntaxError("inconsistent exit action in context manager")
*/
- __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__LxmlSyntaxError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 778; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__LxmlSyntaxError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 778; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_252), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 778; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_261), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 778; __pyx_clineno = __LINE__; goto __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);
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
{__pyx_filename = __pyx_f[6]; __pyx_lineno = 779; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
- __pyx_t_3 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_self->_element_stack), -1, sizeof(long), PyInt_FromLong); if (!__pyx_t_3) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 779; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_self->_element_stack), -1, sizeof(long), PyInt_FromLong, 1, 1, 1); if (!__pyx_t_3) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 779; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_2 = __Pyx_PySequence_GetSlice(__pyx_t_3, 0, 2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 779; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_t_3, 0, 2, NULL, NULL, &__pyx_k_slice_262, 0, 1, 1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 779; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- __pyx_t_3 = __Pyx_PySequence_GetSlice(__pyx_v_element_config, 0, 2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 779; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyObject_GetSlice(__pyx_v_element_config, 0, 2, NULL, NULL, &__pyx_k_slice_263, 0, 1, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 779; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_5 = PyObject_RichCompare(__pyx_t_2, __pyx_t_3, Py_NE); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 779; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
*
* name, prefix = self._element_stack.pop()[1:3]
*/
- __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__LxmlSyntaxError); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 780; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s__LxmlSyntaxError); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 780; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
- __pyx_t_3 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_k_tuple_254), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 780; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_k_tuple_265), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 780; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_Raise(__pyx_t_3, 0, 0, 0);
*/
__pyx_t_3 = __Pyx_PyObject_Pop(((PyObject *)__pyx_v_self->_element_stack)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 782; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_5 = __Pyx_PySequence_GetSlice(__pyx_t_3, 1, 3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 782; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_PyObject_GetSlice(__pyx_t_3, 1, 3, NULL, NULL, &__pyx_k_slice_266, 1, 1, 1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 782; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
* self._write_qname(name, prefix)
* tree.xmlOutputBufferWrite(self._c_out, 1, '>')
*/
- xmlOutputBufferWrite(__pyx_v_self->_c_out, 2, __pyx_k_255);
+ xmlOutputBufferWrite(__pyx_v_self->_c_out, 2, __pyx_k_267);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":784
* name, prefix = self._element_stack.pop()[1:3]
*
* if not self._element_stack:
*/
- xmlOutputBufferWrite(__pyx_v_self->_c_out, 1, __pyx_k_249);
+ xmlOutputBufferWrite(__pyx_v_self->_c_out, 1, __pyx_k_258);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":787
* tree.xmlOutputBufferWrite(self._c_out, 1, '>')
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "values");
{__pyx_filename = __pyx_f[6]; __pyx_lineno = 797; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
- __pyx_t_2 = PyDict_Values(__pyx_v_flat_namespaces_map); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 797; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyDict_Values(__pyx_v_flat_namespaces_map); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 797; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_v_prefixes = __pyx_t_2;
__pyx_t_2 = 0;
* if prefix not in prefixes:
* new_namespaces.append((b'xmlns', prefix, href))
*/
- __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_56), __pyx_v_i); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 800; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_60), __pyx_v_i); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 800; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_2));
__pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(((PyObject *)__pyx_t_2))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 800; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__Pyx_INCREF(((PyObject *)__pyx_v_href));
PyTuple_SET_ITEM(__pyx_t_3, 2, ((PyObject *)__pyx_v_href));
__Pyx_GIVEREF(((PyObject *)__pyx_v_href));
- __pyx_t_4 = PyList_Append(__pyx_v_new_namespaces, ((PyObject *)__pyx_t_3)); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 802; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_PyList_Append(__pyx_v_new_namespaces, ((PyObject *)__pyx_t_3)); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 802; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":803
__Pyx_INCREF(__pyx_v_ns);
PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_ns);
__Pyx_GIVEREF(__pyx_v_ns);
- __pyx_t_9 = PyList_Append(__pyx_v_new_namespaces, ((PyObject *)__pyx_t_6)); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 813; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_new_namespaces, ((PyObject *)__pyx_t_6)); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 813; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
goto __pyx_L5;
}
__Pyx_INCREF(__pyx_v_ns);
PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_ns);
__Pyx_GIVEREF(__pyx_v_ns);
- __pyx_t_9 = PyList_Append(__pyx_v_new_namespaces, ((PyObject *)__pyx_t_6)); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 815; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_new_namespaces, ((PyObject *)__pyx_t_6)); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 815; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
}
__pyx_L5:;
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
{__pyx_filename = __pyx_f[6]; __pyx_lineno = 818; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
- __pyx_t_6 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_self->_element_stack), -1, sizeof(long), PyInt_FromLong); if (!__pyx_t_6) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 818; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_self->_element_stack), -1, sizeof(long), PyInt_FromLong, 1, 1, 1); if (!__pyx_t_6) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 818; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
- __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_6, -1, sizeof(long), PyInt_FromLong); if (!__pyx_t_5) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 818; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_6, -1, sizeof(long), PyInt_FromLong, 0, 1, 1); if (!__pyx_t_5) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 818; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (unlikely(__pyx_t_5 == Py_None)) {
int __pyx_v_with_tail;
int __pyx_v_pretty_print;
PyObject *__pyx_v_args = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("write (wrapper)", 0);
*/
__pyx_t_4 = (__pyx_v_self->_status > __pyx_e_4lxml_5etree_WRITER_IN_ELEMENT);
if (!__pyx_t_4) {
- __pyx_t_3 = PyObject_GetAttr(__pyx_v_content, __pyx_n_s__strip); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 833; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_content, __pyx_n_s__strip); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 833; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_5 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 833; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
* content = _utf8(content)
* tree.xmlOutputBufferWriteEscape(self._c_out, _xcstr(content), NULL)
*/
- __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__LxmlSyntaxError); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 834; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s__LxmlSyntaxError); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 834; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
- __pyx_t_3 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_k_tuple_256), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 834; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_k_tuple_268), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 834; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_Raise(__pyx_t_3, 0, 0, 0);
* if self._status > WRITER_IN_ELEMENT:
* raise LxmlSyntaxError("cannot append trailing element to complete XML document")
*/
- __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__iselement); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 837; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s__iselement); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 837; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 837; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
* _writeNodeToBuffer(self._c_out, (<_Element>content)._c_node,
* self._c_encoding, NULL, OUTPUT_METHOD_XML,
*/
- __pyx_t_8 = __Pyx_GetName(__pyx_m, __pyx_n_s__LxmlSyntaxError); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 839; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s__LxmlSyntaxError); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 839; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_8);
- __pyx_t_5 = PyObject_Call(__pyx_t_8, ((PyObject *)__pyx_k_tuple_257), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 839; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = PyObject_Call(__pyx_t_8, ((PyObject *)__pyx_k_tuple_269), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 839; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_Raise(__pyx_t_5, 0, 0, 0);
* self._handle_error(self._c_out.error)
*
*/
- __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_258), ((PyObject *)Py_TYPE(__pyx_v_content))); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 847; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_270), ((PyObject *)Py_TYPE(__pyx_v_content))); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 847; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_5));
__pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 847; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_8);
* if self._element_stack:
* raise LxmlSyntaxError("pending open tags on close")
*/
- __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__LxmlSyntaxError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 853; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__LxmlSyntaxError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 853; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_260), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 853; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_272), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 853; __pyx_clineno = __LINE__; goto __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);
* error_result = self._c_out.error
* if error_result == xmlerror.XML_ERR_OK:
*/
- __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__LxmlSyntaxError); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 855; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s__LxmlSyntaxError); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 855; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_2 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_k_tuple_262), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 855; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_k_tuple_274), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 855; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_Raise(__pyx_t_2, 0, 0, 0);
* self._writer._exc_context._raise_if_stored()
* _raiseSerialisationError(error_result)
*/
- __pyx_t_2 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s___writer); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 869; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s___writer); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 869; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = (__pyx_t_2 != Py_None);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
* _raiseSerialisationError(error_result)
*
*/
- __pyx_t_2 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s___writer); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s___writer); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_3 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s___exc_context); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s___exc_context); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- __pyx_t_2 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s___raise_if_stored); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s___raise_if_stored); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
static int __pyx_pw_4lxml_5etree_18_FileWriterElement_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
struct __pyx_obj_4lxml_5etree__IncrementalFileWriter *__pyx_v_writer = 0;
PyObject *__pyx_v_element_config = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
CYTHON_UNUSED PyObject *__pyx_v_exc_type = 0;
CYTHON_UNUSED PyObject *__pyx_v_exc_val = 0;
CYTHON_UNUSED PyObject *__pyx_v_exc_tb = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__exit__ (wrapper)", 0);
* event_filter |= ITERPARSE_FILTER_START_NS
* elif event == u'end-ns':
*/
- __pyx_t_4 = PyObject_RichCompare(__pyx_v_event, ((PyObject *)__pyx_kp_u_263), Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = PyObject_RichCompare(__pyx_v_event, ((PyObject *)__pyx_kp_u_275), Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (__pyx_t_5) {
* event_filter |= ITERPARSE_FILTER_END_NS
* elif event == u'comment':
*/
- __pyx_t_4 = PyObject_RichCompare(__pyx_v_event, ((PyObject *)__pyx_kp_u_264), Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 23; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = PyObject_RichCompare(__pyx_v_event, ((PyObject *)__pyx_kp_u_276), Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 23; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 23; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (__pyx_t_5) {
* return event_filter
*
*/
- __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_265), __pyx_v_event); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_277), __pyx_v_event); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_4));
__Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_4), 0, 0);
__Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
__pyx_t_3 = __pyx_t_4;
__pyx_t_4 = 0;
} else {
- __Pyx_INCREF(((PyObject *)__pyx_kp_s_21));
- __pyx_t_3 = ((PyObject *)__pyx_kp_s_21);
+ __Pyx_INCREF(((PyObject *)__pyx_kp_s_25));
+ __pyx_t_3 = ((PyObject *)__pyx_kp_s_25);
}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":50
}
__pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
- __Pyx_INCREF(((PyObject *)__pyx_kp_u_263));
- PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_kp_u_263));
- __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_263));
+ __Pyx_INCREF(((PyObject *)__pyx_kp_u_275));
+ PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_kp_u_275));
+ __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_275));
__Pyx_INCREF(((PyObject *)__pyx_v_ns_tuple));
PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_ns_tuple));
__Pyx_GIVEREF(((PyObject *)__pyx_v_ns_tuple));
- __pyx_t_6 = PyList_Append(__pyx_v_event_list, ((PyObject *)__pyx_t_5)); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_PyList_Append(__pyx_v_event_list, ((PyObject *)__pyx_t_5)); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":52
*/
__pyx_t_2 = (__pyx_v_tag == Py_None);
if (!__pyx_t_2) {
- __pyx_t_3 = PyObject_RichCompare(__pyx_v_tag, ((PyObject *)__pyx_kp_s_108), Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyObject_RichCompare(__pyx_v_tag, ((PyObject *)__pyx_kp_s_116), Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_5 = __pyx_t_4;
}
__pyx_t_2 = PyInt_FromLong(__pyx_v_ns_count); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_3 = PyList_Append(__pyx_v_self->_ns_stack, __pyx_t_2); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_self->_ns_stack, __pyx_t_2); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
goto __pyx_L4;
}
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append");
{__pyx_filename = __pyx_f[14]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
- __pyx_t_3 = PyList_Append(__pyx_v_self->_node_stack, ((PyObject *)__pyx_v_node)); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_self->_node_stack, ((PyObject *)__pyx_v_node)); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L7;
}
__pyx_L7:;
__Pyx_INCREF(((PyObject *)__pyx_v_node));
PyTuple_SET_ITEM(__pyx_t_7, 1, ((PyObject *)__pyx_v_node));
__Pyx_GIVEREF(((PyObject *)__pyx_v_node));
- __pyx_t_3 = PyList_Append(__pyx_v_self->_events, ((PyObject *)__pyx_t_7)); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_self->_events, ((PyObject *)__pyx_t_7)); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
goto __pyx_L8;
}
__Pyx_INCREF(__pyx_v_node);
PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_v_node);
__Pyx_GIVEREF(__pyx_v_node);
- __pyx_t_7 = PyList_Append(__pyx_v_self->_events, ((PyObject *)__pyx_t_6)); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_self->_events, ((PyObject *)__pyx_t_6)); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
goto __pyx_L4;
}
* for i from 0 <= i < ns_count:
* self._events.append(event)
*/
- __Pyx_INCREF(((PyObject *)__pyx_k_tuple_266));
- __pyx_v_event = __pyx_k_tuple_266;
+ __Pyx_INCREF(((PyObject *)__pyx_k_tuple_278));
+ __pyx_v_event = __pyx_k_tuple_278;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":167
* if ns_count > 0:
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append");
{__pyx_filename = __pyx_f[14]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
- __pyx_t_7 = PyList_Append(__pyx_v_self->_events, ((PyObject *)__pyx_v_event)); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_self->_events, ((PyObject *)__pyx_v_event)); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
goto __pyx_L8;
}
__Pyx_INCREF(((PyObject *)__pyx_v_node));
PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_node));
__Pyx_GIVEREF(((PyObject *)__pyx_v_node));
- __pyx_t_6 = PyList_Append(__pyx_v_self->_events, ((PyObject *)__pyx_t_5)); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_PyList_Append(__pyx_v_self->_events, ((PyObject *)__pyx_t_5)); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":179
PyObject *__pyx_v_html = 0;
PyObject *__pyx_v_huge_tree = 0;
struct __pyx_obj_4lxml_5etree_XMLSchema *__pyx_v_schema = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
* attribute_defaults=False, dtd_validation=False,
* load_dtd=False, no_network=True, remove_blank_text=False,
*/
- values[1] = ((PyObject *)__pyx_k_tuple_267);
+ values[1] = ((PyObject *)__pyx_k_tuple_279);
values[2] = ((PyObject *)Py_None);
- values[3] = __pyx_k_268;
- values[4] = __pyx_k_269;
- values[5] = __pyx_k_270;
- values[6] = __pyx_k_271;
- values[7] = __pyx_k_272;
- values[8] = __pyx_k_273;
- values[9] = __pyx_k_274;
- values[10] = __pyx_k_275;
- values[11] = __pyx_k_276;
- values[12] = __pyx_k_277;
+ values[3] = __pyx_k_280;
+ values[4] = __pyx_k_281;
+ values[5] = __pyx_k_282;
+ values[6] = __pyx_k_283;
+ values[7] = __pyx_k_284;
+ values[8] = __pyx_k_285;
+ values[9] = __pyx_k_286;
+ values[10] = __pyx_k_287;
+ values[11] = __pyx_k_288;
+ values[12] = __pyx_k_289;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":372
* load_dtd=False, no_network=True, remove_blank_text=False,
* cdef _IterparseContext context
*/
values[13] = ((PyObject *)Py_None);
- values[14] = __pyx_k_278;
- values[15] = __pyx_k_279;
+ values[14] = __pyx_k_290;
+ values[15] = __pyx_k_291;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":373
* compact=True, resolve_entities=True, remove_comments=False,
*
* self._events = events
*/
- __pyx_t_7 = PyObject_RichCompare(__pyx_v_event, ((PyObject *)__pyx_kp_u_263), Py_NE); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 391; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = PyObject_RichCompare(__pyx_v_event, ((PyObject *)__pyx_kp_u_275), Py_NE); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 391; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 391; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
if (__pyx_t_2) {
- __pyx_t_7 = PyObject_RichCompare(__pyx_v_event, ((PyObject *)__pyx_kp_u_264), Py_NE); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 391; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = PyObject_RichCompare(__pyx_v_event, ((PyObject *)__pyx_kp_u_276), Py_NE); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 391; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 391; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_8 = __pyx_t_1;
* if event != u'start-ns' and event != u'end-ns' ])
*
*/
- if (unlikely(__Pyx_PyList_Append(__pyx_t_3, (PyObject*)__pyx_v_event))) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (unlikely(__Pyx_ListComp_Append(__pyx_t_3, (PyObject*)__pyx_v_event))) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L8;
}
__pyx_L8:;
}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- __pyx_t_4 = ((PyObject *)PyList_AsTuple(__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = ((PyObject *)PyList_AsTuple(((PyObject*)__pyx_t_3))); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_4));
__Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_v_events);
* remove_comments, remove_pis, strip_cdata,
* None, filename, encoding)
*/
- __pyx_t_4 = PyObject_GetAttr(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__BaseParser)), __pyx_n_s____init__); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 418; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__BaseParser)), __pyx_n_s____init__); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 418; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_3 = PyInt_FromLong(__pyx_v_parse_options); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 418; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
* except AttributeError:
* close = None
*/
- __pyx_t_7 = PyObject_GetAttr(__pyx_v_self->_source, __pyx_n_s__close); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 463; __pyx_clineno = __LINE__; goto __pyx_L7_error;}
+ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_source, __pyx_n_s__close); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 463; __pyx_clineno = __LINE__; goto __pyx_L7_error;}
__Pyx_GOTREF(__pyx_t_7);
__pyx_v_close = __pyx_t_7;
__pyx_t_7 = 0;
*
* def __iter__(self):
*/
- __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_280), 0, 0);
+ __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_292), 0, 0);
{__pyx_filename = __pyx_f[14]; __pyx_lineno = 472; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
* if self._source is not None:
*/
if (unlikely(!__pyx_v_events)) { __Pyx_RaiseUnboundLocalError("events"); {__pyx_filename = __pyx_f[14]; __pyx_lineno = 481; __pyx_clineno = __LINE__; goto __pyx_L1_error;} }
- if (__Pyx_PySequence_DelSlice(((PyObject *)__pyx_v_events), 0, PY_SSIZE_T_MAX) < 0) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 481; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (unlikely(((PyObject *)__pyx_v_events) == Py_None)) {
+ PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
+ {__pyx_filename = __pyx_f[14]; __pyx_lineno = 481; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ }
+ if (__Pyx_PyObject_DelSlice(((PyObject *)__pyx_v_events), 0, 0, NULL, NULL, NULL, 0, 0, 1) < 0) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 481; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":482
* if len(events) <= context._event_index:
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
{__pyx_filename = __pyx_f[14]; __pyx_lineno = 488; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
- __pyx_t_1 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_events), __pyx_v_context->_event_index, sizeof(int), PyInt_FromLong); if (!__pyx_t_1) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 488; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_events), __pyx_v_context->_event_index, sizeof(int), PyInt_FromLong, 1, 1, 1); if (!__pyx_t_1) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 488; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_item = __pyx_t_1;
__pyx_t_1 = 0;
* if not isinstance(data, bytes):
* self._close_source()
*/
- __pyx_t_2 = PyObject_GetAttr(__pyx_v_self->_source, __pyx_n_s__read); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 503; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_source, __pyx_n_s__read); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 503; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_5 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_281), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 503; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_293), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 503; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_v_data);
* c_data_len = python.PyBytes_GET_SIZE(data)
* c_data = _cstr(data)
*/
- __pyx_t_5 = PyObject_Call(__pyx_builtin_TypeError, ((PyObject *)__pyx_k_tuple_283), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 506; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = PyObject_Call(__pyx_builtin_TypeError, ((PyObject *)__pyx_k_tuple_295), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 506; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
__Pyx_Raise(__pyx_t_5, 0, 0, 0);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
*/
{
#ifdef WITH_THREAD
- PyThreadState *_save = NULL;
- #endif
+ PyThreadState *_save;
Py_UNBLOCK_THREADS
+ #endif
/*try:*/ {
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":518
* c_data, 1, __ITERPARSE_CHUNK_SIZE, c_stream)
*/
/*finally:*/ {
+ #ifdef WITH_THREAD
Py_BLOCK_THREADS
+ #endif
}
}
* _raiseParseError(pctxt, self._filename, context._error_log)
*/
if (unlikely(!__pyx_v_events)) { __Pyx_RaiseUnboundLocalError("events"); {__pyx_filename = __pyx_f[14]; __pyx_lineno = 535; __pyx_clineno = __LINE__; goto __pyx_L1_error;} }
- if (__Pyx_PySequence_DelSlice(((PyObject *)__pyx_v_events), 0, PY_SSIZE_T_MAX) < 0) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 535; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (unlikely(((PyObject *)__pyx_v_events) == Py_None)) {
+ PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
+ {__pyx_filename = __pyx_f[14]; __pyx_lineno = 535; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ }
+ if (__Pyx_PyObject_DelSlice(((PyObject *)__pyx_v_events), 0, 0, NULL, NULL, NULL, 0, 0, 1) < 0) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 535; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":536
* if error:
PyObject *__pyx_v_element_or_tree = 0;
PyObject *__pyx_v_events = 0;
PyObject *__pyx_v_tag = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
* cdef _Element root
* cdef int ns_count
*/
- values[1] = ((PyObject *)__pyx_k_tuple_284);
+ values[1] = ((PyObject *)__pyx_k_tuple_296);
values[2] = ((PyObject *)Py_None);
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
*/
__pyx_t_3 = (__pyx_v_tag == Py_None);
if (!__pyx_t_3) {
- __pyx_t_1 = PyObject_RichCompare(__pyx_v_tag, ((PyObject *)__pyx_kp_s_108), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 558; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyObject_RichCompare(__pyx_v_tag, ((PyObject *)__pyx_kp_s_116), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 558; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 558; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_5 = __pyx_t_4;
*
* if self._event_filter:
*/
- __pyx_t_6 = PyObject_GetAttr(((PyObject *)__pyx_v_self->_events), __pyx_n_s__pop); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 564; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_events), __pyx_n_s__pop); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 564; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
__Pyx_GIVEREF(__pyx_t_6);
__Pyx_GOTREF(__pyx_v_self->_pop_event);
PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_6);
__Pyx_GIVEREF(__pyx_t_6);
__pyx_t_6 = 0;
- __pyx_t_7 = PyList_Append(__pyx_v_self->_node_stack, ((PyObject *)__pyx_t_1)); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 569; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_self->_node_stack, ((PyObject *)__pyx_t_1)); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 569; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
goto __pyx_L4;
}
* node = self._node_stack[self._index][0]
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_2 = PyObject_Call(__pyx_v_self->_pop_event, ((PyObject *)__pyx_k_tuple_285), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 582; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyObject_Call(__pyx_v_self->_pop_event, ((PyObject *)__pyx_k_tuple_297), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 582; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_r = __pyx_t_2;
__pyx_t_2 = 0;
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
{__pyx_filename = __pyx_f[14]; __pyx_lineno = 584; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
- __pyx_t_2 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_self->_node_stack), __pyx_v_self->_index, sizeof(int), PyInt_FromLong); if (!__pyx_t_2) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 584; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_self->_node_stack), __pyx_v_self->_index, sizeof(int), PyInt_FromLong, 1, 1, 1); if (!__pyx_t_2) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 584; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_2, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_5) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 584; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_2, 0, sizeof(long), PyInt_FromLong, 0, 0, 1); if (!__pyx_t_5) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 584; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 584; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
{__pyx_filename = __pyx_f[14]; __pyx_lineno = 589; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
- __pyx_t_5 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_self->_node_stack), __pyx_v_self->_index, sizeof(int), PyInt_FromLong); if (!__pyx_t_5) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 589; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_self->_node_stack), __pyx_v_self->_index, sizeof(int), PyInt_FromLong, 1, 1, 1); if (!__pyx_t_5) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 589; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
- __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_5, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_2) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 589; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_5, 0, sizeof(long), PyInt_FromLong, 0, 0, 1); if (!__pyx_t_2) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 589; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 589; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
* if next_node is not None:
* if self._event_filter & (ITERPARSE_FILTER_START |
*/
- __pyx_t_5 = PyObject_GetAttr(((PyObject *)__pyx_v_node), __pyx_n_s__getnext); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 604; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_node), __pyx_n_s__getnext); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 604; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_2 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 604; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2);
__Pyx_GIVEREF(__pyx_t_2);
__pyx_t_2 = 0;
- __pyx_t_7 = PyList_Append(__pyx_v_self->_node_stack, ((PyObject *)__pyx_t_5)); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 611; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_self->_node_stack, ((PyObject *)__pyx_t_5)); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 611; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":612
*
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_5 = PyObject_Call(__pyx_v_self->_pop_event, ((PyObject *)__pyx_k_tuple_286), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 614; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = PyObject_Call(__pyx_v_self->_pop_event, ((PyObject *)__pyx_k_tuple_298), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 614; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
__pyx_r = __pyx_t_5;
__pyx_t_5 = 0;
__Pyx_INCREF(((PyObject *)__pyx_v_node));
PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_node));
__Pyx_GIVEREF(((PyObject *)__pyx_v_node));
- __pyx_t_6 = PyList_Append(__pyx_v_self->_events, ((PyObject *)__pyx_t_2)); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 627; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_PyList_Append(__pyx_v_self->_events, ((PyObject *)__pyx_t_2)); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 627; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
goto __pyx_L5;
}
__Pyx_INCREF(((PyObject *)__pyx_v_node));
PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_node));
__Pyx_GIVEREF(((PyObject *)__pyx_v_node));
- __pyx_t_10 = PyList_Append(__pyx_v_self->_events, ((PyObject *)__pyx_t_1)); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 636; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_self->_events, ((PyObject *)__pyx_t_1)); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 636; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
goto __pyx_L6;
}
* for i from 0 <= i < ns_count:
* self._events.append(event)
*/
- __Pyx_INCREF(((PyObject *)__pyx_k_tuple_287));
- __pyx_v_event = __pyx_k_tuple_287;
+ __Pyx_INCREF(((PyObject *)__pyx_k_tuple_299));
+ __pyx_v_event = __pyx_k_tuple_299;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":639
* if self._event_filter & ITERPARSE_FILTER_END_NS:
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append");
{__pyx_filename = __pyx_f[14]; __pyx_lineno = 640; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
- __pyx_t_10 = PyList_Append(__pyx_v_self->_events, ((PyObject *)__pyx_v_event)); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 640; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_self->_events, ((PyObject *)__pyx_v_event)); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 640; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
goto __pyx_L7;
}
PyObject *__pyx_v_text = 0;
PyObject *__pyx_v_parser = 0;
PyObject *__pyx_v_base_url = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("XMLID (wrapper)", 0);
*
* # ElementTree compatible implementation: parse and look for 'id' attributes
*/
- __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_XPath)), ((PyObject *)__pyx_k_tuple_289), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_XPath)), ((PyObject *)__pyx_k_tuple_301), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__Pyx_XGOTREF(__pyx_v_4lxml_5etree__find_id_attributes);
__Pyx_DECREF(__pyx_v_4lxml_5etree__find_id_attributes);
* dic = {}
* for elem in _find_id_attributes(root):
*/
- __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__XML); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__XML); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
* return (root, dic)
*
*/
- __pyx_t_4 = PyObject_GetAttr(__pyx_v_elem, __pyx_n_s__get); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_elem, __pyx_n_s__get); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
- __pyx_t_3 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_k_tuple_290), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_k_tuple_302), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (PyDict_SetItem(((PyObject *)__pyx_v_dic), __pyx_t_3, __pyx_v_elem) < 0) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
PyObject *__pyx_v_text = 0;
PyObject *__pyx_v_parser = 0;
PyObject *__pyx_v_base_url = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("XMLDTDID (wrapper)", 0);
* # xml:id spec compatible implementation: use DTD ID attributes from libxml2
* if root._doc._c_doc.ids is NULL:
*/
- __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__XML); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__XML); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
PyObject *__pyx_v_source = 0;
PyObject *__pyx_v_parser = 0;
PyObject *__pyx_v_base_url = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("parseid (wrapper)", 0);
static int __pyx_pw_4lxml_5etree_7_IDDict_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4lxml_5etree_7_IDDict_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_etree = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
* self._doc = doc
* self._keys = None
*/
- __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_291), 0, 0);
+ __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_303), 0, 0);
{__pyx_filename = __pyx_f[15]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L3;
}
* c_attr = c_id.attr
* if c_attr is NULL or c_attr.parent is NULL:
*/
- __Pyx_Raise(__pyx_builtin_KeyError, ((PyObject *)__pyx_kp_u_292), 0, 0);
+ __Pyx_Raise(__pyx_builtin_KeyError, ((PyObject *)__pyx_kp_u_304), 0, 0);
{__pyx_filename = __pyx_f[15]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L3;
}
* return _elementFactory(self._doc, c_attr.parent)
*
*/
- __Pyx_Raise(__pyx_builtin_KeyError, ((PyObject *)__pyx_kp_u_293), 0, 0);
+ __Pyx_Raise(__pyx_builtin_KeyError, ((PyObject *)__pyx_kp_u_305), 0, 0);
{__pyx_filename = __pyx_f[15]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L4;
}
* def __iter__(self):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_2 = __Pyx_PySequence_GetSlice(__pyx_v_self->_keys, 0, PY_SSIZE_T_MAX); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_v_self->_keys, 0, 0, NULL, NULL, &__pyx_k_slice_306, 0, 0, 1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_r = __pyx_t_2;
__pyx_t_2 = 0;
* def iteritems(self):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_2 = __Pyx_PySequence_GetSlice(__pyx_v_self->_items, 0, PY_SSIZE_T_MAX); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_v_self->_items, 0, 0, NULL, NULL, &__pyx_k_slice_307, 0, 0, 1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_r = __pyx_t_2;
__pyx_t_2 = 0;
* return values
*
*/
- __pyx_t_6 = PyList_Append(__pyx_v_values, __pyx_v_value); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_PyList_Append(__pyx_v_values, __pyx_v_value); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
* cdef object _build_keys(self):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__values); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__values); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_element));
__Pyx_GIVEREF(((PyObject *)__pyx_v_element));
__pyx_t_6 = 0;
- __pyx_t_9 = PyList_Append(__pyx_v_lst, ((PyObject *)__pyx_t_5)); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 174; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_lst, ((PyObject *)__pyx_t_5)); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 174; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
goto __pyx_L0;
}
__pyx_t_5 = __pyx_f_4lxml_5etree_funicode(__pyx_v_name); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
- __pyx_t_6 = PyList_Append(((PyObject*)__pyx_v_collect_list), __pyx_t_5); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_PyList_Append(((PyObject*)__pyx_v_collect_list), __pyx_t_5); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
goto __pyx_L0;
#ifndef CYTHON_WITHOUT_ASSERTIONS
__pyx_t_1 = (((PyObject *)__pyx_v_self->_error_log) != Py_None);
if (unlikely(!__pyx_t_1)) {
- PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_294));
+ PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_308));
{__pyx_filename = __pyx_f[16]; __pyx_lineno = 23; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
#endif
#endif
static PyObject *__pyx_pw_4lxml_5etree_8XInclude_3__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
struct LxmlElement *__pyx_v_node = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
#ifndef CYTHON_WITHOUT_ASSERTIONS
__pyx_t_2 = (((PyObject *)__pyx_v_self->_error_log) != Py_None);
if (unlikely(!__pyx_t_2)) {
- PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_295));
+ PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_309));
{__pyx_filename = __pyx_f[16]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
#endif
*/
{
#ifdef WITH_THREAD
- PyThreadState *_save = NULL;
- #endif
+ PyThreadState *_save;
Py_UNBLOCK_THREADS
+ #endif
/*try:*/ {
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xinclude.pxi":42
* result = xinclude.xmlXIncludeProcessTreeFlags(
*/
/*finally:*/ {
+ #ifdef WITH_THREAD
Py_BLOCK_THREADS
+ #endif
}
}
* self._error_log._buildExceptionMessage(
* u"XInclude processing failed"),
*/
- __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__XIncludeError); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[16]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s__XIncludeError); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[16]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xinclude.pxi":52
* u"XInclude processing failed"),
* self._error_log)
*/
- __pyx_t_4 = __pyx_f_4lxml_5etree_13_BaseErrorLog__buildExceptionMessage(((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_v_self->_error_log), ((PyObject *)__pyx_kp_u_296)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[16]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __pyx_f_4lxml_5etree_13_BaseErrorLog__buildExceptionMessage(((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_v_self->_error_log), ((PyObject *)__pyx_kp_u_310)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[16]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xinclude.pxi":54
static PyObject *__pyx_pw_4lxml_5etree_55strip_attributes(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_tree_or_element = 0;
PyObject *__pyx_v_attribute_names = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("strip_attributes (wrapper)", 0);
PyObject *__pyx_v_tree_or_element = 0;
int __pyx_v_with_tail;
PyObject *__pyx_v_tag_names = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("strip_elements (wrapper)", 0);
static PyObject *__pyx_pw_4lxml_5etree_59strip_tags(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_tree_or_element = 0;
PyObject *__pyx_v_tag_names = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("strip_tags (wrapper)", 0);
PyObject *__pyx_v_error_log = 0;
PyObject *__pyx_v_enable_regexp = 0;
PyObject *__pyx_v_build_smart_strings = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
* if name is None:
* raise ValueError, u"extensions must have non empty names"
*/
- __pyx_t_5 = PyObject_GetAttr(__pyx_v_extension, __pyx_n_s__items); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_extension, __pyx_n_s__items); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_6 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
* ns_utf = self._to_utf(ns_uri)
* name_utf = self._to_utf(name)
*/
- __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_149), 0, 0);
+ __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_158), 0, 0);
{__pyx_filename = __pyx_f[7]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L13;
}
* if namespaces:
* ns = []
*/
- __pyx_t_1 = PyObject_GetAttr(__pyx_v_namespaces, __pyx_n_s__items); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_namespaces, __pyx_n_s__items); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_5 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
* u"empty namespace prefix is not supported in XPath"
* if ns_uri is None or not ns_uri:
*/
- __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_297), 0, 0);
+ __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_311), 0, 0);
{__pyx_filename = __pyx_f[7]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L21;
}
* u"setting default namespace is not supported in XPath"
* prefix_utf = self._to_utf(prefix)
*/
- __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_298), 0, 0);
+ __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_312), 0, 0);
{__pyx_filename = __pyx_f[7]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L22;
}
__Pyx_INCREF(((PyObject *)__pyx_v_ns_uri_utf));
PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_ns_uri_utf));
__Pyx_GIVEREF(((PyObject *)__pyx_v_ns_uri_utf));
- __pyx_t_17 = PyList_Append(__pyx_v_ns, ((PyObject *)__pyx_t_1)); if (unlikely(__pyx_t_17 == -1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_17 = __Pyx_PyList_Append(__pyx_v_ns, ((PyObject *)__pyx_t_1)); if (unlikely(__pyx_t_17 == -1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
* else:
* namespaces = None
*/
- __pyx_t_2 = __Pyx_PySequence_GetSlice(((PyObject *)__pyx_v_self->_namespaces), 0, PY_SSIZE_T_MAX); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 111; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (unlikely(((PyObject *)__pyx_v_self->_namespaces) == Py_None)) {
+ PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
+ {__pyx_filename = __pyx_f[7]; __pyx_lineno = 111; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ }
+ __pyx_t_2 = __Pyx_PyList_GetSlice(((PyObject *)__pyx_v_self->_namespaces), 0, PY_SSIZE_T_MAX); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 111; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_2));
__pyx_v_namespaces = ((PyObject *)__pyx_t_2);
__pyx_t_2 = 0;
* self._build_smart_strings)
* if self._extensions is not None:
*/
- __pyx_t_2 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s____class__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s____class__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
* prefix_utf = self._to_utf(prefix)
* ns_uri_utf = self._to_utf(ns_uri)
*/
- __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_299), 0, 0);
+ __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_313), 0, 0);
{__pyx_filename = __pyx_f[7]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L3;
}
* item = new_item
* new_item = None
*/
- __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_item, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_4) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_item, 0, sizeof(long), PyInt_FromLong, 0, 0, 1); if (!__pyx_t_4) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_5 = PyObject_RichCompare(__pyx_t_4, ((PyObject *)__pyx_v_prefix_utf), Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
* if new_item is not None:
* namespaces.append(new_item)
*/
- __pyx_t_6 = PyList_Append(__pyx_v_namespaces, __pyx_v_item); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 180; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_PyList_Append(__pyx_v_namespaces, __pyx_v_item); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 180; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
* self._namespaces = namespaces
* if self._xpathCtxt is not NULL:
*/
- __pyx_t_6 = PyList_Append(__pyx_v_namespaces, __pyx_v_new_item); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 182; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_PyList_Append(__pyx_v_namespaces, __pyx_v_new_item); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 182; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L8;
}
__pyx_L8:;
* prefix_utf = self._to_utf(prefix)
* ns_uri_utf = self._to_utf(ns_uri)
*/
- __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_299), 0, 0);
+ __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_313), 0, 0);
{__pyx_filename = __pyx_f[7]; __pyx_lineno = 190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L3;
}
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append");
{__pyx_filename = __pyx_f[7]; __pyx_lineno = 193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
- __pyx_t_3 = PyList_Append(__pyx_v_self->_global_namespaces, ((PyObject *)__pyx_v_prefix_utf)); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_self->_global_namespaces, ((PyObject *)__pyx_v_prefix_utf)); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":195
* self._global_namespaces.append(prefix_utf)
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append");
{__pyx_filename = __pyx_f[7]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
- __pyx_t_9 = PyList_Append(__pyx_v_self->_global_namespaces, __pyx_v_prefix_utf); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_self->_global_namespaces, __pyx_v_prefix_utf); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":210
* self._global_namespaces.append(prefix_utf)
*
* cdef void _unregisterNamespace(self, prefix_utf):
*/
- if (__Pyx_PySequence_DelSlice(((PyObject *)__pyx_v_self->_global_namespaces), 0, PY_SSIZE_T_MAX) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (unlikely(((PyObject *)__pyx_v_self->_global_namespaces) == Py_None)) {
+ PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
+ {__pyx_filename = __pyx_f[7]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ }
+ if (__Pyx_PyObject_DelSlice(((PyObject *)__pyx_v_self->_global_namespaces), 0, 0, NULL, NULL, NULL, 0, 0, 1) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L3;
}
__pyx_L3:;
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "items");
{__pyx_filename = __pyx_f[7]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
- __pyx_t_1 = PyDict_Items(__pyx_v_self->_function_cache); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyDict_Items(__pyx_v_self->_function_cache); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
if (PyList_CheckExact(__pyx_t_1) || PyTuple_CheckExact(__pyx_t_1)) {
__pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
* u"XPath context is only usable during the evaluation"
* c_node = self._xpathCtxt.node
*/
- __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__XPathError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 304; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__XPathError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 304; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
- __Pyx_Raise(__pyx_t_2, ((PyObject *)__pyx_kp_u_300), 0, 0);
+ __Pyx_Raise(__pyx_t_2, ((PyObject *)__pyx_kp_u_314), 0, 0);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
{__pyx_filename = __pyx_f[7]; __pyx_lineno = 304; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L3;
* if c_node.doc != self._xpathCtxt.doc:
* raise XPathError, \
*/
- __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__XPathError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 308; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__XPathError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 308; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
- __Pyx_Raise(__pyx_t_2, ((PyObject *)__pyx_kp_u_301), 0, 0);
+ __Pyx_Raise(__pyx_t_2, ((PyObject *)__pyx_kp_u_315), 0, 0);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
{__pyx_filename = __pyx_f[7]; __pyx_lineno = 308; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L4;
* u"document-external context nodes are not supported"
* if self._doc is None:
*/
- __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__XPathError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 310; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__XPathError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 310; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
- __Pyx_Raise(__pyx_t_2, ((PyObject *)__pyx_kp_u_302), 0, 0);
+ __Pyx_Raise(__pyx_t_2, ((PyObject *)__pyx_kp_u_316), 0, 0);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
{__pyx_filename = __pyx_f[7]; __pyx_lineno = 310; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L5;
* return _elementFactory(self._doc, c_node)
*
*/
- __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__XPathError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 313; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__XPathError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 313; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
- __Pyx_Raise(__pyx_t_2, ((PyObject *)__pyx_kp_u_303), 0, 0);
+ __Pyx_Raise(__pyx_t_2, ((PyObject *)__pyx_kp_u_317), 0, 0);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
{__pyx_filename = __pyx_f[7]; __pyx_lineno = 313; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L6;
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
{__pyx_filename = __pyx_f[7]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
- __pyx_t_3 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_4lxml_5etree_LIBXML2_XPATH_ERROR_MESSAGES), __pyx_v_xpath_code, sizeof(int), PyInt_FromLong); if (!__pyx_t_3) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_4lxml_5etree_LIBXML2_XPATH_ERROR_MESSAGES), __pyx_v_xpath_code, sizeof(int), PyInt_FromLong, 1, 1, 1); if (!__pyx_t_3) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__pyx_v_error.message = PyBytes_AS_STRING(__pyx_t_3);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
* error.domain = c_error.domain
* error.code = c_error.code
*/
- __pyx_v_error.message = __pyx_k_39;
+ __pyx_v_error.message = __pyx_k_43;
}
__pyx_L4:;
}
PyObject *__pyx_v_module = 0;
PyObject *__pyx_v_function_mapping = 0;
PyObject *__pyx_v_ns = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("Extension (wrapper)", 0);
* functions[(ns, xpath_name)] = getattr(module, function_name)
* else:
*/
- __pyx_t_1 = PyObject_GetAttr(__pyx_v_function_mapping, __pyx_n_s__items); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 440; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_function_mapping, __pyx_n_s__items); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 440; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 440; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
* else:
* if function_mapping is None:
*/
- __pyx_t_3 = PyObject_GetAttr(__pyx_v_module, __pyx_v_function_name); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 441; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_GetAttr(__pyx_v_module, __pyx_v_function_name); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 441; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 441; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
* for function_name in function_mapping:
* functions[(ns, function_name)] = getattr(module, function_name)
*/
- __pyx_t_3 = PyObject_GetAttr(__pyx_v_name, __pyx_n_s__startswith); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 445; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_name, __pyx_n_s__startswith); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 445; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_6 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_k_tuple_304), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 445; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_k_tuple_318), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 445; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 445; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
* if not name.startswith(u'_') ]
* for function_name in function_mapping:
*/
- if (unlikely(__Pyx_PyList_Append(__pyx_t_1, (PyObject*)__pyx_v_name))) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 444; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_v_name))) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 444; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L11;
}
__pyx_L11:;
}
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
- __pyx_t_7 = ((PyObject *)__pyx_t_1);
- __Pyx_INCREF(__pyx_t_7);
- __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_v_function_mapping);
- __pyx_v_function_mapping = __pyx_t_7;
- __pyx_t_7 = 0;
+ __pyx_v_function_mapping = ((PyObject *)__pyx_t_1);
+ __pyx_t_1 = 0;
goto __pyx_L8;
}
__pyx_L8:;
* return functions
*/
if (PyList_CheckExact(__pyx_v_function_mapping) || PyTuple_CheckExact(__pyx_v_function_mapping)) {
- __pyx_t_7 = __pyx_v_function_mapping; __Pyx_INCREF(__pyx_t_7); __pyx_t_4 = 0;
+ __pyx_t_1 = __pyx_v_function_mapping; __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = 0;
__pyx_t_5 = NULL;
} else {
- __pyx_t_4 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_v_function_mapping); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_t_7);
- __pyx_t_5 = Py_TYPE(__pyx_t_7)->tp_iternext;
+ __pyx_t_4 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_function_mapping); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_1);
+ __pyx_t_5 = Py_TYPE(__pyx_t_1)->tp_iternext;
}
for (;;) {
- if (!__pyx_t_5 && PyList_CheckExact(__pyx_t_7)) {
- if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_7)) break;
+ if (!__pyx_t_5 && PyList_CheckExact(__pyx_t_1)) {
+ if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_COMPILING_IN_CPYTHON
- __pyx_t_1 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_7); __pyx_t_4++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
#else
- __pyx_t_1 = PySequence_ITEM(__pyx_t_7, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
#endif
- } else if (!__pyx_t_5 && PyTuple_CheckExact(__pyx_t_7)) {
- if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_7)) break;
+ } else if (!__pyx_t_5 && PyTuple_CheckExact(__pyx_t_1)) {
+ if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_COMPILING_IN_CPYTHON
- __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_7); __pyx_t_4++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
#else
- __pyx_t_1 = PySequence_ITEM(__pyx_t_7, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
#endif
} else {
- __pyx_t_1 = __pyx_t_5(__pyx_t_7);
- if (unlikely(!__pyx_t_1)) {
+ __pyx_t_7 = __pyx_t_5(__pyx_t_1);
+ if (unlikely(!__pyx_t_7)) {
if (PyErr_Occurred()) {
if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
else {__pyx_filename = __pyx_f[7]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
break;
}
- __Pyx_GOTREF(__pyx_t_1);
+ __Pyx_GOTREF(__pyx_t_7);
}
__Pyx_XDECREF(__pyx_v_function_name);
- __pyx_v_function_name = __pyx_t_1;
- __pyx_t_1 = 0;
+ __pyx_v_function_name = __pyx_t_7;
+ __pyx_t_7 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":447
* if not name.startswith(u'_') ]
* return functions
*
*/
- __pyx_t_1 = PyObject_GetAttr(__pyx_v_module, __pyx_v_function_name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_t_1);
+ __pyx_t_7 = __Pyx_GetAttr(__pyx_v_module, __pyx_v_function_name); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_7);
__pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
__Pyx_INCREF(__pyx_v_ns);
__Pyx_INCREF(__pyx_v_function_name);
PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_v_function_name);
__Pyx_GIVEREF(__pyx_v_function_name);
- if (PyDict_SetItem(((PyObject *)__pyx_v_functions), ((PyObject *)__pyx_t_6), __pyx_t_1) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(((PyObject *)__pyx_v_functions), ((PyObject *)__pyx_t_6), __pyx_t_7) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
}
- __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
}
__pyx_L3:;
* if _isString(firstnode):
*/
__Pyx_XDECREF(__pyx_r);
- __Pyx_INCREF(((PyObject *)__pyx_kp_u_21));
- __pyx_r = ((PyObject *)__pyx_kp_u_21);
+ __Pyx_INCREF(((PyObject *)__pyx_kp_u_25));
+ __pyx_r = ((PyObject *)__pyx_kp_u_25);
goto __pyx_L0;
goto __pyx_L4;
}
* if _isString(firstnode):
* return firstnode
*/
- __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_value, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_2) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 467; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_value, 0, sizeof(long), PyInt_FromLong, 0, 0, 1); if (!__pyx_t_2) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 467; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_v_firstnode = __pyx_t_2;
__pyx_t_2 = 0;
* if ignore_case:
* py_flags = py_flags | re.IGNORECASE
*/
- __pyx_t_1 = PyObject_GetAttr(__pyx_v_4lxml_5etree_re, __pyx_n_s__UNICODE); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 490; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_re, __pyx_n_s__UNICODE); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 490; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_py_flags = __pyx_t_1;
__pyx_t_1 = 0;
* rexp_compiled = re.compile(rexp, py_flags)
* self._compile_map[key] = rexp_compiled
*/
- __pyx_t_1 = PyObject_GetAttr(__pyx_v_4lxml_5etree_re, __pyx_n_s__IGNORECASE); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_re, __pyx_n_s__IGNORECASE); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_3 = PyNumber_Or(__pyx_v_py_flags, __pyx_t_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
* self._compile_map[key] = rexp_compiled
* return rexp_compiled
*/
- __pyx_t_3 = PyObject_GetAttr(__pyx_v_4lxml_5etree_re, __pyx_n_s__compile); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 493; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_re, __pyx_n_s__compile); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 493; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 493; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
PyObject *__pyx_v_s = 0;
PyObject *__pyx_v_rexp = 0;
PyObject *__pyx_v_flags = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("test (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__ctxt,&__pyx_n_s__s,&__pyx_n_s__rexp,&__pyx_n_s__flags,0};
PyObject* values[4] = {0,0,0,0};
- values[3] = ((PyObject *)__pyx_kp_u_21);
+ values[3] = ((PyObject *)__pyx_kp_u_25);
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
* return False
* else:
*/
- __pyx_t_3 = PyObject_GetAttr(__pyx_v_rexpc, __pyx_n_s__search); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 501; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_rexpc, __pyx_n_s__search); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 501; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 501; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
PyObject *__pyx_v_s = 0;
PyObject *__pyx_v_rexp = 0;
PyObject *__pyx_v_flags = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("match (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__ctxt,&__pyx_n_s__s,&__pyx_n_s__rexp,&__pyx_n_s__flags,0};
PyObject* values[4] = {0,0,0,0};
- values[3] = ((PyObject *)__pyx_kp_u_21);
+ values[3] = ((PyObject *)__pyx_kp_u_25);
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
* if not results:
* return ()
*/
- __pyx_t_3 = PyObject_GetAttr(__pyx_v_rexpc, __pyx_n_s__findall); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 512; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_rexpc, __pyx_n_s__findall); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 512; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 512; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
* if not result:
* return ()
*/
- __pyx_t_4 = PyObject_GetAttr(__pyx_v_rexpc, __pyx_n_s__search); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 516; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_rexpc, __pyx_n_s__search); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 516; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 516; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
* results.extend( result.groups(u'') )
* result_list = []
*/
- __pyx_t_3 = PyObject_GetAttr(__pyx_v_result, __pyx_n_s__group); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 519; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_result, __pyx_n_s__group); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 519; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_1 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 519; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
* result_list = []
* root = Element(u'matches')
*/
- __pyx_t_3 = PyObject_GetAttr(__pyx_v_results, __pyx_n_s__extend); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_results, __pyx_n_s__extend); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_1 = PyObject_GetAttr(__pyx_v_result, __pyx_n_s__groups); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_result, __pyx_n_s__groups); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_k_tuple_305), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_k_tuple_319), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
* join_groups = u''.join
* for s_match in results:
*/
- __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__Element); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 522; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s__Element); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 522; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
- __pyx_t_1 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_k_tuple_306), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 522; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_k_tuple_320), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 522; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_v_root = __pyx_t_1;
* for s_match in results:
* if python.PyTuple_CheckExact(s_match):
*/
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_kp_u_21), __pyx_n_s__join); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 523; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_kp_u_25), __pyx_n_s__join); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 523; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_join_groups = __pyx_t_1;
__pyx_t_1 = 0;
* elem.text = s_match
* result_list.append(elem)
*/
- __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__SubElement); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 527; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s__SubElement); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 527; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 527; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
* result_list.append(elem)
* return result_list
*/
- if (PyObject_SetAttr(__pyx_v_elem, __pyx_n_s__text, __pyx_v_s_match) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 528; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_elem, __pyx_n_s__text, __pyx_v_s_match) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 528; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":529
* elem = SubElement(root, u'match')
* return result_list
*
*/
- __pyx_t_9 = PyList_Append(__pyx_v_result_list, __pyx_v_elem); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 529; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_result_list, __pyx_v_elem); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 529; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
PyObject *__pyx_v_rexp = 0;
PyObject *__pyx_v_flags = 0;
PyObject *__pyx_v_replacement = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("replace (wrapper)", 0);
* cdef _register_in_context(self, _BaseContext context):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_3 = PyObject_GetAttr(__pyx_v_rexpc, __pyx_n_s__sub); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 541; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_rexpc, __pyx_n_s__sub); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 541; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_1 = PyInt_FromLong(__pyx_v_count); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 541; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
* context._addLocalExtensionFunction(ns, b"test", self.test)
* context._addLocalExtensionFunction(ns, b"match", self.match)
*/
- __Pyx_INCREF(((PyObject *)__pyx_kp_b_307));
- __pyx_v_ns = __pyx_kp_b_307;
+ __Pyx_INCREF(((PyObject *)__pyx_kp_b_321));
+ __pyx_v_ns = __pyx_kp_b_321;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":545
* cdef _register_in_context(self, _BaseContext context):
* context._addLocalExtensionFunction(ns, b"match", self.match)
* context._addLocalExtensionFunction(ns, b"replace", self.replace)
*/
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__test); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 545; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__test); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 545; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
((struct __pyx_vtabstruct_4lxml_5etree__BaseContext *)__pyx_v_context->__pyx_vtab)->_addLocalExtensionFunction(__pyx_v_context, ((PyObject *)__pyx_v_ns), ((PyObject *)__pyx_n_b__test), __pyx_t_1);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
* context._addLocalExtensionFunction(ns, b"replace", self.replace)
*
*/
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__match); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 546; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__match); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 546; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
((struct __pyx_vtabstruct_4lxml_5etree__BaseContext *)__pyx_v_context->__pyx_vtab)->_addLocalExtensionFunction(__pyx_v_context, ((PyObject *)__pyx_v_ns), ((PyObject *)__pyx_n_b__match), __pyx_t_1);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
*
*
*/
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__replace); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 547; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__replace); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 547; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
((struct __pyx_vtabstruct_4lxml_5etree__BaseContext *)__pyx_v_context->__pyx_vtab)->_addLocalExtensionFunction(__pyx_v_context, ((PyObject *)__pyx_v_ns), ((PyObject *)__pyx_n_b__replace), __pyx_t_1);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
* u"Non-Element values not supported at this point - got %r" % value
* # support strings by appending text nodes to an Element
*/
- __pyx_t_10 = __Pyx_GetName(__pyx_m, __pyx_n_s__XPathResultError); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 582; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
+ __pyx_t_10 = __Pyx_GetModuleGlobalName(__pyx_n_s__XPathResultError); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 582; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
__Pyx_GOTREF(__pyx_t_10);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":583
* # support strings by appending text nodes to an Element
* if isinstance(value, unicode):
*/
- __pyx_t_13 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_308), __pyx_v_value); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 583; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
+ __pyx_t_13 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_322), __pyx_v_value); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 583; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_13));
__Pyx_Raise(__pyx_t_10, ((PyObject *)__pyx_t_13), 0, 0);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
* context._hold(fake_node)
* else:
*/
- __pyx_t_13 = ((PyObject *)__pyx_f_4lxml_5etree__makeElement(((PyObject *)__pyx_kp_s_309), NULL, __pyx_v_doc, ((struct __pyx_obj_4lxml_5etree__BaseParser *)Py_None), Py_None, Py_None, Py_None, Py_None, Py_None)); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 589; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
+ __pyx_t_13 = ((PyObject *)__pyx_f_4lxml_5etree__makeElement(((PyObject *)__pyx_kp_s_323), NULL, __pyx_v_doc, ((struct __pyx_obj_4lxml_5etree__BaseParser *)Py_None), Py_None, Py_None, Py_None, Py_None, Py_None)); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 589; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
__Pyx_GOTREF(__pyx_t_13);
__Pyx_DECREF(((PyObject *)__pyx_v_fake_node));
__pyx_v_fake_node = ((struct LxmlElement *)__pyx_t_13);
* if c_node is NULL:
* raise MemoryError()
*/
- __pyx_v_c_node = xmlNewDocComment(__pyx_v_doc->_c_doc, ((unsigned char *)((unsigned char *)__pyx_k_21)));
+ __pyx_v_c_node = xmlNewDocComment(__pyx_v_doc->_c_doc, ((unsigned char *)((unsigned char *)__pyx_k_25)));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":595
* # append a comment node to keep the text nodes separate
* u"This is not a supported node-set result: %r" % value
* except:
*/
- __pyx_t_13 = __Pyx_GetName(__pyx_m, __pyx_n_s__XPathResultError); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 605; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
+ __pyx_t_13 = __Pyx_GetModuleGlobalName(__pyx_n_s__XPathResultError); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 605; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
__Pyx_GOTREF(__pyx_t_13);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":606
* except:
* xpath.xmlXPathFreeNodeSet(resultSet)
*/
- __pyx_t_10 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_310), __pyx_v_value); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 606; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
+ __pyx_t_10 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_324), __pyx_v_value); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 606; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_10));
__Pyx_Raise(__pyx_t_13, ((PyObject *)__pyx_t_10), 0, 0);
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
* python._fqtypename(obj)
* return xpath.xmlXPathWrapNodeSet(resultSet)
*/
- __pyx_t_13 = __Pyx_GetName(__pyx_m, __pyx_n_s__XPathResultError); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 611; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_13 = __Pyx_GetModuleGlobalName(__pyx_n_s__XPathResultError); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 611; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_13);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":612
* return xpath.xmlXPathWrapNodeSet(resultSet)
*
*/
- __pyx_t_10 = PyBytes_FromString(_fqtypename(__pyx_v_obj)); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 612; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_10 = __Pyx_PyBytes_FromString(_fqtypename(__pyx_v_obj)); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 612; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_10));
- __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_311), ((PyObject *)__pyx_t_10)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 611; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_325), ((PyObject *)__pyx_t_10)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 611; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_2));
__Pyx_DECREF(((PyObject *)__pyx_t_10)); __pyx_t_10 = 0;
__Pyx_Raise(__pyx_t_13, ((PyObject *)__pyx_t_2), 0, 0);
* elif xpathObj.type == xpath.XPATH_NODESET:
* return _createNodeSetResult(xpathObj, doc, context)
*/
- __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__XPathResultError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 618; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__XPathResultError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 618; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
- __Pyx_Raise(__pyx_t_2, ((PyObject *)__pyx_kp_u_312), 0, 0);
+ __Pyx_Raise(__pyx_t_2, ((PyObject *)__pyx_kp_u_326), 0, 0);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
{__pyx_filename = __pyx_f[7]; __pyx_lineno = 618; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L3;
*
* cdef object _createNodeSetResult(xpath.xmlXPathObject* xpathObj, _Document doc,
*/
- __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__XPathResultError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 642; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__XPathResultError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 642; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = PyInt_FromLong(__pyx_v_xpathObj->type); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 642; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)(&PyUnicode_Type))), ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 642; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
- __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_313), __pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 642; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_327), __pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 642; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_4));
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_Raise(__pyx_t_2, ((PyObject *)__pyx_t_4), 0, 0);
*/
__pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__fakeDocElementFactory(__pyx_v_doc, __pyx_v_c_node)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 670; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
- __pyx_t_5 = PyList_Append(__pyx_v_results, __pyx_t_4); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 669; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_PyList_Append(__pyx_v_results, __pyx_t_4); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 669; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
goto __pyx_L3;
}
*/
__pyx_t_4 = __pyx_f_4lxml_5etree__buildElementStringResult(__pyx_v_doc, __pyx_v_c_node, __pyx_v_context); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 675; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
- __pyx_t_5 = PyList_Append(__pyx_v_results, __pyx_t_4); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 674; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_PyList_Append(__pyx_v_results, __pyx_t_4); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 674; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
goto __pyx_L3;
}
__Pyx_GIVEREF(__pyx_t_7);
__pyx_t_4 = 0;
__pyx_t_7 = 0;
- __pyx_t_5 = PyList_Append(__pyx_v_results, ((PyObject *)__pyx_t_8)); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 677; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_PyList_Append(__pyx_v_results, ((PyObject *)__pyx_t_8)); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 677; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0;
goto __pyx_L3;
}
*/
__pyx_t_8 = PyInt_FromLong(__pyx_v_c_node->type); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 692; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_8);
- __pyx_t_7 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_314), __pyx_t_8); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 692; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_328), __pyx_t_8); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 692; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_7));
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_Raise(__pyx_builtin_NotImplementedError, ((PyObject *)__pyx_t_7), 0, 0);
* cdef object _elementStringResultFactory(string_value, _Element parent,
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___parent); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 735; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s___parent); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 735; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
* result._parent = parent
* result.is_attribute = is_attribute
*/
- __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s_315); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 748; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_329); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 748; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 748; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
* result.is_attribute = is_attribute
* result.is_tail = is_tail
*/
- if (PyObject_SetAttr(__pyx_v_result, __pyx_n_s___parent, ((PyObject *)__pyx_v_parent)) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 749; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_result, __pyx_n_s___parent, ((PyObject *)__pyx_v_parent)) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 749; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":750
* result = _ElementStringResult(string_value)
*/
__pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_is_attribute); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 750; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
- if (PyObject_SetAttr(__pyx_v_result, __pyx_n_s__is_attribute, __pyx_t_4) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 750; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_result, __pyx_n_s__is_attribute, __pyx_t_4) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 750; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":751
*/
__pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_is_tail); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 751; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
- if (PyObject_SetAttr(__pyx_v_result, __pyx_n_s__is_tail, __pyx_t_4) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 751; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_result, __pyx_n_s__is_tail, __pyx_t_4) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 751; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":752
*/
__pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_is_text); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 752; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
- if (PyObject_SetAttr(__pyx_v_result, __pyx_n_s__is_text, __pyx_t_4) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 752; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_result, __pyx_n_s__is_text, __pyx_t_4) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 752; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":753
* return result
* else:
*/
- if (PyObject_SetAttr(__pyx_v_result, __pyx_n_s__attrname, __pyx_v_attrname) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 753; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_result, __pyx_n_s__attrname, __pyx_v_attrname) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 753; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":754
* result.is_text = is_text
* args.reverse()
*
*/
- __pyx_t_7 = PyList_Append(__pyx_v_args, __pyx_v_o); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 818; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_args, __pyx_v_o); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 818; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":819
__Pyx_GIVEREF(((PyObject *)__pyx_t_5));
__Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
__Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
- __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_38), ((PyObject *)__pyx_t_6)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 844; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_42), ((PyObject *)__pyx_t_6)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 844; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_5));
__Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
__pyx_v_fref = ((PyObject *)__pyx_t_5);
* context._exc._store_exception(
* XPathFunctionError(u"XPath function '%s' not found" % fref)) # <<<<<<<<<<<<<<
*/
- __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__XPathFunctionError); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 850; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s__XPathFunctionError); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 850; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
- __pyx_t_6 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_316), __pyx_v_fref); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 850; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_330), __pyx_v_fref); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 850; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_6));
__pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 850; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
PyObject *__pyx_v_enable_regexp = 0;
PyObject *__pyx_v_variables = 0;
PyObject *__pyx_v_build_smart_strings = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
* build_smart_strings)
*
*/
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__BaseContext)), __pyx_n_s____init__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__BaseContext)), __pyx_n_s____init__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":58
* name_utf = self._to_utf(name)
* xpath.xmlXPathRegisterVariable(
*/
- __pyx_t_1 = PyObject_GetAttr(__pyx_v_variable_dict, __pyx_n_s__items); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_variable_dict, __pyx_n_s__items); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
PyObject *__pyx_v_extensions = 0;
PyObject *__pyx_v_enable_regexp = 0;
PyObject *__pyx_v_smart_strings = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
* u"Use it at your own risk.")
* self._context = _XPathContext(namespaces, extensions, self._error_log,
*/
- __pyx_t_1 = PyObject_GetAttr(__pyx_v_warnings, __pyx_n_s__warn); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_warnings, __pyx_n_s__warn); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_k_tuple_318), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_k_tuple_332), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __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;
#ifndef CYTHON_WITHOUT_ASSERTIONS
__pyx_t_1 = (((PyObject *)__pyx_v_self->_error_log) != Py_None);
if (unlikely(!__pyx_t_1)) {
- PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_295));
+ PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_309));
{__pyx_filename = __pyx_f[18]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
#endif
static PyObject *__pyx_pw_4lxml_5etree_19_XPathEvaluatorBase_7evaluate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v__eval_arg = 0;
PyObject *__pyx_v__variables = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("evaluate (wrapper)", 0);
*/
{
#ifdef WITH_THREAD
- PyThreadState *_save = NULL;
- #endif
+ PyThreadState *_save;
Py_UNBLOCK_THREADS
+ #endif
/*try:*/ {
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":198
* self._eval_lock, python.WAIT_LOCK)
*/
/*finally:*/ {
+ #ifdef WITH_THREAD
Py_BLOCK_THREADS
+ #endif
}
}
* return 0
*
*/
- __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__XPathError); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s__XPathError); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
- __Pyx_Raise(__pyx_t_3, ((PyObject *)__pyx_kp_u_319), 0, 0);
+ __Pyx_Raise(__pyx_t_3, ((PyObject *)__pyx_kp_u_333), 0, 0);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
{__pyx_filename = __pyx_f[18]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L7;
* if entries:
* message = entries._buildExceptionMessage(None)
*/
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self->_error_log), __pyx_n_s__filter_types); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_error_log), __pyx_n_s__filter_types); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
* raise XPathSyntaxError(self._error_log._buildExceptionMessage(
* u"Error in xpath expression"),
*/
- __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__XPathSyntaxError); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s__XPathSyntaxError); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
* u"Error in xpath expression"),
* self._error_log)
*/
- __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__XPathSyntaxError); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__XPathSyntaxError); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_2 = __pyx_f_4lxml_5etree_13_BaseErrorLog__buildExceptionMessage(((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_v_self->_error_log), ((PyObject *)__pyx_kp_u_320)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __pyx_f_4lxml_5etree_13_BaseErrorLog__buildExceptionMessage(((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_v_self->_error_log), ((PyObject *)__pyx_kp_u_334)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":217
* if not entries:
* entries = self._error_log.filter_types(_XPATH_SYNTAX_ERRORS)
*/
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self->_error_log), __pyx_n_s__filter_types); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_error_log), __pyx_n_s__filter_types); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
* if entries:
* message = entries._buildExceptionMessage(None)
*/
- __pyx_t_3 = PyObject_GetAttr(((PyObject *)__pyx_v_self->_error_log), __pyx_n_s__filter_types); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_error_log), __pyx_n_s__filter_types); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
* raise XPathEvalError(self._error_log._buildExceptionMessage(
* u"Error in xpath expression"),
*/
- __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__XPathEvalError); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 227; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__XPathEvalError); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 227; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 227; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
* u"Error in xpath expression"),
* self._error_log)
*/
- __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__XPathEvalError); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 228; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s__XPathEvalError); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 228; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_2 = __pyx_f_4lxml_5etree_13_BaseErrorLog__buildExceptionMessage(((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_v_self->_error_log), ((PyObject *)__pyx_kp_u_320)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 228; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __pyx_f_4lxml_5etree_13_BaseErrorLog__buildExceptionMessage(((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_v_self->_error_log), ((PyObject *)__pyx_kp_u_334)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 228; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":230
PyObject *__pyx_v_extensions = 0;
PyObject *__pyx_v_regexp = 0;
PyObject *__pyx_v_smart_strings = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
* cdef int ns_register_status
*/
values[2] = ((PyObject *)Py_None);
- values[3] = __pyx_k_321;
- values[4] = __pyx_k_322;
+ values[3] = __pyx_k_335;
+ values[4] = __pyx_k_336;
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
* regexp, smart_strings)
* xpathCtxt = xpath.xmlXPathNewContext(doc._c_doc)
*/
- __pyx_t_2 = PyObject_GetAttr(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__XPathEvaluatorBase)), __pyx_n_s____init__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__XPathEvaluatorBase)), __pyx_n_s____init__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":277
static PyObject *__pyx_pw_4lxml_5etree_21XPathElementEvaluator_3register_namespace(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_prefix = 0;
PyObject *__pyx_v_uri = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("register_namespace (wrapper)", 0);
*/
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!(__pyx_v_self->__pyx_base._xpathCtxt != NULL))) {
- PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_323));
+ PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_337));
{__pyx_filename = __pyx_f[18]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
#endif
*/
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!(__pyx_v_self->__pyx_base._xpathCtxt != NULL))) {
- PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_323));
+ PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_337));
{__pyx_filename = __pyx_f[18]; __pyx_lineno = 292; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
#endif
* self._context.addNamespace(prefix, uri)
*
*/
- __pyx_t_1 = PyObject_GetAttr(__pyx_v_namespaces, __pyx_n_s__items); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_namespaces, __pyx_n_s__items); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
static PyObject *__pyx_pw_4lxml_5etree_21XPathElementEvaluator_7__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v__path = 0;
PyObject *__pyx_v__variables = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
*/
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!(__pyx_v_self->__pyx_base._xpathCtxt != NULL))) {
- PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_323));
+ PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_337));
{__pyx_filename = __pyx_f[18]; __pyx_lineno = 309; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
#endif
*/
{
#ifdef WITH_THREAD
- PyThreadState *_save = NULL;
- #endif
+ PyThreadState *_save;
Py_UNBLOCK_THREADS
+ #endif
/*try:*/ {
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":321
* c_path, self._xpathCtxt)
*/
/*finally:*/ {
+ #ifdef WITH_THREAD
Py_BLOCK_THREADS
+ #endif
}
}
PyObject *__pyx_v_extensions = 0;
PyObject *__pyx_v_regexp = 0;
PyObject *__pyx_v_smart_strings = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
* self, etree._context_node, namespaces=namespaces,
*/
values[2] = ((PyObject *)Py_None);
- values[3] = __pyx_k_324;
- values[4] = __pyx_k_325;
+ values[3] = __pyx_k_338;
+ values[4] = __pyx_k_339;
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
* self, etree._context_node, namespaces=namespaces,
* extensions=extensions, regexp=regexp,
*/
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_XPathElementEvaluator)), __pyx_n_s____init__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 342; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_XPathElementEvaluator)), __pyx_n_s____init__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 342; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":343
static PyObject *__pyx_pw_4lxml_5etree_22XPathDocumentEvaluator_3__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v__path = 0;
PyObject *__pyx_v__variables = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
*/
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!(__pyx_v_self->__pyx_base.__pyx_base._xpathCtxt != NULL))) {
- PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_323));
+ PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_337));
{__pyx_filename = __pyx_f[18]; __pyx_lineno = 358; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
#endif
*/
{
#ifdef WITH_THREAD
- PyThreadState *_save = NULL;
- #endif
+ PyThreadState *_save;
Py_UNBLOCK_THREADS
+ #endif
/*try:*/ {
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":370
* self._xpathCtxt.node = tree.xmlDocGetRootElement(c_doc)
*/
/*finally:*/ {
+ #ifdef WITH_THREAD
Py_BLOCK_THREADS
+ #endif
}
}
PyObject *__pyx_v_extensions = 0;
PyObject *__pyx_v_regexp = 0;
PyObject *__pyx_v_smart_strings = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("XPathEvaluator (wrapper)", 0);
*/
values[1] = ((PyObject *)Py_None);
values[2] = ((PyObject *)Py_None);
- values[3] = __pyx_k_326;
- values[4] = __pyx_k_327;
+ values[3] = __pyx_k_340;
+ values[4] = __pyx_k_341;
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
PyObject *__pyx_v_extensions = 0;
PyObject *__pyx_v_regexp = 0;
PyObject *__pyx_v_smart_strings = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
*/
values[1] = ((PyObject *)Py_None);
values[2] = ((PyObject *)Py_None);
- values[3] = __pyx_k_328;
- values[4] = __pyx_k_329;
+ values[3] = __pyx_k_342;
+ values[4] = __pyx_k_343;
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
* regexp, smart_strings)
* self._path = _utf8(path)
*/
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__XPathEvaluatorBase)), __pyx_n_s____init__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 429; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__XPathEvaluatorBase)), __pyx_n_s____init__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 429; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":430
static PyObject *__pyx_pw_4lxml_5etree_5XPath_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v__etree_or_element = 0;
PyObject *__pyx_v__variables = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
*/
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!(__pyx_v_self->__pyx_base._xpathCtxt != NULL))) {
- PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_323));
+ PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_337));
{__pyx_filename = __pyx_f[18]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
#endif
*/
{
#ifdef WITH_THREAD
- PyThreadState *_save = NULL;
- #endif
+ PyThreadState *_save;
Py_UNBLOCK_THREADS
+ #endif
/*try:*/ {
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":459
* self._xpath, self._xpathCtxt)
*/
/*finally:*/ {
+ #ifdef WITH_THREAD
Py_BLOCK_THREADS
+ #endif
}
}
*
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__path); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 477; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__path); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 477; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
PyObject *__pyx_v_extensions = 0;
PyObject *__pyx_v_regexp = 0;
PyObject *__pyx_v_smart_strings = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
* path, namespaces = self._nsextract_path(path)
*/
values[1] = ((PyObject *)Py_None);
- values[2] = __pyx_k_330;
- values[3] = __pyx_k_331;
+ values[2] = __pyx_k_344;
+ values[3] = __pyx_k_345;
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
* extensions=extensions, regexp=regexp,
* smart_strings=smart_strings)
*/
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_XPath)), __pyx_n_s____init__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 497; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_XPath)), __pyx_n_s____init__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 497; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 497; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
*/
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 507; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __Pyx_INCREF(((PyObject *)__pyx_kp_b_21));
- PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_kp_b_21));
- __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_21));
+ __Pyx_INCREF(((PyObject *)__pyx_kp_b_25));
+ PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_kp_b_25));
+ __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_25));
__Pyx_INCREF(__pyx_v_path_utf);
PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_path_utf);
__Pyx_GIVEREF(__pyx_v_path_utf);
* i += 1
* namespace_defs.append(namespace_def)
*/
- __pyx_t_1 = ((PyObject *)PyBytes_FromFormat(__pyx_k_332, __pyx_v_i)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 511; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = ((PyObject *)PyBytes_FromFormat(__pyx_k_346, __pyx_v_i)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 511; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF(((PyObject *)__pyx_v_prefix));
__pyx_v_prefix = ((PyObject*)__pyx_t_1);
* namespace = namespace_def[1:-1] # remove '{}'
* namespace = (<bytes>namespace).decode('utf8')
*/
- __pyx_t_6 = PyList_Append(__pyx_v_namespace_defs, __pyx_v_namespace_def); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 513; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_PyList_Append(__pyx_v_namespace_defs, __pyx_v_namespace_def); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 513; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":514
* i += 1
* namespace = (<bytes>namespace).decode('utf8')
* namespaces[prefix.decode('utf8')] = namespace
*/
- __pyx_t_1 = __Pyx_PySequence_GetSlice(__pyx_v_namespace_def, 1, -1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 514; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetSlice(__pyx_v_namespace_def, 1, -1, NULL, NULL, &__pyx_k_slice_347, 1, 1, 1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 514; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_v_namespace);
__pyx_v_namespace = __pyx_t_1;
* # FIXME: this also replaces {namespaces} within strings!
* path_utf = path_utf.replace(namespace_def, prefix_str)
*/
- __pyx_t_1 = PyNumber_Add(((PyObject *)__pyx_v_prefix), ((PyObject *)__pyx_kp_b_245)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 517; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyNumber_Add(((PyObject *)__pyx_v_prefix), ((PyObject *)__pyx_kp_b_254)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 517; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_1));
__Pyx_XDECREF(((PyObject *)__pyx_v_prefix_str));
__pyx_v_prefix_str = ((PyObject*)__pyx_t_1);
* path = path_utf.decode('utf8')
* return path, namespaces
*/
- __pyx_t_1 = PyObject_GetAttr(__pyx_v_path_utf, __pyx_n_s__replace); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 519; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_path_utf, __pyx_n_s__replace); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 519; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 519; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
* path = path_utf.decode('utf8') # <<<<<<<<<<<<<<
* return path, namespaces
*/
- __pyx_t_2 = PyObject_GetAttr(__pyx_v_path_utf, __pyx_n_s__decode); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_path_utf, __pyx_n_s__decode); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_8 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_333), NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_8 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_348), NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_v_path);
* context._parser = parser
* context._c_style_doc = NULL
*/
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_parser), __pyx_n_s__resolvers); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_parser), __pyx_n_s__resolvers); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __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__ResolverRegistry))))) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_t_2 = __pyx_f_4lxml_5etree__initResolverContext(((struct __pyx_obj_4lxml_5etree__ResolverContext *)__pyx_v_context), ((struct __pyx_obj_4lxml_5etree__ResolverRegistry *)__pyx_t_1)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
* c_uri += 26
* uri = _decodeFilename(c_uri)
*/
- __pyx_t_4 = (xmlStrncmp(((unsigned char *)((unsigned char *)__pyx_k_334)), __pyx_v_c_uri, 26) == 0);
+ __pyx_t_4 = (xmlStrncmp(((unsigned char *)((unsigned char *)__pyx_k_349)), __pyx_v_c_uri, 26) == 0);
if (__pyx_t_4) {
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":90
*
* c_doc = NULL
*/
- __pyx_t_8 = PyObject_GetAttr(((PyObject *)__pyx_v_resolvers), __pyx_n_s__resolve); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+ __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_resolvers), __pyx_n_s__resolve); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_4 = (((PyObject *)__pyx_v_doc_ref) != Py_None);
if (__pyx_t_4) {
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":96
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":104
+ * c_doc = _parseDocFromFilelike(
+ * doc_ref._file, doc_ref._filename, context._parser)
+ * elif doc_ref._type == PARSER_DATA_EMPTY: # <<<<<<<<<<<<<<
+ * c_doc = _newXMLDoc()
+ * if c_doc is not NULL and c_doc.URL is NULL:
+ */
+ switch (__pyx_v_doc_ref->_type) {
+
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":96
* c_doc = NULL
* if doc_ref is not None:
* if doc_ref._type == PARSER_DATA_STRING: # <<<<<<<<<<<<<<
* c_doc = _parseDoc(
* doc_ref._data_bytes, doc_ref._filename, context._parser)
*/
- __pyx_t_4 = (__pyx_v_doc_ref->_type == __pyx_e_4lxml_5etree_PARSER_DATA_STRING);
- if (__pyx_t_4) {
+ case __pyx_e_4lxml_5etree_PARSER_DATA_STRING:
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":98
* if doc_ref._type == PARSER_DATA_STRING:
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_v_c_doc = __pyx_t_1;
- goto __pyx_L15;
- }
+ break;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":99
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":99
* c_doc = _parseDoc(
* doc_ref._data_bytes, doc_ref._filename, context._parser)
* elif doc_ref._type == PARSER_DATA_FILENAME: # <<<<<<<<<<<<<<
* c_doc = _parseDocFromFile(doc_ref._filename, context._parser)
* elif doc_ref._type == PARSER_DATA_FILE:
*/
- __pyx_t_4 = (__pyx_v_doc_ref->_type == __pyx_e_4lxml_5etree_PARSER_DATA_FILENAME);
- if (__pyx_t_4) {
+ case __pyx_e_4lxml_5etree_PARSER_DATA_FILENAME:
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":100
* doc_ref._data_bytes, doc_ref._filename, context._parser)
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_v_c_doc = __pyx_t_1;
- goto __pyx_L15;
- }
+ break;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":101
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":101
* elif doc_ref._type == PARSER_DATA_FILENAME:
* c_doc = _parseDocFromFile(doc_ref._filename, context._parser)
* elif doc_ref._type == PARSER_DATA_FILE: # <<<<<<<<<<<<<<
* c_doc = _parseDocFromFilelike(
* doc_ref._file, doc_ref._filename, context._parser)
*/
- __pyx_t_4 = (__pyx_v_doc_ref->_type == __pyx_e_4lxml_5etree_PARSER_DATA_FILE);
- if (__pyx_t_4) {
+ case __pyx_e_4lxml_5etree_PARSER_DATA_FILE:
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":103
* elif doc_ref._type == PARSER_DATA_FILE:
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__pyx_v_c_doc = __pyx_t_1;
- goto __pyx_L15;
- }
+ break;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":104
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":104
* c_doc = _parseDocFromFilelike(
* doc_ref._file, doc_ref._filename, context._parser)
* elif doc_ref._type == PARSER_DATA_EMPTY: # <<<<<<<<<<<<<<
* c_doc = _newXMLDoc()
* if c_doc is not NULL and c_doc.URL is NULL:
*/
- __pyx_t_4 = (__pyx_v_doc_ref->_type == __pyx_e_4lxml_5etree_PARSER_DATA_EMPTY);
- if (__pyx_t_4) {
+ case __pyx_e_4lxml_5etree_PARSER_DATA_EMPTY:
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":105
* doc_ref._file, doc_ref._filename, context._parser)
*/
__pyx_t_1 = __pyx_f_4lxml_5etree__newXMLDoc(); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
__pyx_v_c_doc = __pyx_t_1;
- goto __pyx_L15;
+ break;
}
- __pyx_L15:;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":106
* elif doc_ref._type == PARSER_DATA_EMPTY:
* except:
*/
__pyx_v_c_doc->URL = xmlStrdup(__pyx_v_c_uri);
- goto __pyx_L16;
+ goto __pyx_L15;
}
- __pyx_L16:;
+ __pyx_L15:;
goto __pyx_L14;
}
__pyx_L14:;
*/
__pyx_t_4 = __pyx_f_4lxml_5etree__decodeFilename(__pyx_v_c_uri); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
__Pyx_GOTREF(__pyx_t_4);
- __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_335), __pyx_t_4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_350), __pyx_t_4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_5));
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_v_message = ((PyObject*)__pyx_t_5);
* else:
* exception = XSLTParseError(message)
*/
- __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__XSLTApplyError); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s__XSLTApplyError); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
__Pyx_GOTREF(__pyx_t_4);
* (<_XSLTResolverContext>context)._store_exception(exception)
* except Exception, e:
*/
- __pyx_t_7 = __Pyx_GetName(__pyx_m, __pyx_n_s__XSLTParseError); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s__XSLTParseError); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
__Pyx_GOTREF(__pyx_t_4);
int __pyx_v_create_dir;
int __pyx_v_read_network;
int __pyx_v_write_network;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
* items.sort()
* return u"%s(%s)" % (
*/
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__options); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 249; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__options); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 249; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__items); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 249; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s__items); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 249; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 249; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
* return u"%s(%s)" % (
* python._fqtypename(self).decode('UTF-8').split(u'.')[-1],
*/
- __pyx_t_1 = PyObject_GetAttr(__pyx_v_items, __pyx_n_s__sort); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 250; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_items, __pyx_n_s__sort); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 250; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 250; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = ((PyObject *)PyUnicode_Split(__pyx_t_2, ((PyObject *)__pyx_kp_u_5), -1)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_1));
__Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
- __pyx_t_2 = __Pyx_GetItemInt_List(((PyObject *)__pyx_t_1), -1, sizeof(long), PyInt_FromLong); if (!__pyx_t_2) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_GetItemInt_List(((PyObject *)__pyx_t_1), -1, sizeof(long), PyInt_FromLong, 1, 1, 1); if (!__pyx_t_2) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_v_item);
__pyx_v_item = __pyx_t_7;
__pyx_t_7 = 0;
- __pyx_t_7 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_338), __pyx_v_item); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_353), __pyx_v_item); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_7));
- if (unlikely(__Pyx_PyList_Append(__pyx_t_1, (PyObject*)__pyx_t_7))) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_7))) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- __pyx_t_4 = ((PyObject *)__pyx_t_1);
- __Pyx_INCREF(__pyx_t_4);
+ __pyx_t_4 = ((PyObject *)PyUnicode_Join(__pyx_kp_u_352, ((PyObject *)__pyx_t_1))); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
- __pyx_t_1 = ((PyObject *)PyUnicode_Join(__pyx_kp_u_337, __pyx_t_4)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_t_4);
- PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
+ PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
__Pyx_GIVEREF(__pyx_t_2);
- PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1);
- __Pyx_GIVEREF(__pyx_t_1);
+ PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_4);
+ __Pyx_GIVEREF(__pyx_t_4);
__pyx_t_2 = 0;
- __pyx_t_1 = 0;
- __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_336), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 251; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(((PyObject *)__pyx_t_1));
- __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
- __pyx_r = ((PyObject *)__pyx_t_1);
- __pyx_t_1 = 0;
+ __pyx_t_4 = 0;
+ __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_351), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 251; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(((PyObject *)__pyx_t_4));
+ __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
+ __pyx_r = ((PyObject *)__pyx_t_4);
+ __pyx_t_4 = 0;
goto __pyx_L0;
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
PyObject *__pyx_v_error_log = 0;
PyObject *__pyx_v_enable_regexp = 0;
PyObject *__pyx_v_build_smart_strings = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
* if ns_name_tuple[0] is None:
* raise XSLTExtensionError, \
*/
- __pyx_t_4 = PyObject_GetAttr(__pyx_v_extensions, __pyx_n_s__items); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 281; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_extensions, __pyx_n_s__items); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 281; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 281; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
* raise XSLTExtensionError, \
* u"extensions must not have empty namespaces"
*/
- __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_ns_name_tuple, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_5) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 282; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_ns_name_tuple, 0, sizeof(long), PyInt_FromLong, 0, 0, 1); if (!__pyx_t_5) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 282; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_3 = (__pyx_t_5 == Py_None);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
* u"extensions must not have empty namespaces"
* if isinstance(extension, XSLTExtension):
*/
- __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__XSLTExtensionError); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 283; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s__XSLTExtensionError); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 283; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
- __Pyx_Raise(__pyx_t_5, ((PyObject *)__pyx_kp_u_339), 0, 0);
+ __Pyx_Raise(__pyx_t_5, ((PyObject *)__pyx_kp_u_354), 0, 0);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
{__pyx_filename = __pyx_f[2]; __pyx_lineno = 283; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L8;
* ns_utf = _utf8(ns_name_tuple[0])
* name_utf = _utf8(ns_name_tuple[1])
*/
- __pyx_t_5 = PyObject_GetAttr(__pyx_v_extensions, __pyx_n_s__copy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 288; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_extensions, __pyx_n_s__copy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 288; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_9 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 288; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_9);
* name_utf = _utf8(ns_name_tuple[1])
* self._extension_elements[(ns_utf, name_utf)] = extension
*/
- __pyx_t_9 = __Pyx_GetItemInt(__pyx_v_ns_name_tuple, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_9) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 289; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_9 = __Pyx_GetItemInt(__pyx_v_ns_name_tuple, 0, sizeof(long), PyInt_FromLong, 0, 0, 1); if (!__pyx_t_9) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 289; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_5 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_t_9)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 289; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
* self._extension_elements[(ns_utf, name_utf)] = extension
* del extensions[ns_name_tuple]
*/
- __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_ns_name_tuple, 1, sizeof(long), PyInt_FromLong); if (!__pyx_t_5) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 290; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_ns_name_tuple, 1, sizeof(long), PyInt_FromLong, 0, 0, 1); if (!__pyx_t_5) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 290; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_9 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_t_5)); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 290; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_9);
* build_smart_strings)
*
*/
- __pyx_t_4 = PyObject_GetAttr(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__BaseContext)), __pyx_n_s____init__); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__BaseContext)), __pyx_n_s____init__); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":294
static int __pyx_pw_4lxml_5etree_22_XSLTQuotedStringParam_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4lxml_5etree_22_XSLTQuotedStringParam_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_strval = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
PyObject *__pyx_v_extensions = 0;
PyObject *__pyx_v_regexp = 0;
PyObject *__pyx_v_access_control = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
* cdef xslt.xsltStylesheet* c_style
*/
values[1] = ((PyObject *)Py_None);
- values[2] = __pyx_k_340;
+ values[2] = __pyx_k_355;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":367
*
__pyx_t_4 = PyObject_Call(__pyx_builtin_id, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 385; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
- __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_341), __pyx_t_4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 385; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_356), __pyx_t_4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 385; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_1));
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_4 = ((PyObject *)PyUnicode_AsASCIIString(((PyObject *)__pyx_t_1))); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
*
*/
/*with:*/ {
- __pyx_t_6 = PyObject_GetAttr(((PyObject *)__pyx_v_self->_error_log), __pyx_n_s____exit__); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_error_log), __pyx_n_s____exit__); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_7 = __pyx_f_4lxml_5etree_9_ErrorLog___enter__(__pyx_v_self->_error_log); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
/*try:*/ {
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_12);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
- if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
+ if (__pyx_t_3 < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
__pyx_t_13 = (!__pyx_t_3);
if (__pyx_t_13) {
__Pyx_GIVEREF(__pyx_t_5);
}
/*finally:*/ {
if (__pyx_t_6) {
- __pyx_t_10 = PyObject_Call(__pyx_t_6, __pyx_k_tuple_342, NULL);
+ __pyx_t_10 = PyObject_Call(__pyx_t_6, __pyx_k_tuple_357, NULL);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_10);
__pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_10);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
- if (unlikely(__pyx_t_13 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_t_13 < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
}
goto __pyx_L19;
* raise XSLTParseError(self._error_log.last_error.message,
* self._error_log)
*/
- __pyx_t_4 = PyObject_GetAttr(__pyx_v_self->_error_log->__pyx_base.__pyx_base.last_error, __pyx_n_s__message); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_error_log->__pyx_base.__pyx_base.last_error, __pyx_n_s__message); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_13 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
* self._error_log)
* else:
*/
- __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__XSLTParseError); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 406; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s__XSLTParseError); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 406; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
- __pyx_t_1 = PyObject_GetAttr(__pyx_v_self->_error_log->__pyx_base.__pyx_base.last_error, __pyx_n_s__message); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 406; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_error_log->__pyx_base.__pyx_base.last_error, __pyx_n_s__message); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 406; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":407
* self._error_log._buildExceptionMessage(
* u"Cannot parse stylesheet"),
*/
- __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__XSLTParseError); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 409; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__XSLTParseError); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 409; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":410
* u"Cannot parse stylesheet"),
* self._error_log)
*/
- __pyx_t_5 = __pyx_f_4lxml_5etree_13_BaseErrorLog__buildExceptionMessage(((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_v_self->_error_log), ((PyObject *)__pyx_kp_u_343)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 410; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __pyx_f_4lxml_5etree_13_BaseErrorLog__buildExceptionMessage(((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_v_self->_error_log), ((PyObject *)__pyx_kp_u_358)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 410; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":412
static PyMethodDef __pyx_mdef_4lxml_5etree_4XSLT_7strparam = {__Pyx_NAMESTR("strparam"), (PyCFunction)__pyx_pw_4lxml_5etree_4XSLT_7strparam, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_4XSLT_6strparam)};
static PyObject *__pyx_pw_4lxml_5etree_4XSLT_7strparam(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_strval = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("strparam (wrapper)", 0);
static PyMethodDef __pyx_mdef_4lxml_5etree_4XSLT_9set_global_max_depth = {__Pyx_NAMESTR("set_global_max_depth"), (PyCFunction)__pyx_pw_4lxml_5etree_4XSLT_9set_global_max_depth, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_4XSLT_8set_global_max_depth)};
static PyObject *__pyx_pw_4lxml_5etree_4XSLT_9set_global_max_depth(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
int __pyx_v_max_depth;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("set_global_max_depth (wrapper)", 0);
* xslt.xsltMaxDepth = max_depth
*
*/
- __pyx_t_2 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_345), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 462; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_360), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 462; __pyx_clineno = __LINE__; goto __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;
PyObject *__pyx_v__input = 0;
PyObject *__pyx_v_profile_run = 0;
PyObject *__pyx_v_kw = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("apply (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s___input,&__pyx_n_s__profile_run,0};
PyObject* values[2] = {0,0};
- values[1] = __pyx_k_346;
+ values[1] = __pyx_k_361;
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
static PyObject *__pyx_pw_4lxml_5etree_4XSLT_13tostring(PyObject *__pyx_v_self, PyObject *__pyx_v_result_tree); /*proto*/
static char __pyx_doc_4lxml_5etree_4XSLT_12tostring[] = "tostring(self, result_tree)\n\n Save result doc to string based on stylesheet output method.\n\n :deprecated: use str(result_tree) instead.\n ";
static PyObject *__pyx_pw_4lxml_5etree_4XSLT_13tostring(PyObject *__pyx_v_self, PyObject *__pyx_v_result_tree) {
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("tostring (wrapper)", 0);
* def __copy__(self):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s____copy__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 481; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s____copy__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 481; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 481; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
PyObject *__pyx_v__input = 0;
PyObject *__pyx_v_profile_run = 0;
PyObject *__pyx_v_kw = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s___input,&__pyx_n_s__profile_run,0};
PyObject* values[2] = {0,0};
- values[1] = __pyx_k_347;
+ values[1] = __pyx_k_362;
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
*/
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!(__pyx_v_self->_c_style != NULL))) {
- PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_348));
+ PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_363));
{__pyx_filename = __pyx_f[2]; __pyx_lineno = 508; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
#endif
*/
__pyx_t_7 = (__pyx_v_error != Py_None);
if (__pyx_t_7) {
- __pyx_t_5 = PyObject_GetAttr(__pyx_v_error, __pyx_n_s__message); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 587; __pyx_clineno = __LINE__; goto __pyx_L20;}
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_error, __pyx_n_s__message); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 587; __pyx_clineno = __LINE__; goto __pyx_L20;}
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 587; __pyx_clineno = __LINE__; goto __pyx_L20;}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
* message = u"%s, line %d" % (error.message, error.line)
* else:
*/
- __pyx_t_5 = PyObject_GetAttr(__pyx_v_error, __pyx_n_s__line); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 588; __pyx_clineno = __LINE__; goto __pyx_L20;}
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_error, __pyx_n_s__line); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 588; __pyx_clineno = __LINE__; goto __pyx_L20;}
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_1 = PyObject_RichCompare(__pyx_t_5, __pyx_int_0, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 588; __pyx_clineno = __LINE__; goto __pyx_L20;}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
* else:
* message = error.message
*/
- __pyx_t_1 = PyObject_GetAttr(__pyx_v_error, __pyx_n_s__message); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 589; __pyx_clineno = __LINE__; goto __pyx_L20;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_error, __pyx_n_s__message); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 589; __pyx_clineno = __LINE__; goto __pyx_L20;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_5 = PyObject_GetAttr(__pyx_v_error, __pyx_n_s__line); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 589; __pyx_clineno = __LINE__; goto __pyx_L20;}
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_error, __pyx_n_s__line); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 589; __pyx_clineno = __LINE__; goto __pyx_L20;}
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 589; __pyx_clineno = __LINE__; goto __pyx_L20;}
__Pyx_GOTREF(__pyx_t_9);
__Pyx_GIVEREF(__pyx_t_5);
__pyx_t_1 = 0;
__pyx_t_5 = 0;
- __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_45), ((PyObject *)__pyx_t_9)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 589; __pyx_clineno = __LINE__; goto __pyx_L20;}
+ __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_49), ((PyObject *)__pyx_t_9)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 589; __pyx_clineno = __LINE__; goto __pyx_L20;}
__Pyx_GOTREF(((PyObject *)__pyx_t_5));
__Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0;
__pyx_v_message = ((PyObject *)__pyx_t_5);
* elif error is not None and error.line > 0:
* message = u"Error applying stylesheet, line %d" % error.line
*/
- __pyx_t_5 = PyObject_GetAttr(__pyx_v_error, __pyx_n_s__message); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 591; __pyx_clineno = __LINE__; goto __pyx_L20;}
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_error, __pyx_n_s__message); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 591; __pyx_clineno = __LINE__; goto __pyx_L20;}
__Pyx_GOTREF(__pyx_t_5);
__pyx_v_message = __pyx_t_5;
__pyx_t_5 = 0;
*/
__pyx_t_6 = (__pyx_v_error != Py_None);
if (__pyx_t_6) {
- __pyx_t_5 = PyObject_GetAttr(__pyx_v_error, __pyx_n_s__line); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 592; __pyx_clineno = __LINE__; goto __pyx_L20;}
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_error, __pyx_n_s__line); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 592; __pyx_clineno = __LINE__; goto __pyx_L20;}
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_9 = PyObject_RichCompare(__pyx_t_5, __pyx_int_0, Py_GT); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 592; __pyx_clineno = __LINE__; goto __pyx_L20;}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
* else:
* message = u"Error applying stylesheet"
*/
- __pyx_t_9 = PyObject_GetAttr(__pyx_v_error, __pyx_n_s__line); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 593; __pyx_clineno = __LINE__; goto __pyx_L20;}
+ __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_error, __pyx_n_s__line); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 593; __pyx_clineno = __LINE__; goto __pyx_L20;}
__Pyx_GOTREF(__pyx_t_9);
- __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_349), __pyx_t_9); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 593; __pyx_clineno = __LINE__; goto __pyx_L20;}
+ __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_364), __pyx_t_9); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 593; __pyx_clineno = __LINE__; goto __pyx_L20;}
__Pyx_GOTREF(((PyObject *)__pyx_t_5));
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_v_message = ((PyObject *)__pyx_t_5);
* raise XSLTApplyError(message, self._error_log)
* finally:
*/
- __Pyx_INCREF(((PyObject *)__pyx_kp_u_350));
- __pyx_v_message = ((PyObject *)__pyx_kp_u_350);
+ __Pyx_INCREF(((PyObject *)__pyx_kp_u_365));
+ __pyx_v_message = ((PyObject *)__pyx_kp_u_365);
}
__pyx_L27:;
* finally:
* if resolver_context is not None:
*/
- __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__XSLTApplyError); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 596; __pyx_clineno = __LINE__; goto __pyx_L20;}
+ __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s__XSLTApplyError); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 596; __pyx_clineno = __LINE__; goto __pyx_L20;}
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 596; __pyx_clineno = __LINE__; goto __pyx_L20;}
__Pyx_GOTREF(__pyx_t_9);
*/
{
#ifdef WITH_THREAD
- PyThreadState *_save = NULL;
- #endif
+ PyThreadState *_save;
Py_UNBLOCK_THREADS
+ #endif
/*try:*/ {
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":610
* fixThreadDictNames(<xmlNode*>c_result,
*/
/*finally:*/ {
+ #ifdef WITH_THREAD
Py_BLOCK_THREADS
+ #endif
}
}
goto __pyx_L31;
*/
{
#ifdef WITH_THREAD
- PyThreadState *_save = NULL;
- #endif
+ PyThreadState *_save;
Py_UNBLOCK_THREADS
+ #endif
/*try:*/ {
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":633
* self._c_style, c_input_doc, params, NULL, NULL, transform_ctxt)
*/
/*finally:*/ {
+ #ifdef WITH_THREAD
Py_BLOCK_THREADS
+ #endif
}
}
*/
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!(__pyx_v_stylesheet->_c_style != NULL))) {
- PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_348));
+ PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_363));
{__pyx_filename = __pyx_f[2]; __pyx_lineno = 676; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
#endif
* new_xslt._access_control = stylesheet._access_control
* new_xslt._error_log = _ErrorLog()
*/
- __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_4lxml_5etree_XSLT)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 677; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __pyx_tp_new_4lxml_5etree_XSLT(((PyTypeObject *)((PyObject*)__pyx_ptype_4lxml_5etree_XSLT)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 677; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
if (!(likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_4lxml_5etree_XSLT)))) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 677; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_v_new_xslt = ((struct __pyx_obj_4lxml_5etree_XSLT *)__pyx_t_1);
*/
{
#ifdef WITH_THREAD
- PyThreadState *_save = NULL;
- #endif
+ PyThreadState *_save;
Py_UNBLOCK_THREADS
+ #endif
/*try:*/ {
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":720
* self._xslt._c_style)
*/
/*finally:*/ {
+ #ifdef WITH_THREAD
Py_BLOCK_THREADS
+ #endif
}
}
* if s is NULL:
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s____unicode__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 728; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s____unicode__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 728; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 728; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
* try:
*/
__Pyx_XDECREF(__pyx_r);
- __Pyx_INCREF(((PyObject *)__pyx_kp_s_21));
- __pyx_r = ((PyObject *)__pyx_kp_s_21);
+ __Pyx_INCREF(((PyObject *)__pyx_kp_s_25));
+ __pyx_r = ((PyObject *)__pyx_kp_s_25);
goto __pyx_L0;
goto __pyx_L4;
}
* finally:
* tree.xmlFree(s)
*/
- __pyx_t_2 = PyBytes_FromStringAndSize(((const char*)__pyx_v_s) + 0, __pyx_v_l - 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 734; __pyx_clineno = __LINE__; goto __pyx_L6;}
+ __pyx_t_2 = __Pyx_PyBytes_FromStringAndSize(((const char*)__pyx_v_s) + 0, __pyx_v_l - 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 734; __pyx_clineno = __LINE__; goto __pyx_L6;}
__Pyx_GOTREF(((PyObject *)__pyx_t_2));
__Pyx_INCREF(((PyObject *)((PyObject*)__pyx_t_2)));
__pyx_v_result = ((PyObject*)__pyx_t_2);
* try:
*/
__Pyx_XDECREF(__pyx_r);
- __Pyx_INCREF(((PyObject *)__pyx_kp_u_21));
- __pyx_r = ((PyObject *)__pyx_kp_u_21);
+ __Pyx_INCREF(((PyObject *)__pyx_kp_u_25));
+ __pyx_r = ((PyObject *)__pyx_kp_u_25);
goto __pyx_L0;
goto __pyx_L3;
}
* def __del__(self):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__ElementTree); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 810; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__ElementTree); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 810; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 810; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
*/
__pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 843; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_3));
- if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_u__xsl), ((PyObject *)__pyx_kp_u_353)) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 843; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_u__xsl), ((PyObject *)__pyx_kp_u_368)) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 843; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__namespaces), ((PyObject *)__pyx_t_3)) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 841; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
- __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_XPath)), ((PyObject *)__pyx_k_tuple_352), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 841; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_XPath)), ((PyObject *)__pyx_k_tuple_367), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 841; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
__Pyx_XGOTREF(((PyObject *)__pyx_v_4lxml_5etree___findStylesheetByID));
static char __pyx_doc_4lxml_5etree_26_XSLTProcessingInstruction_parseXSL[] = "parseXSL(self, parser=None)\n\n Try to parse the stylesheet referenced by this PI and return\n an ElementTree for it. If the stylesheet is embedded in the\n same document (referenced via xml:id), find and return an\n ElementTree for the stylesheet Element.\n\n The optional ``parser`` keyword argument can be passed to specify the\n parser used to read from external stylesheet URLs.\n ";
static PyObject *__pyx_pw_4lxml_5etree_26_XSLTProcessingInstruction_1parseXSL(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_parser = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("parseXSL (wrapper)", 0);
* hrefs = _FIND_PI_HREF(u' ' + (<unsigned char*>self._c_node.content).decode('UTF-8'))
* if len(hrefs) != 1:
*/
- __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_354), 0, 0);
+ __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_369), 0, 0);
{__pyx_filename = __pyx_f[2]; __pyx_lineno = 865; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L3;
}
__pyx_t_3 = ((unsigned char *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_base._c_node->content);
__pyx_t_4 = ((PyObject *)__Pyx_decode_c_string(((char *)__pyx_t_3), 0, strlen(((char *)__pyx_t_3)), NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 866; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_4));
- __pyx_t_5 = PyNumber_Add(((PyObject *)__pyx_kp_u_13), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 866; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = PyNumber_Add(((PyObject *)__pyx_kp_u_17), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 866; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
__pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 866; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
* hrefs = hrefs[0]
* href_utf = utf8(hrefs[0] or hrefs[1])
*/
- __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_355), 0, 0);
+ __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_370), 0, 0);
{__pyx_filename = __pyx_f[2]; __pyx_lineno = 868; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L4;
}
* href_utf = utf8(hrefs[0] or hrefs[1])
* c_href = _xcstr(href_utf)
*/
- __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_hrefs, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_5) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 869; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_hrefs, 0, sizeof(long), PyInt_FromLong, 0, 0, 1); if (!__pyx_t_5) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 869; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_v_hrefs);
__pyx_v_hrefs = __pyx_t_5;
* c_href = _xcstr(href_utf)
*
*/
- __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_hrefs, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_5) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_hrefs, 0, sizeof(long), PyInt_FromLong, 0, 0, 1); if (!__pyx_t_5) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
if (!__pyx_t_2) {
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
- __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_hrefs, 1, sizeof(long), PyInt_FromLong); if (!__pyx_t_4) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_hrefs, 1, sizeof(long), PyInt_FromLong, 0, 0, 1); if (!__pyx_t_4) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_7 = __pyx_t_4;
__pyx_t_4 = 0;
* elif len(root) > 1:
* raise ValueError, u"ambiguous reference to embedded stylesheet"
*/
- __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_356), 0, 0);
+ __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_371), 0, 0);
{__pyx_filename = __pyx_f[2]; __pyx_lineno = 898; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L12;
}
* result_node = root[0]
* return _elementTreeFactory(result_node._doc, result_node)
*/
- __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_357), 0, 0);
+ __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_372), 0, 0);
{__pyx_filename = __pyx_f[2]; __pyx_lineno = 900; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L12;
}
* return _elementTreeFactory(result_node._doc, result_node)
*
*/
- __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_root, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_4) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 901; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_root, 0, sizeof(long), PyInt_FromLong, 0, 0, 1); if (!__pyx_t_4) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 901; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[2]; __pyx_lineno = 901; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_v_result_node = ((struct LxmlElement *)__pyx_t_4);
static PyObject *__pyx_pw_4lxml_5etree_26_XSLTProcessingInstruction_3set(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_key = 0;
PyObject *__pyx_v_value = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("set (wrapper)", 0);
* u"only setting the 'href' attribute is supported on XSLT-PIs"
* if value is None:
*/
- __Pyx_Raise(__pyx_builtin_AttributeError, ((PyObject *)__pyx_kp_u_358), 0, 0);
+ __Pyx_Raise(__pyx_builtin_AttributeError, ((PyObject *)__pyx_kp_u_373), 0, 0);
{__pyx_filename = __pyx_f[2]; __pyx_lineno = 911; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L3;
}
* elif u'"' in value or u'>' in value:
* raise ValueError, u"Invalid URL, must not contain '\"' or '>'"
*/
- __Pyx_INCREF(((PyObject *)__pyx_kp_u_21));
- __pyx_v_attrib = __pyx_kp_u_21;
+ __Pyx_INCREF(((PyObject *)__pyx_kp_u_25));
+ __pyx_v_attrib = __pyx_kp_u_25;
goto __pyx_L4;
}
* raise ValueError, u"Invalid URL, must not contain '\"' or '>'"
* else:
*/
- __pyx_t_2 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_kp_u_233), __pyx_v_value, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 915; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_kp_u_242), __pyx_v_value, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 915; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
if (!__pyx_t_2) {
- __pyx_t_3 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_kp_u_249), __pyx_v_value, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 915; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_kp_u_258), __pyx_v_value, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 915; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_t_4 = __pyx_t_3;
} else {
__pyx_t_4 = __pyx_t_2;
* else:
* attrib = u' href="%s"' % value
*/
- __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_359), 0, 0);
+ __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_374), 0, 0);
{__pyx_filename = __pyx_f[2]; __pyx_lineno = 916; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L4;
}
* text = u' ' + self.text
* if _FIND_PI_HREF(text):
*/
- __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_360), __pyx_v_value); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 918; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_375), __pyx_v_value); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 918; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_1));
__pyx_v_attrib = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
* if _FIND_PI_HREF(text):
* self.text = _REPLACE_PI_HREF(attrib, text)
*/
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__text); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 919; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__text); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 919; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_5 = PyNumber_Add(((PyObject *)__pyx_kp_u_13), __pyx_t_1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 919; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = PyNumber_Add(((PyObject *)__pyx_kp_u_17), __pyx_t_1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 919; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_v_text = __pyx_t_5;
__pyx_t_5 = PyObject_Call(__pyx_v_4lxml_5etree__REPLACE_PI_HREF, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 921; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
- if (PyObject_SetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__text, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 921; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__text, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 921; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
goto __pyx_L5;
}
*/
__pyx_t_5 = PyNumber_Add(__pyx_v_text, ((PyObject *)__pyx_v_attrib)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 923; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
- if (PyObject_SetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__text, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 923; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__text, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 923; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
}
__pyx_L5:;
CYTHON_UNUSED PyObject *__pyx_v_self_node = 0;
CYTHON_UNUSED PyObject *__pyx_v_input_node = 0;
CYTHON_UNUSED PyObject *__pyx_v_output_parent = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("execute (wrapper)", 0);
struct __pyx_obj_4lxml_5etree__XSLTContext *__pyx_v_context = 0;
PyObject *__pyx_v_node = 0;
PyObject *__pyx_v_output_parent = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("apply_templates (wrapper)", 0);
*/
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!(__pyx_v_context->_xsltCtxt != NULL))) {
- PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_361));
+ PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_376));
{__pyx_filename = __pyx_f[19]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
#endif
*
* c_node = context._xsltCtxt.insert
*/
- __pyx_v_c_parent = xmlNewDocNode(__pyx_v_context->_xsltCtxt->output, NULL, ((unsigned char *)((unsigned char *)__pyx_k_362)), NULL);
+ __pyx_v_c_parent = xmlNewDocNode(__pyx_v_context->_xsltCtxt->output, NULL, ((unsigned char *)((unsigned char *)__pyx_k_377)), NULL);
}
__pyx_L3:;
static PyObject *__pyx_pw_4lxml_5etree_13XSLTExtension_5process_children(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
struct __pyx_obj_4lxml_5etree__XSLTContext *__pyx_v_context = 0;
PyObject *__pyx_v_output_parent = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("process_children (wrapper)", 0);
*/
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!(__pyx_v_context->_xsltCtxt != NULL))) {
- PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_361));
+ PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_376));
{__pyx_filename = __pyx_f[19]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
#endif
*
* c_ctxt.insert = _nonRoNodeOf(output_parent)
*/
- __pyx_v_c_parent = xmlNewDocNode(__pyx_v_context->_xsltCtxt->output, NULL, ((unsigned char *)((unsigned char *)__pyx_k_362)), NULL);
+ __pyx_v_c_parent = xmlNewDocNode(__pyx_v_context->_xsltCtxt->output, NULL, ((unsigned char *)((unsigned char *)__pyx_k_377)), NULL);
}
__pyx_L3:;
*/
__pyx_t_1 = __pyx_f_4lxml_5etree_funicode(__pyx_v_c_node->content); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_4 = PyList_Append(__pyx_v_results, __pyx_t_1); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_PyList_Append(__pyx_v_results, __pyx_t_1); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L5;
}
* # unlink node and make sure it will be freed later on
* tree.xmlUnlinkNode(c_node)
*/
- __pyx_t_4 = PyList_Append(__pyx_v_results, ((PyObject *)__pyx_v_proxy)); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 123; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_PyList_Append(__pyx_v_results, ((PyObject *)__pyx_v_proxy)); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 123; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":125
* results.append(proxy)
*/
__pyx_t_5 = PyInt_FromLong(__pyx_v_c_node->type); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 129; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
- __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_363), __pyx_t_5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 129; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_378), __pyx_t_5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 129; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_1));
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_t_1), 0, 0);
*/
__pyx_t_11 = __pyx_f_4lxml_5etree_funicode(__pyx_v_c_inst_node->name); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 165; __pyx_clineno = __LINE__; goto __pyx_L13_error;}
__Pyx_GOTREF(__pyx_t_11);
- __pyx_t_8 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_364), __pyx_t_11); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 165; __pyx_clineno = __LINE__; goto __pyx_L13_error;}
+ __pyx_t_8 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_379), __pyx_t_11); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 165; __pyx_clineno = __LINE__; goto __pyx_L13_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_8));
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_Raise(__pyx_builtin_KeyError, ((PyObject *)__pyx_t_8), 0, 0);
*/
__pyx_t_8 = PyInt_FromLong(__pyx_v_c_context_node->type); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 189; __pyx_clineno = __LINE__; goto __pyx_L25;}
__Pyx_GOTREF(__pyx_t_8);
- __pyx_t_11 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_128), __pyx_t_8); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 189; __pyx_clineno = __LINE__; goto __pyx_L25;}
+ __pyx_t_11 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_136), __pyx_t_8); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 189; __pyx_clineno = __LINE__; goto __pyx_L25;}
__Pyx_GOTREF(((PyObject *)__pyx_t_11));
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 189; __pyx_clineno = __LINE__; goto __pyx_L25;}
* finally:
* context._extension_element_proxy = None
*/
- __pyx_t_11 = PyObject_GetAttr(((PyObject *)__pyx_v_extension), __pyx_n_s__execute); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L25;}
+ __pyx_t_11 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_extension), __pyx_n_s__execute); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L25;}
__Pyx_GOTREF(__pyx_t_11);
__pyx_t_8 = PyTuple_New(4); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L25;}
__Pyx_GOTREF(__pyx_t_8);
*/
__pyx_t_21 = PyObject_Repr(__pyx_v_e); if (unlikely(!__pyx_t_21)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 204; __pyx_clineno = __LINE__; goto __pyx_L37_except_error;}
__Pyx_GOTREF(__pyx_t_21);
- __pyx_t_22 = PyObject_GetAttr(__pyx_t_21, __pyx_n_s__encode); if (unlikely(!__pyx_t_22)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 204; __pyx_clineno = __LINE__; goto __pyx_L37_except_error;}
+ __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_t_21, __pyx_n_s__encode); if (unlikely(!__pyx_t_22)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 204; __pyx_clineno = __LINE__; goto __pyx_L37_except_error;}
__Pyx_GOTREF(__pyx_t_22);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
- __pyx_t_21 = PyObject_Call(__pyx_t_22, ((PyObject *)__pyx_k_tuple_365), NULL); if (unlikely(!__pyx_t_21)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 204; __pyx_clineno = __LINE__; goto __pyx_L37_except_error;}
+ __pyx_t_21 = PyObject_Call(__pyx_t_22, ((PyObject *)__pyx_k_tuple_380), NULL); if (unlikely(!__pyx_t_21)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 204; __pyx_clineno = __LINE__; goto __pyx_L37_except_error;}
__Pyx_GOTREF(__pyx_t_21);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_DECREF(__pyx_v_e);
* xslt.xsltTransformError(c_ctxt, NULL, c_inst_node, message)
* context._exc._store_raised()
*/
- __pyx_t_20 = ((PyObject *)PyBytes_FromFormat(__pyx_k_366, __pyx_v_c_inst_node->name, PyBytes_AS_STRING(__pyx_v_e))); if (unlikely(!__pyx_t_20)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 205; __pyx_clineno = __LINE__; goto __pyx_L15_except_error;}
+ __pyx_t_20 = ((PyObject *)PyBytes_FromFormat(__pyx_k_381, __pyx_v_c_inst_node->name, PyBytes_AS_STRING(__pyx_v_e))); if (unlikely(!__pyx_t_20)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 205; __pyx_clineno = __LINE__; goto __pyx_L15_except_error;}
__Pyx_GOTREF(__pyx_t_20);
__pyx_v_message = ((PyObject*)__pyx_t_20);
__pyx_t_20 = 0;
* context._exc._store_raised()
* except:
*/
- __pyx_t_23 = PyBytes_AsString(((PyObject *)__pyx_v_message)); if (unlikely((!__pyx_t_23) && PyErr_Occurred())) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L15_except_error;}
+ __pyx_t_23 = __Pyx_PyObject_AsString(((PyObject *)__pyx_v_message)); if (unlikely((!__pyx_t_23) && PyErr_Occurred())) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L15_except_error;}
xsltTransformError(__pyx_v_c_ctxt, NULL, __pyx_v_c_inst_node, __pyx_t_23);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":209
* xslt.xsltTransformError(c_ctxt, NULL, c_inst_node, message)
* context._exc._store_raised()
*/
- __pyx_t_20 = ((PyObject *)PyBytes_FromFormat(__pyx_k_367, __pyx_v_c_inst_node->name)); if (unlikely(!__pyx_t_20)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L15_except_error;}
+ __pyx_t_20 = ((PyObject *)PyBytes_FromFormat(__pyx_k_382, __pyx_v_c_inst_node->name)); if (unlikely(!__pyx_t_20)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L15_except_error;}
__Pyx_GOTREF(__pyx_t_20);
__pyx_v_message = ((PyObject*)__pyx_t_20);
__pyx_t_20 = 0;
* context._exc._store_raised()
* except:
*/
- __pyx_t_23 = PyBytes_AsString(((PyObject *)__pyx_v_message)); if (unlikely((!__pyx_t_23) && PyErr_Occurred())) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L15_except_error;}
+ __pyx_t_23 = __Pyx_PyObject_AsString(((PyObject *)__pyx_v_message)); if (unlikely((!__pyx_t_23) && PyErr_Occurred())) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L15_except_error;}
xsltTransformError(__pyx_v_c_ctxt, NULL, __pyx_v_c_inst_node, __pyx_t_23);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":215
* "Error during XSLT extension element evaluation")
* context._exc._store_raised()
*/
- xsltTransformError(__pyx_v_c_ctxt, NULL, __pyx_v_c_inst_node, __pyx_k_368);
+ xsltTransformError(__pyx_v_c_ctxt, NULL, __pyx_v_c_inst_node, __pyx_k_383);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":220
* xslt.xsltTransformError(c_ctxt, NULL, c_inst_node,
* u"Document does not comply with schema"),
* self._error_log)
*/
- __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__DocumentInvalid); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3261; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__DocumentInvalid); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3261; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_1 = __pyx_f_4lxml_5etree_13_BaseErrorLog__buildExceptionMessage(((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_v_self->_error_log), ((PyObject *)__pyx_kp_u_369)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3261; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __pyx_f_4lxml_5etree_13_BaseErrorLog__buildExceptionMessage(((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_v_self->_error_log), ((PyObject *)__pyx_kp_u_384)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3261; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3263
* u"Document does not comply with schema")
*
*/
- __pyx_t_2 = __pyx_f_4lxml_5etree_13_BaseErrorLog__buildExceptionMessage(((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_v_self->_error_log), ((PyObject *)__pyx_kp_u_369)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3271; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __pyx_f_4lxml_5etree_13_BaseErrorLog__buildExceptionMessage(((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_v_self->_error_log), ((PyObject *)__pyx_kp_u_384)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3271; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__Pyx_Raise(__pyx_builtin_AssertionError, __pyx_t_2, 0, 0);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (unlikely(__pyx_skip_dispatch)) ;
/* Check if overridden in Python */
else if (unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0)) {
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s___append_log_message); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3274; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 3274; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)__pyx_pw_4lxml_5etree_10_Validator_9_append_log_message)) {
__Pyx_XDECREF(__pyx_r);
int __pyx_v_line;
PyObject *__pyx_v_message = 0;
PyObject *__pyx_v_filename = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_append_log_message (wrapper)", 0);
if (unlikely(__pyx_skip_dispatch)) ;
/* Check if overridden in Python */
else if (unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0)) {
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s___clear_error_log); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3279; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 3279; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)__pyx_pw_4lxml_5etree_10_Validator_11_clear_error_log)) {
__Pyx_XDECREF(__pyx_r);
#ifndef CYTHON_WITHOUT_ASSERTIONS
__pyx_t_1 = (((PyObject *)__pyx_v_self->_error_log) != Py_None);
if (unlikely(!__pyx_t_1)) {
- PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_295));
+ PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_309));
{__pyx_filename = __pyx_f[0]; __pyx_lineno = 3285; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
#endif
__pyx_t_2 = PyObject_Call(__pyx_builtin_id, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
- __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_370), __pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_385), __pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_1));
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_t_1));
* property name:
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s____class__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s____class__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s____module__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s____module__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s____class__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s____class__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_3 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s____name__); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s____name__); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_4 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__type); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__type); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
- __pyx_t_5 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__occur); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__occur); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_4 = 0;
__pyx_t_5 = 0;
__pyx_t_7 = 0;
- __pyx_t_7 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_371), ((PyObject *)__pyx_t_6)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_386), ((PyObject *)__pyx_t_6)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_7));
__Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
__pyx_r = ((PyObject *)__pyx_t_7);
* property name:
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s____class__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s____class__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s____module__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s____module__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s____class__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s____class__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_3 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s____name__); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s____name__); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_4 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__elemname); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__elemname); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
- __pyx_t_5 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__prefix); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__prefix); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
- __pyx_t_6 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__type); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__type); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
- __pyx_t_7 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__default); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__default); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
- __pyx_t_8 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__default_value); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__default_value); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_7 = 0;
__pyx_t_8 = 0;
__pyx_t_10 = 0;
- __pyx_t_10 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_372), ((PyObject *)__pyx_t_9)); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_10 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_387), ((PyObject *)__pyx_t_9)); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_10));
__Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0;
__pyx_r = ((PyObject *)__pyx_t_10);
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("itervalues", 0);
- __pyx_cur_scope = (struct __pyx_obj_4lxml_5etree___pyx_scope_struct__itervalues *)__pyx_ptype_4lxml_5etree___pyx_scope_struct__itervalues->tp_new(__pyx_ptype_4lxml_5etree___pyx_scope_struct__itervalues, __pyx_empty_tuple, NULL);
+ __pyx_cur_scope = (struct __pyx_obj_4lxml_5etree___pyx_scope_struct__itervalues *)__pyx_tp_new_4lxml_5etree___pyx_scope_struct__itervalues(__pyx_ptype_4lxml_5etree___pyx_scope_struct__itervalues, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__Pyx_RefNannyFinishContext();
return NULL;
xmlEnumeration *__pyx_t_2;
int __pyx_t_3;
PyObject *__pyx_t_4 = NULL;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("None", 0);
switch (__pyx_generator->resume_label) {
* @cython.internal
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__itervalues); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__itervalues); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
* property name:
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s____class__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s____class__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s____module__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s____module__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s____class__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s____class__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_3 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s____name__); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s____name__); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_4 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__prefix); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__prefix); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
- __pyx_t_5 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__type); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__type); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_4 = 0;
__pyx_t_5 = 0;
__pyx_t_7 = 0;
- __pyx_t_7 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_373), ((PyObject *)__pyx_t_6)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_388), ((PyObject *)__pyx_t_6)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_7));
__Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
__pyx_r = ((PyObject *)__pyx_t_7);
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("iterattributes", 0);
- __pyx_cur_scope = (struct __pyx_obj_4lxml_5etree___pyx_scope_struct_1_iterattributes *)__pyx_ptype_4lxml_5etree___pyx_scope_struct_1_iterattributes->tp_new(__pyx_ptype_4lxml_5etree___pyx_scope_struct_1_iterattributes, __pyx_empty_tuple, NULL);
+ __pyx_cur_scope = (struct __pyx_obj_4lxml_5etree___pyx_scope_struct_1_iterattributes *)__pyx_tp_new_4lxml_5etree___pyx_scope_struct_1_iterattributes(__pyx_ptype_4lxml_5etree___pyx_scope_struct_1_iterattributes, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__Pyx_RefNannyFinishContext();
return NULL;
xmlAttribute *__pyx_t_2;
int __pyx_t_3;
PyObject *__pyx_t_4 = NULL;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("None", 0);
switch (__pyx_generator->resume_label) {
* @cython.internal
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__iterattributes); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 236; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__iterattributes); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 236; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 236; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
* property name:
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s____class__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 247; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s____class__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 247; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s____module__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 247; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s____module__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 247; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s____class__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 247; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s____class__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 247; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_3 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s____name__); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 247; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s____name__); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 247; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 247; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 247; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 247; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_3 = 0;
__pyx_t_1 = 0;
__pyx_t_5 = 0;
- __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_374), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 247; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_389), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 247; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_5));
__Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
__pyx_r = ((PyObject *)__pyx_t_5);
static int __pyx_pw_4lxml_5etree_3DTD_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_file = 0;
PyObject *__pyx_v_external_id = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
* if file is not None:
* if _isString(file):
*/
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__Validator)), __pyx_n_s____init__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 280; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__Validator)), __pyx_n_s____init__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 280; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 280; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
* elif hasattr(file, 'read'):
*/
/*with:*/ {
- __pyx_t_5 = PyObject_GetAttr(((PyObject *)__pyx_v_self->__pyx_base._error_log), __pyx_n_s____exit__); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 284; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx_base._error_log), __pyx_n_s____exit__); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 284; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_6 = __pyx_f_4lxml_5etree_9_ErrorLog___enter__(__pyx_v_self->__pyx_base._error_log); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 284; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
/*try:*/ {
__Pyx_GOTREF(__pyx_t_11);
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_11);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
- if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 284; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;}
+ if (__pyx_t_4 < 0) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 284; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;}
__pyx_t_12 = (!__pyx_t_4);
if (__pyx_t_12) {
__Pyx_GIVEREF(__pyx_t_3);
}
/*finally:*/ {
if (__pyx_t_5) {
- __pyx_t_9 = PyObject_Call(__pyx_t_5, __pyx_k_tuple_375, NULL);
+ __pyx_t_9 = PyObject_Call(__pyx_t_5, __pyx_k_tuple_390, NULL);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 284; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_9);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
- if (unlikely(__pyx_t_12 < 0)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 284; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_t_12 < 0) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 284; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
}
goto __pyx_L20;
* elif external_id is not None:
* with self._error_log:
*/
- __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__DTDParseError); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 289; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__DTDParseError); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 289; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __Pyx_Raise(__pyx_t_1, ((PyObject *)__pyx_kp_u_376), 0, 0);
+ __Pyx_Raise(__pyx_t_1, ((PyObject *)__pyx_kp_u_391), 0, 0);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
{__pyx_filename = __pyx_f[20]; __pyx_lineno = 289; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
* else:
*/
/*with:*/ {
- __pyx_t_5 = PyObject_GetAttr(((PyObject *)__pyx_v_self->__pyx_base._error_log), __pyx_n_s____exit__); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 291; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx_base._error_log), __pyx_n_s____exit__); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 291; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_6 = __pyx_f_4lxml_5etree_9_ErrorLog___enter__(__pyx_v_self->__pyx_base._error_log); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 291; __pyx_clineno = __LINE__; goto __pyx_L21_error;}
/*try:*/ {
* else:
* raise DTDParseError, u"either filename or external ID required"
*/
- __pyx_t_14 = __Pyx_PyBytes_AsUString(__pyx_v_external_id); if (unlikely((!__pyx_t_14) && PyErr_Occurred())) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 292; __pyx_clineno = __LINE__; goto __pyx_L25_error;}
+ __pyx_t_14 = __Pyx_PyObject_AsUString(__pyx_v_external_id); if (unlikely((!__pyx_t_14) && PyErr_Occurred())) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 292; __pyx_clineno = __LINE__; goto __pyx_L25_error;}
__pyx_v_self->_c_dtd = xmlParseDTD(((const xmlChar *)__pyx_t_14), NULL);
}
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_GOTREF(__pyx_t_11);
__pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_11);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
- if (unlikely(__pyx_t_12 < 0)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 291; __pyx_clineno = __LINE__; goto __pyx_L27_except_error;}
+ if (__pyx_t_12 < 0) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 291; __pyx_clineno = __LINE__; goto __pyx_L27_except_error;}
__pyx_t_4 = (!__pyx_t_12);
if (__pyx_t_4) {
__Pyx_GIVEREF(__pyx_t_1);
}
/*finally:*/ {
if (__pyx_t_5) {
- __pyx_t_7 = PyObject_Call(__pyx_t_5, __pyx_k_tuple_377, NULL);
+ __pyx_t_7 = PyObject_Call(__pyx_t_5, __pyx_k_tuple_392, NULL);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 291; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_7);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
- if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 291; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_t_4 < 0) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 291; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
}
goto __pyx_L36;
*
* if self._c_dtd is NULL:
*/
- __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__DTDParseError); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 294; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s__DTDParseError); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 294; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
- __Pyx_Raise(__pyx_t_3, ((PyObject *)__pyx_kp_u_378), 0, 0);
+ __Pyx_Raise(__pyx_t_3, ((PyObject *)__pyx_kp_u_393), 0, 0);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
{__pyx_filename = __pyx_f[20]; __pyx_lineno = 294; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
* self._error_log._buildExceptionMessage(u"error parsing DTD"),
* self._error_log)
*/
- __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__DTDParseError); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 297; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s__DTDParseError); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 297; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/dtd.pxi":298
* self._error_log)
*
*/
- __pyx_t_2 = __pyx_f_4lxml_5etree_13_BaseErrorLog__buildExceptionMessage(((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_v_self->__pyx_base._error_log), ((PyObject *)__pyx_kp_u_379)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 298; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __pyx_f_4lxml_5etree_13_BaseErrorLog__buildExceptionMessage(((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_v_self->__pyx_base._error_log), ((PyObject *)__pyx_kp_u_394)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 298; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/dtd.pxi":299
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("iterelements", 0);
- __pyx_cur_scope = (struct __pyx_obj_4lxml_5etree___pyx_scope_struct_2_iterelements *)__pyx_ptype_4lxml_5etree___pyx_scope_struct_2_iterelements->tp_new(__pyx_ptype_4lxml_5etree___pyx_scope_struct_2_iterelements, __pyx_empty_tuple, NULL);
+ __pyx_cur_scope = (struct __pyx_obj_4lxml_5etree___pyx_scope_struct_2_iterelements *)__pyx_tp_new_4lxml_5etree___pyx_scope_struct_2_iterelements(__pyx_ptype_4lxml_5etree___pyx_scope_struct_2_iterelements, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__Pyx_RefNannyFinishContext();
return NULL;
xmlNode *__pyx_t_1;
int __pyx_t_2;
PyObject *__pyx_t_3 = NULL;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("None", 0);
switch (__pyx_generator->resume_label) {
* def iterentities(self):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__iterelements); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 324; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__iterelements); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 324; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 324; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("iterentities", 0);
- __pyx_cur_scope = (struct __pyx_obj_4lxml_5etree___pyx_scope_struct_3_iterentities *)__pyx_ptype_4lxml_5etree___pyx_scope_struct_3_iterentities->tp_new(__pyx_ptype_4lxml_5etree___pyx_scope_struct_3_iterentities, __pyx_empty_tuple, NULL);
+ __pyx_cur_scope = (struct __pyx_obj_4lxml_5etree___pyx_scope_struct_3_iterentities *)__pyx_tp_new_4lxml_5etree___pyx_scope_struct_3_iterentities(__pyx_ptype_4lxml_5etree___pyx_scope_struct_3_iterentities, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__Pyx_RefNannyFinishContext();
return NULL;
xmlNode *__pyx_t_1;
int __pyx_t_2;
PyObject *__pyx_t_3 = NULL;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("None", 0);
switch (__pyx_generator->resume_label) {
* def __dealloc__(self):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__iterentities); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 337; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__iterentities); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 337; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 337; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
#endif
static PyObject *__pyx_pw_4lxml_5etree_3DTD_17__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_etree = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
*/
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!(__pyx_v_self->_c_dtd != NULL))) {
- PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_380));
+ PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_395));
{__pyx_filename = __pyx_f[20]; __pyx_lineno = 355; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
#endif
*
* try:
*/
- __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__DTDError); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 361; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__DTDError); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 361; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_k_tuple_382), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 361; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_k_tuple_397), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 361; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_Raise(__pyx_t_3, 0, 0, 0);
* ret = dtdvalid.xmlValidateDtd(valid_ctxt, c_doc, self._c_dtd)
*/
/*with:*/ {
- __pyx_t_4 = PyObject_GetAttr(((PyObject *)__pyx_v_self->__pyx_base._error_log), __pyx_n_s____exit__); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L5;}
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx_base._error_log), __pyx_n_s____exit__); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L5;}
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_5 = __pyx_f_4lxml_5etree_9_ErrorLog___enter__(__pyx_v_self->__pyx_base._error_log); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L7_error;}
/*try:*/ {
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_12);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
- if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L13_except_error;}
+ if (__pyx_t_2 < 0) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L13_except_error;}
__pyx_t_13 = (!__pyx_t_2);
if (__pyx_t_13) {
__Pyx_GIVEREF(__pyx_t_3);
}
/*finally:*/ {
if (__pyx_t_4) {
- __pyx_t_8 = PyObject_Call(__pyx_t_4, __pyx_k_tuple_383, NULL);
+ __pyx_t_8 = PyObject_Call(__pyx_t_4, __pyx_k_tuple_398, NULL);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L5;}
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_8);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
- if (unlikely(__pyx_t_13 < 0)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L5;}
+ if (__pyx_t_13 < 0) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L5;}
}
}
goto __pyx_L22;
* self._error_log)
* if ret == 1:
*/
- __pyx_t_10 = __Pyx_GetName(__pyx_m, __pyx_n_s__DTDValidateError); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 372; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_10 = __Pyx_GetModuleGlobalName(__pyx_n_s__DTDValidateError); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 372; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_10);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/dtd.pxi":373
*/
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 372; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __Pyx_INCREF(((PyObject *)__pyx_kp_u_384));
- PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_kp_u_384));
- __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_384));
+ __Pyx_INCREF(((PyObject *)__pyx_kp_u_399));
+ PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_kp_u_399));
+ __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_399));
__Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base._error_log));
PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self->__pyx_base._error_log));
__Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base._error_log));
*
*/
/*with:*/ {
- __pyx_t_3 = PyObject_GetAttr(((PyObject *)__pyx_v_error_log), __pyx_n_s____exit__); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_error_log), __pyx_n_s____exit__); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_4 = __pyx_f_4lxml_5etree_9_ErrorLog___enter__(__pyx_v_error_log); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
/*try:*/ {
__Pyx_GOTREF(__pyx_t_11);
__pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_11);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
- if (unlikely(__pyx_t_10 < 0)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;}
+ if (__pyx_t_10 < 0) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;}
__pyx_t_12 = (!__pyx_t_10);
if (__pyx_t_12) {
__Pyx_GIVEREF(__pyx_t_2);
}
/*finally:*/ {
if (__pyx_t_3) {
- __pyx_t_7 = PyObject_Call(__pyx_t_3, __pyx_k_tuple_385, NULL);
+ __pyx_t_7 = PyObject_Call(__pyx_t_3, __pyx_k_tuple_400, NULL);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_7);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
- if (unlikely(__pyx_t_12 < 0)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_t_12 < 0) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
}
goto __pyx_L18;
* return c_dtd
*
*/
- __pyx_t_8 = __Pyx_GetName(__pyx_m, __pyx_n_s__DTDParseError); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s__DTDParseError); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __Pyx_INCREF(((PyObject *)__pyx_kp_u_379));
- PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_kp_u_379));
- __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_379));
+ __Pyx_INCREF(((PyObject *)__pyx_kp_u_394));
+ PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_kp_u_394));
+ __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_394));
__Pyx_INCREF(((PyObject *)__pyx_v_error_log));
PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_error_log));
__Pyx_GIVEREF(((PyObject *)__pyx_v_error_log));
* dtd._c_dtd = tree.xmlCopyDtd(c_dtd)
* if dtd._c_dtd is NULL:
*/
- __pyx_t_2 = __Pyx_tp_new(((PyObject*)__pyx_ptype_4lxml_5etree_DTD)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 402; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __pyx_tp_new_4lxml_5etree_DTD(((PyTypeObject *)((PyObject*)__pyx_ptype_4lxml_5etree_DTD)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 402; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
if (!(likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_4lxml_5etree_DTD)))) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 402; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_v_dtd = ((struct __pyx_obj_4lxml_5etree_DTD *)__pyx_t_2);
* _Validator.__init__(dtd) # <<<<<<<<<<<<<<
* return dtd
*/
- __pyx_t_2 = PyObject_GetAttr(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__Validator)), __pyx_n_s____init__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 406; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__Validator)), __pyx_n_s____init__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 406; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 406; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
static int __pyx_pw_4lxml_5etree_7RelaxNG_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_etree = 0;
PyObject *__pyx_v_file = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
* fake_c_doc = NULL
* if etree is not None:
*/
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__Validator)), __pyx_n_s____init__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__Validator)), __pyx_n_s____init__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
* raise RelaxNGParseError, u"Document is not Relax NG"
* fake_c_doc = _fakeRootDoc(doc._c_doc, root_node._c_node)
*/
- __pyx_t_6 = (xmlStrcmp(__pyx_v_c_href, ((unsigned char *)((unsigned char *)__pyx_k_386))) != 0);
+ __pyx_t_6 = (xmlStrcmp(__pyx_v_c_href, ((unsigned char *)((unsigned char *)__pyx_k_401))) != 0);
__pyx_t_7 = __pyx_t_6;
} else {
__pyx_t_7 = __pyx_t_4;
* fake_c_doc = _fakeRootDoc(doc._c_doc, root_node._c_node)
* parser_ctxt = relaxng.xmlRelaxNGNewDocParserCtxt(fake_c_doc)
*/
- __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__RelaxNGParseError); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s__RelaxNGParseError); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
- __Pyx_Raise(__pyx_t_3, ((PyObject *)__pyx_kp_u_387), 0, 0);
+ __Pyx_Raise(__pyx_t_3, ((PyObject *)__pyx_kp_u_402), 0, 0);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
{__pyx_filename = __pyx_f[21]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L5;
* else:
*/
/*with:*/ {
- __pyx_t_9 = PyObject_GetAttr(((PyObject *)__pyx_v_self->__pyx_base._error_log), __pyx_n_s____exit__); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_9 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx_base._error_log), __pyx_n_s____exit__); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_10 = __pyx_f_4lxml_5etree_9_ErrorLog___enter__(__pyx_v_self->__pyx_base._error_log); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L7_error;}
/*try:*/ {
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_15);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
- if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L13_except_error;}
+ if (__pyx_t_7 < 0) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L13_except_error;}
__pyx_t_4 = (!__pyx_t_7);
if (__pyx_t_4) {
__Pyx_GIVEREF(__pyx_t_3);
}
/*finally:*/ {
if (__pyx_t_9) {
- __pyx_t_13 = PyObject_Call(__pyx_t_9, __pyx_k_tuple_388, NULL);
+ __pyx_t_13 = PyObject_Call(__pyx_t_9, __pyx_k_tuple_403, NULL);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_13);
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_13);
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
- if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_t_4 < 0) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
}
goto __pyx_L22;
*
* if parser_ctxt is NULL:
*/
- __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__RelaxNGParseError); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__RelaxNGParseError); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __Pyx_Raise(__pyx_t_1, ((PyObject *)__pyx_kp_u_389), 0, 0);
+ __Pyx_Raise(__pyx_t_1, ((PyObject *)__pyx_kp_u_404), 0, 0);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
{__pyx_filename = __pyx_f[21]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
* self._error_log._buildExceptionMessage(
* u"Document is not parsable as Relax NG"),
*/
- __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__RelaxNGParseError); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__RelaxNGParseError); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/relaxng.pxi":70
* u"Document is not parsable as Relax NG"),
* self._error_log)
*/
- __pyx_t_2 = __pyx_f_4lxml_5etree_13_BaseErrorLog__buildExceptionMessage(((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_v_self->__pyx_base._error_log), ((PyObject *)__pyx_kp_u_390)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __pyx_f_4lxml_5etree_13_BaseErrorLog__buildExceptionMessage(((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_v_self->__pyx_base._error_log), ((PyObject *)__pyx_kp_u_405)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/relaxng.pxi":72
* self._error_log._buildExceptionMessage(
* u"Document is not valid Relax NG"),
*/
- __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__RelaxNGParseError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__RelaxNGParseError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/relaxng.pxi":86
* u"Document is not valid Relax NG"),
* self._error_log)
*/
- __pyx_t_3 = __pyx_f_4lxml_5etree_13_BaseErrorLog__buildExceptionMessage(((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_v_self->__pyx_base._error_log), ((PyObject *)__pyx_kp_u_391)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __pyx_f_4lxml_5etree_13_BaseErrorLog__buildExceptionMessage(((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_v_self->__pyx_base._error_log), ((PyObject *)__pyx_kp_u_406)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/relaxng.pxi":88
#endif
static PyObject *__pyx_pw_4lxml_5etree_7RelaxNG_7__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_etree = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
*/
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!(__pyx_v_self->_c_schema != NULL))) {
- PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_392));
+ PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_407));
{__pyx_filename = __pyx_f[21]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
#endif
*/
{
#ifdef WITH_THREAD
- PyThreadState *_save = NULL;
- #endif
+ PyThreadState *_save;
Py_UNBLOCK_THREADS
+ #endif
/*try:*/ {
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/relaxng.pxi":119
* _destroyFakeDoc(doc._c_doc, c_doc)
*/
/*finally:*/ {
+ #ifdef WITH_THREAD
Py_BLOCK_THREADS
+ #endif
}
}
* u"Internal error in Relax NG validation",
* self._error_log)
*/
- __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s_393); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_408); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/relaxng.pxi":127
*/
__pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
- __Pyx_INCREF(((PyObject *)__pyx_kp_u_394));
- PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_kp_u_394));
- __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_394));
+ __Pyx_INCREF(((PyObject *)__pyx_kp_u_409));
+ PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_kp_u_409));
+ __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_409));
__Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base._error_log));
PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_self->__pyx_base._error_log));
__Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base._error_log));
PyObject *__pyx_v_etree = 0;
PyObject *__pyx_v_file = 0;
PyObject *__pyx_v_attribute_defaults = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
*/
values[0] = ((PyObject *)Py_None);
values[1] = ((PyObject *)Py_None);
- values[2] = __pyx_k_395;
+ values[2] = __pyx_k_410;
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
* fake_c_doc = NULL
* if etree is not None:
*/
- __pyx_t_2 = PyObject_GetAttr(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__Validator)), __pyx_n_s____init__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__Validator)), __pyx_n_s____init__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
* raise XMLSchemaParseError, u"Document is not XML Schema"
*
*/
- __pyx_t_6 = (xmlStrcmp(__pyx_v_c_href, ((unsigned char *)((unsigned char *)__pyx_k_396))) != 0);
+ __pyx_t_6 = (xmlStrcmp(__pyx_v_c_href, ((unsigned char *)((unsigned char *)__pyx_k_411))) != 0);
__pyx_t_7 = __pyx_t_6;
} else {
__pyx_t_7 = __pyx_t_1;
*
* fake_c_doc = _fakeRootDoc(doc._c_doc, root_node._c_node)
*/
- __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__XMLSchemaParseError); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s__XMLSchemaParseError); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
- __Pyx_Raise(__pyx_t_4, ((PyObject *)__pyx_kp_u_397), 0, 0);
+ __Pyx_Raise(__pyx_t_4, ((PyObject *)__pyx_kp_u_412), 0, 0);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
{__pyx_filename = __pyx_f[22]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L5;
*
* if parser_ctxt is not NULL:
*/
- __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__XMLSchemaParseError); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s__XMLSchemaParseError); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
- __Pyx_Raise(__pyx_t_4, ((PyObject *)__pyx_kp_u_389), 0, 0);
+ __Pyx_Raise(__pyx_t_4, ((PyObject *)__pyx_kp_u_404), 0, 0);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
{__pyx_filename = __pyx_f[22]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
*/
{
#ifdef WITH_THREAD
- PyThreadState *_save = NULL;
- #endif
+ PyThreadState *_save;
Py_UNBLOCK_THREADS
+ #endif
/*try:*/ {
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlschema.pxi":85
* else:
*/
/*finally:*/ {
+ #ifdef WITH_THREAD
Py_BLOCK_THREADS
+ #endif
}
}
goto __pyx_L8;
* self._error_log._buildExceptionMessage(
* u"Document is not valid XML Schema"),
*/
- __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__XMLSchemaParseError); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s__XMLSchemaParseError); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlschema.pxi":103
* u"Document is not valid XML Schema"),
* self._error_log)
*/
- __pyx_t_3 = __pyx_f_4lxml_5etree_13_BaseErrorLog__buildExceptionMessage(((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_v_self->__pyx_base._error_log), ((PyObject *)__pyx_kp_u_398)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __pyx_f_4lxml_5etree_13_BaseErrorLog__buildExceptionMessage(((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_v_self->__pyx_base._error_log), ((PyObject *)__pyx_kp_u_413)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlschema.pxi":105
#endif
static PyObject *__pyx_pw_4lxml_5etree_9XMLSchema_7__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_etree = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
*/
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!(__pyx_v_self->_c_schema != NULL))) {
- PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_399));
+ PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_414));
{__pyx_filename = __pyx_f[22]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
#endif
*/
{
#ifdef WITH_THREAD
- PyThreadState *_save = NULL;
- #endif
+ PyThreadState *_save;
Py_UNBLOCK_THREADS
+ #endif
/*try:*/ {
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlschema.pxi":145
* _destroyFakeDoc(doc._c_doc, c_doc)
*/
/*finally:*/ {
+ #ifdef WITH_THREAD
Py_BLOCK_THREADS
+ #endif
}
}
* u"Internal error in XML Schema validation.",
* self._error_log)
*/
- __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s_400); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_415); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlschema.pxi":153
*/
__pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
- __Pyx_INCREF(((PyObject *)__pyx_kp_u_401));
- PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_kp_u_401));
- __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_401));
+ __Pyx_INCREF(((PyObject *)__pyx_kp_u_416));
+ PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_kp_u_416));
+ __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_416));
__Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base._error_log));
PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_self->__pyx_base._error_log));
__Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base._error_log));
* context._schema = self
* context._add_default_attributes = (self._has_default_attributes and (
*/
- __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_4lxml_5etree__ParserSchemaValidationContext)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __pyx_tp_new_4lxml_5etree__ParserSchemaValidationContext(((PyTypeObject *)((PyObject*)__pyx_ptype_4lxml_5etree__ParserSchemaValidationContext)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
if (!(likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_4lxml_5etree__ParserSchemaValidationContext)))) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_v_context = ((struct __pyx_obj_4lxml_5etree__ParserSchemaValidationContext *)__pyx_t_1);
#ifndef CYTHON_WITHOUT_ASSERTIONS
__pyx_t_1 = (((PyObject *)__pyx_v_self->_schema) != Py_None);
if (unlikely(!__pyx_t_1)) {
- PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_402));
+ PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_417));
{__pyx_filename = __pyx_f[22]; __pyx_lineno = 186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
#endif
*/
{
#ifdef WITH_THREAD
- PyThreadState *_save = NULL;
- #endif
+ PyThreadState *_save;
Py_UNBLOCK_THREADS
+ #endif
/*try:*/ {
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlschema.pxi":196
*
*/
/*finally:*/ {
+ #ifdef WITH_THREAD
Py_BLOCK_THREADS
+ #endif
}
}
goto __pyx_L3;
static int __pyx_pw_4lxml_5etree_10Schematron_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_etree = 0;
PyObject *__pyx_v_file = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
* if not config.ENABLE_SCHEMATRON:
* raise SchematronError, \
*/
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__Validator)), __pyx_n_s____init__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__Validator)), __pyx_n_s____init__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
* u"lxml.etree was compiled without Schematron support."
* if etree is not None:
*/
- __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__SchematronError); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s__SchematronError); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
- __Pyx_Raise(__pyx_t_3, ((PyObject *)__pyx_kp_u_403), 0, 0);
+ __Pyx_Raise(__pyx_t_3, ((PyObject *)__pyx_kp_u_418), 0, 0);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
{__pyx_filename = __pyx_f[23]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L3;
* else:
*/
/*with:*/ {
- __pyx_t_6 = PyObject_GetAttr(((PyObject *)__pyx_v_self->__pyx_base._error_log), __pyx_n_s____exit__); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx_base._error_log), __pyx_n_s____exit__); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_7 = __pyx_f_4lxml_5etree_9_ErrorLog___enter__(__pyx_v_self->__pyx_base._error_log); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
/*try:*/ {
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_12);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
- if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L12_except_error;}
+ if (__pyx_t_4 < 0) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L12_except_error;}
__pyx_t_13 = (!__pyx_t_4);
if (__pyx_t_13) {
__Pyx_GIVEREF(__pyx_t_3);
}
/*finally:*/ {
if (__pyx_t_6) {
- __pyx_t_10 = PyObject_Call(__pyx_t_6, __pyx_k_tuple_404, NULL);
+ __pyx_t_10 = PyObject_Call(__pyx_t_6, __pyx_k_tuple_419, NULL);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_10);
__pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_10);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
- if (unlikely(__pyx_t_13 < 0)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_t_13 < 0) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
}
goto __pyx_L21;
*
* if parser_ctxt is NULL:
*/
- __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s_405); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_420); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __Pyx_Raise(__pyx_t_1, ((PyObject *)__pyx_kp_u_389), 0, 0);
+ __Pyx_Raise(__pyx_t_1, ((PyObject *)__pyx_kp_u_404), 0, 0);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
{__pyx_filename = __pyx_f[23]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
* finally:
*/
/*with:*/ {
- __pyx_t_6 = PyObject_GetAttr(((PyObject *)__pyx_v_self->__pyx_base._error_log), __pyx_n_s____exit__); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L25;}
+ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx_base._error_log), __pyx_n_s____exit__); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L25;}
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_7 = __pyx_f_4lxml_5etree_9_ErrorLog___enter__(__pyx_v_self->__pyx_base._error_log); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L27_error;}
/*try:*/ {
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_12);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
- if (unlikely(__pyx_t_13 < 0)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L33_except_error;}
+ if (__pyx_t_13 < 0) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L33_except_error;}
__pyx_t_4 = (!__pyx_t_13);
if (__pyx_t_4) {
__Pyx_GIVEREF(__pyx_t_1);
}
/*finally:*/ {
if (__pyx_t_6) {
- __pyx_t_8 = PyObject_Call(__pyx_t_6, __pyx_k_tuple_406, NULL);
+ __pyx_t_8 = PyObject_Call(__pyx_t_6, __pyx_k_tuple_421, NULL);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L25;}
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_8);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
- if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L25;}
+ if (__pyx_t_4 < 0) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L25;}
}
}
goto __pyx_L42;
* u"Document is not a valid Schematron schema",
* self._error_log)
*/
- __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s_405); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_420); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/schematron.pxi":118
*/
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
- __Pyx_INCREF(((PyObject *)__pyx_kp_u_407));
- PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_kp_u_407));
- __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_407));
+ __Pyx_INCREF(((PyObject *)__pyx_kp_u_422));
+ PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_kp_u_422));
+ __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_422));
__Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base._error_log));
PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self->__pyx_base._error_log));
__Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base._error_log));
#endif
static PyObject *__pyx_pw_4lxml_5etree_10Schematron_7__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_etree = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
*/
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!(__pyx_v_self->_c_schema != NULL))) {
- PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_408));
+ PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_423));
{__pyx_filename = __pyx_f[23]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
#endif
*/
{
#ifdef WITH_THREAD
- PyThreadState *_save = NULL;
- #endif
+ PyThreadState *_save;
Py_UNBLOCK_THREADS
+ #endif
/*try:*/ {
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/schematron.pxi":163
* _destroyFakeDoc(doc._c_doc, c_doc)
*/
/*finally:*/ {
+ #ifdef WITH_THREAD
Py_BLOCK_THREADS
+ #endif
}
}
* with nogil:
*/
/*with:*/ {
- __pyx_t_6 = PyObject_GetAttr(((PyObject *)__pyx_v_self->__pyx_base._error_log), __pyx_n_s____exit__); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx_base._error_log), __pyx_n_s____exit__); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_7 = __pyx_f_4lxml_5etree_9_ErrorLog___enter__(__pyx_v_self->__pyx_base._error_log); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L9_error;}
/*try:*/ {
*/
{
#ifdef WITH_THREAD
- PyThreadState *_save = NULL;
- #endif
+ PyThreadState *_save;
Py_UNBLOCK_THREADS
+ #endif
/*try:*/ {
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/schematron.pxi":170
* _destroyFakeDoc(doc._c_doc, c_doc)
*/
/*finally:*/ {
+ #ifdef WITH_THREAD
Py_BLOCK_THREADS
+ #endif
}
}
__Pyx_GOTREF(__pyx_t_14);
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_14);
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
- if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L15_except_error;}
+ if (__pyx_t_4 < 0) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L15_except_error;}
__pyx_t_2 = (!__pyx_t_4);
if (__pyx_t_2) {
__Pyx_GIVEREF(__pyx_t_1);
}
/*finally:*/ {
if (__pyx_t_6) {
- __pyx_t_10 = PyObject_Call(__pyx_t_6, __pyx_k_tuple_409, NULL);
+ __pyx_t_10 = PyObject_Call(__pyx_t_6, __pyx_k_tuple_424, NULL);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_10);
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_10);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
- if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_t_2 < 0) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
}
goto __pyx_L29;
* u"Internal error in Schematron validation",
* self._error_log)
*/
- __pyx_t_12 = __Pyx_GetName(__pyx_m, __pyx_n_s_410); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_12 = __Pyx_GetModuleGlobalName(__pyx_n_s_425); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_12);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/schematron.pxi":178
*/
__pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_11);
- __Pyx_INCREF(((PyObject *)__pyx_kp_u_411));
- PyTuple_SET_ITEM(__pyx_t_11, 0, ((PyObject *)__pyx_kp_u_411));
- __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_411));
+ __Pyx_INCREF(((PyObject *)__pyx_kp_u_426));
+ PyTuple_SET_ITEM(__pyx_t_11, 0, ((PyObject *)__pyx_kp_u_426));
+ __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_426));
__Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base._error_log));
PyTuple_SET_ITEM(__pyx_t_11, 1, ((PyObject *)__pyx_v_self->__pyx_base._error_log));
__Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base._error_log));
static PyObject *__pyx_pw_4lxml_5etree_9_MemDebug_7dump(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_output_file = 0;
PyObject *__pyx_v_byte_count = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("dump (wrapper)", 0);
* elif isinstance(output_file, unicode):
* output_file.encode(sys.getfilesystemencoding())
*/
- __Pyx_INCREF(((PyObject *)__pyx_kp_b_412));
+ __Pyx_INCREF(((PyObject *)__pyx_kp_b_427));
__Pyx_DECREF(__pyx_v_output_file);
- __pyx_v_output_file = ((PyObject *)__pyx_kp_b_412);
+ __pyx_v_output_file = ((PyObject *)__pyx_kp_b_427);
goto __pyx_L3;
}
*
* f = stdio.fopen(output_file, "w")
*/
- __pyx_t_2 = PyObject_GetAttr(__pyx_v_output_file, __pyx_n_s__encode); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_output_file, __pyx_n_s__encode); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_3 = PyObject_GetAttr(__pyx_v_4lxml_5etree_sys, __pyx_n_s_413); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_sys, __pyx_n_s_428); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_4 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
* if f is NULL:
* raise IOError("Failed to create file %s" % output_file.decode(sys.getfilesystemencoding()))
*/
- __pyx_t_5 = PyBytes_AsString(__pyx_v_output_file); if (unlikely((!__pyx_t_5) && PyErr_Occurred())) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_PyObject_AsString(__pyx_v_output_file); if (unlikely((!__pyx_t_5) && PyErr_Occurred())) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_v_f = fopen(__pyx_t_5, __pyx_k__w);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/debug.pxi":55
* try:
* if tree.LIBXML_VERSION < 20700:
*/
- __pyx_t_4 = PyObject_GetAttr(__pyx_v_output_file, __pyx_n_s__decode); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_output_file, __pyx_n_s__decode); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
- __pyx_t_3 = PyObject_GetAttr(__pyx_v_4lxml_5etree_sys, __pyx_n_s_413); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_sys, __pyx_n_s_428); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_2 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
- __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_414), __pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_429), __pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_3));
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
static PyObject *__pyx_pw_4lxml_5etree_9_MemDebug_9show(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_output_file = 0;
PyObject *__pyx_v_block_count = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("show (wrapper)", 0);
* elif isinstance(output_file, unicode):
* output_file.encode(sys.getfilesystemencoding())
*/
- __Pyx_INCREF(((PyObject *)__pyx_kp_b_415));
+ __Pyx_INCREF(((PyObject *)__pyx_kp_b_430));
__Pyx_DECREF(__pyx_v_output_file);
- __pyx_v_output_file = ((PyObject *)__pyx_kp_b_415);
+ __pyx_v_output_file = ((PyObject *)__pyx_kp_b_430);
goto __pyx_L3;
}
*
* f = stdio.fopen(output_file, "w")
*/
- __pyx_t_2 = PyObject_GetAttr(__pyx_v_output_file, __pyx_n_s__encode); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_output_file, __pyx_n_s__encode); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_3 = PyObject_GetAttr(__pyx_v_4lxml_5etree_sys, __pyx_n_s_413); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_sys, __pyx_n_s_428); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_4 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
* if f is NULL:
* raise IOError("Failed to create file %s" % output_file.decode(sys.getfilesystemencoding()))
*/
- __pyx_t_5 = PyBytes_AsString(__pyx_v_output_file); if (unlikely((!__pyx_t_5) && PyErr_Occurred())) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_PyObject_AsString(__pyx_v_output_file); if (unlikely((!__pyx_t_5) && PyErr_Occurred())) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_v_f = fopen(__pyx_t_5, __pyx_k__w);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/debug.pxi":86
* try:
* tree.xmlMemShow(f, block_count if block_count is not None else tree.xmlMemBlocks())
*/
- __pyx_t_4 = PyObject_GetAttr(__pyx_v_output_file, __pyx_n_s__decode); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_output_file, __pyx_n_s__decode); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
- __pyx_t_3 = PyObject_GetAttr(__pyx_v_4lxml_5etree_sys, __pyx_n_s_413); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_sys, __pyx_n_s_428); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_2 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
- __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_414), __pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_429), __pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_3));
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
static PyObject *__pyx_tp_new_4lxml_5etree__TempStore(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
struct __pyx_obj_4lxml_5etree__TempStore *p;
- PyObject *o = (*t->tp_alloc)(t, 0);
- if (!o) return 0;
+ PyObject *o;
+ o = (*t->tp_alloc)(t, 0);
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree__TempStore *)o);
p->__pyx_vtab = __pyx_vtabptr_4lxml_5etree__TempStore;
p->_storage = ((PyObject*)Py_None); Py_INCREF(Py_None);
struct __pyx_obj_4lxml_5etree__TempStore *p = (struct __pyx_obj_4lxml_5etree__TempStore *)o;
PyObject_GC_UnTrack(o);
Py_CLEAR(p->_storage);
- PyObject_GC_Track(o);
(*Py_TYPE(o)->tp_free)(o);
}
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__TempStore, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
0, /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__TempStore, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__TempStore, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree__ExceptionContext(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
struct __pyx_obj_4lxml_5etree__ExceptionContext *p;
- PyObject *o = (*t->tp_alloc)(t, 0);
- if (!o) return 0;
+ PyObject *o;
+ o = (*t->tp_alloc)(t, 0);
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree__ExceptionContext *)o);
p->__pyx_vtab = __pyx_vtabptr_4lxml_5etree__ExceptionContext;
p->_exc_info = Py_None; Py_INCREF(Py_None);
struct __pyx_obj_4lxml_5etree__ExceptionContext *p = (struct __pyx_obj_4lxml_5etree__ExceptionContext *)o;
PyObject_GC_UnTrack(o);
Py_CLEAR(p->_exc_info);
- PyObject_GC_Track(o);
(*Py_TYPE(o)->tp_free)(o);
}
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__ExceptionContext, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
0, /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__ExceptionContext, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__ExceptionContext, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree__Document(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
struct LxmlDocument *p;
- PyObject *o = (*t->tp_alloc)(t, 0);
- if (!o) return 0;
+ PyObject *o;
+ o = (*t->tp_alloc)(t, 0);
+ if (unlikely(!o)) return 0;
p = ((struct LxmlDocument *)o);
p->__pyx_vtab = __pyx_vtabptr_4lxml_5etree__Document;
p->_prefix_tail = ((PyObject*)Py_None); Py_INCREF(Py_None);
}
Py_CLEAR(p->_prefix_tail);
Py_CLEAR(p->_parser);
- PyObject_GC_Track(o);
(*Py_TYPE(o)->tp_free)(o);
}
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__Document, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("Internal base class to reference a libxml document.\n\n When instances of this class are garbage collected, the libxml\n document is cleaned up.\n "), /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__Document, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__Document, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree__Element(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
struct LxmlElement *p;
- PyObject *o = (*t->tp_alloc)(t, 0);
- if (!o) return 0;
+ PyObject *o;
+ o = (*t->tp_alloc)(t, 0);
+ if (unlikely(!o)) return 0;
p = ((struct LxmlElement *)o);
p->_doc = ((struct LxmlDocument *)Py_None); Py_INCREF(Py_None);
p->_tag = Py_None; Py_INCREF(Py_None);
}
Py_CLEAR(p->_doc);
Py_CLEAR(p->_tag);
- PyObject_GC_Track(o);
(*Py_TYPE(o)->tp_free)(o);
}
};
static struct PyGetSetDef __pyx_getsets_4lxml_5etree__Element[] = {
- {(char *)"tag", __pyx_getprop_4lxml_5etree_8_Element_tag, __pyx_setprop_4lxml_5etree_8_Element_tag, __Pyx_DOCSTR(__pyx_k_416), 0},
- {(char *)"attrib", __pyx_getprop_4lxml_5etree_8_Element_attrib, 0, __Pyx_DOCSTR(__pyx_k_417), 0},
- {(char *)"text", __pyx_getprop_4lxml_5etree_8_Element_text, __pyx_setprop_4lxml_5etree_8_Element_text, __Pyx_DOCSTR(__pyx_k_418), 0},
- {(char *)"tail", __pyx_getprop_4lxml_5etree_8_Element_tail, __pyx_setprop_4lxml_5etree_8_Element_tail, __Pyx_DOCSTR(__pyx_k_419), 0},
- {(char *)"prefix", __pyx_getprop_4lxml_5etree_8_Element_prefix, 0, __Pyx_DOCSTR(__pyx_k_420), 0},
- {(char *)"sourceline", __pyx_getprop_4lxml_5etree_8_Element_sourceline, __pyx_setprop_4lxml_5etree_8_Element_sourceline, __Pyx_DOCSTR(__pyx_k_421), 0},
- {(char *)"nsmap", __pyx_getprop_4lxml_5etree_8_Element_nsmap, 0, __Pyx_DOCSTR(__pyx_k_422), 0},
- {(char *)"base", __pyx_getprop_4lxml_5etree_8_Element_base, __pyx_setprop_4lxml_5etree_8_Element_base, __Pyx_DOCSTR(__pyx_k_423), 0},
+ {(char *)"tag", __pyx_getprop_4lxml_5etree_8_Element_tag, __pyx_setprop_4lxml_5etree_8_Element_tag, __Pyx_DOCSTR(__pyx_k_431), 0},
+ {(char *)"attrib", __pyx_getprop_4lxml_5etree_8_Element_attrib, 0, __Pyx_DOCSTR(__pyx_k_432), 0},
+ {(char *)"text", __pyx_getprop_4lxml_5etree_8_Element_text, __pyx_setprop_4lxml_5etree_8_Element_text, __Pyx_DOCSTR(__pyx_k_433), 0},
+ {(char *)"tail", __pyx_getprop_4lxml_5etree_8_Element_tail, __pyx_setprop_4lxml_5etree_8_Element_tail, __Pyx_DOCSTR(__pyx_k_434), 0},
+ {(char *)"prefix", __pyx_getprop_4lxml_5etree_8_Element_prefix, 0, __Pyx_DOCSTR(__pyx_k_435), 0},
+ {(char *)"sourceline", __pyx_getprop_4lxml_5etree_8_Element_sourceline, __pyx_setprop_4lxml_5etree_8_Element_sourceline, __Pyx_DOCSTR(__pyx_k_436), 0},
+ {(char *)"nsmap", __pyx_getprop_4lxml_5etree_8_Element_nsmap, 0, __Pyx_DOCSTR(__pyx_k_437), 0},
+ {(char *)"base", __pyx_getprop_4lxml_5etree_8_Element_base, __pyx_setprop_4lxml_5etree_8_Element_base, __Pyx_DOCSTR(__pyx_k_438), 0},
{0, 0, 0, 0, 0}
};
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__Element, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("Element class.\n\n References a document object and a libxml node.\n\n By pointing to a Document instance, a reference is kept to\n _Document as long as there is some pointer to a node in it.\n "), /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__Element, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__Element, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree__BaseParser(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
struct __pyx_obj_4lxml_5etree__BaseParser *p;
- PyObject *o = (*t->tp_alloc)(t, 0);
- if (!o) return 0;
+ PyObject *o;
+ o = (*t->tp_alloc)(t, 0);
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree__BaseParser *)o);
p->__pyx_vtab = __pyx_vtabptr_4lxml_5etree__BaseParser;
p->_class_lookup = ((struct LxmlElementClassLookup *)Py_None); Py_INCREF(Py_None);
Py_CLEAR(p->_filename);
Py_CLEAR(p->target);
Py_CLEAR(p->_default_encoding);
- PyObject_GC_Track(o);
(*Py_TYPE(o)->tp_free)(o);
}
};
static struct PyGetSetDef __pyx_getsets_4lxml_5etree__BaseParser[] = {
- {(char *)"error_log", __pyx_getprop_4lxml_5etree_11_BaseParser_error_log, 0, __Pyx_DOCSTR(__pyx_k_424), 0},
- {(char *)"resolvers", __pyx_getprop_4lxml_5etree_11_BaseParser_resolvers, 0, __Pyx_DOCSTR(__pyx_k_425), 0},
- {(char *)"version", __pyx_getprop_4lxml_5etree_11_BaseParser_version, 0, __Pyx_DOCSTR(__pyx_k_426), 0},
+ {(char *)"error_log", __pyx_getprop_4lxml_5etree_11_BaseParser_error_log, 0, __Pyx_DOCSTR(__pyx_k_439), 0},
+ {(char *)"resolvers", __pyx_getprop_4lxml_5etree_11_BaseParser_resolvers, 0, __Pyx_DOCSTR(__pyx_k_440), 0},
+ {(char *)"version", __pyx_getprop_4lxml_5etree_11_BaseParser_version, 0, __Pyx_DOCSTR(__pyx_k_441), 0},
{(char *)"target", __pyx_getprop_4lxml_5etree_11_BaseParser_target, 0, 0, 0},
{0, 0, 0, 0, 0}
};
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__BaseParser, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
0, /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__BaseParser, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__BaseParser, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree_QName(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
struct __pyx_obj_4lxml_5etree_QName *p;
- PyObject *o = (*t->tp_alloc)(t, 0);
- if (!o) return 0;
+ PyObject *o;
+ o = (*t->tp_alloc)(t, 0);
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree_QName *)o);
p->text = Py_None; Py_INCREF(Py_None);
p->localname = Py_None; Py_INCREF(Py_None);
Py_CLEAR(p->text);
Py_CLEAR(p->localname);
Py_CLEAR(p->namespace);
- PyObject_GC_Track(o);
(*Py_TYPE(o)->tp_free)(o);
}
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer_QName, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("QName(text_or_uri_or_element, tag=None)\n\n QName wrapper for qualified XML names.\n\n Pass a tag name by itself or a namespace URI and a tag name to\n create a qualified name. Alternatively, pass an Element to\n extract its tag name.\n\n The ``text`` property holds the qualified name in\n ``{namespace}tagname`` notation. The ``namespace`` and\n ``localname`` properties hold the respective parts of the tag\n name.\n\n You can pass QName objects wherever a tag name is expected. Also,\n setting Element text from a QName will resolve the namespace\n prefix and set a qualified text value. This is helpful in XML\n languages like SOAP or XML-Schema that use prefixed tag names in\n their text content.\n "), /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree_QName, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree_QName, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree__LogEntry(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
struct __pyx_obj_4lxml_5etree__LogEntry *p;
- PyObject *o = (*t->tp_alloc)(t, 0);
- if (!o) return 0;
+ PyObject *o;
+ o = (*t->tp_alloc)(t, 0);
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree__LogEntry *)o);
p->__pyx_vtab = __pyx_vtabptr_4lxml_5etree__LogEntry;
p->message = Py_None; Py_INCREF(Py_None);
PyObject_GC_UnTrack(o);
Py_CLEAR(p->message);
Py_CLEAR(p->filename);
- PyObject_GC_Track(o);
(*Py_TYPE(o)->tp_free)(o);
}
};
static struct PyGetSetDef __pyx_getsets_4lxml_5etree__LogEntry[] = {
- {(char *)"domain_name", __pyx_getprop_4lxml_5etree_9_LogEntry_domain_name, 0, __Pyx_DOCSTR(__pyx_k_427), 0},
- {(char *)"type_name", __pyx_getprop_4lxml_5etree_9_LogEntry_type_name, 0, __Pyx_DOCSTR(__pyx_k_428), 0},
- {(char *)"level_name", __pyx_getprop_4lxml_5etree_9_LogEntry_level_name, 0, __Pyx_DOCSTR(__pyx_k_429), 0},
+ {(char *)"domain_name", __pyx_getprop_4lxml_5etree_9_LogEntry_domain_name, 0, __Pyx_DOCSTR(__pyx_k_442), 0},
+ {(char *)"type_name", __pyx_getprop_4lxml_5etree_9_LogEntry_type_name, 0, __Pyx_DOCSTR(__pyx_k_443), 0},
+ {(char *)"level_name", __pyx_getprop_4lxml_5etree_9_LogEntry_level_name, 0, __Pyx_DOCSTR(__pyx_k_444), 0},
{(char *)"domain", __pyx_getprop_4lxml_5etree_9_LogEntry_domain, 0, 0, 0},
{(char *)"type", __pyx_getprop_4lxml_5etree_9_LogEntry_type, 0, 0, 0},
{(char *)"level", __pyx_getprop_4lxml_5etree_9_LogEntry_level, 0, 0, 0},
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__LogEntry, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("A log message entry from an error log.\n\n Attributes:\n\n - message: the message text\n - domain: the domain ID (see lxml.etree.ErrorDomains)\n - type: the message type ID (see lxml.etree.ErrorTypes)\n - level: the log level ID (see lxml.etree.ErrorLevels)\n - line: the line at which the message originated (if applicable)\n - column: the character column at which the message originated (if applicable)\n - filename: the name of the file in which the message originated (if applicable)\n "), /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__LogEntry, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__LogEntry, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree__BaseErrorLog(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
struct __pyx_obj_4lxml_5etree__BaseErrorLog *p;
- PyObject *o = (*t->tp_alloc)(t, 0);
- if (!o) return 0;
+ PyObject *o;
+ o = (*t->tp_alloc)(t, 0);
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)o);
p->__pyx_vtab = __pyx_vtabptr_4lxml_5etree__BaseErrorLog;
p->_first_error = ((struct __pyx_obj_4lxml_5etree__LogEntry *)Py_None); Py_INCREF(Py_None);
PyObject_GC_UnTrack(o);
Py_CLEAR(p->_first_error);
Py_CLEAR(p->last_error);
- PyObject_GC_Track(o);
(*Py_TYPE(o)->tp_free)(o);
}
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__BaseErrorLog, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
0, /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__BaseErrorLog, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__BaseErrorLog, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree__ListErrorLog(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree__ListErrorLog *p;
PyObject *o = __pyx_tp_new_4lxml_5etree__BaseErrorLog(t, a, k);
- if (!o) return 0;
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree__ListErrorLog *)o);
p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4lxml_5etree__BaseErrorLog*)__pyx_vtabptr_4lxml_5etree__ListErrorLog;
p->_entries = ((PyObject*)Py_None); Py_INCREF(Py_None);
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__ListErrorLog, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("Immutable base version of a list based error log."), /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__ListErrorLog, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__ListErrorLog, /*tp_clear*/
};
static PyObject *__pyx_tp_new_4lxml_5etree__ErrorLogContext(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
- PyObject *o = (*t->tp_alloc)(t, 0);
- if (!o) return 0;
+ PyObject *o;
+ o = (*t->tp_alloc)(t, 0);
+ if (unlikely(!o)) return 0;
return o;
}
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__ErrorLogContext, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER, /*tp_flags*/
__Pyx_DOCSTR("\n Error log context for the 'with' statement.\n Stores a reference to the current callbacks to allow for\n recursively stacked log contexts.\n "), /*tp_doc*/
0, /*tp_traverse*/
0, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree__ErrorLog(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree__ErrorLog *p;
PyObject *o = __pyx_tp_new_4lxml_5etree__ListErrorLog(t, a, k);
- if (!o) return 0;
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree__ErrorLog *)o);
p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4lxml_5etree__BaseErrorLog*)__pyx_vtabptr_4lxml_5etree__ErrorLog;
p->_logContexts = ((PyObject*)Py_None); Py_INCREF(Py_None);
- if (__pyx_pw_4lxml_5etree_9_ErrorLog_1__cinit__(o, __pyx_empty_tuple, NULL) < 0) {
+ if (unlikely(__pyx_pw_4lxml_5etree_9_ErrorLog_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
Py_DECREF(o); o = 0;
}
return o;
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__ErrorLog, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
0, /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__ErrorLog, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__ErrorLog, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree__DomainErrorLog(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree__DomainErrorLog *p;
PyObject *o = __pyx_tp_new_4lxml_5etree__ErrorLog(t, a, k);
- if (!o) return 0;
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree__DomainErrorLog *)o);
p->__pyx_base.__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4lxml_5etree__BaseErrorLog*)__pyx_vtabptr_4lxml_5etree__DomainErrorLog;
return o;
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__DomainErrorLog, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
0, /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__ErrorLog, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__ErrorLog, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree__RotatingErrorLog(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree__RotatingErrorLog *p;
PyObject *o = __pyx_tp_new_4lxml_5etree__ErrorLog(t, a, k);
- if (!o) return 0;
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree__RotatingErrorLog *)o);
p->__pyx_base.__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4lxml_5etree__BaseErrorLog*)__pyx_vtabptr_4lxml_5etree__RotatingErrorLog;
return o;
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__RotatingErrorLog, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
0, /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__ErrorLog, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__ErrorLog, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree_PyErrorLog(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree_PyErrorLog *p;
PyObject *o = __pyx_tp_new_4lxml_5etree__BaseErrorLog(t, a, k);
- if (!o) return 0;
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree_PyErrorLog *)o);
p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4lxml_5etree__BaseErrorLog*)__pyx_vtabptr_4lxml_5etree_PyErrorLog;
p->level_map = ((PyObject*)Py_None); Py_INCREF(Py_None);
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer_PyErrorLog, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("PyErrorLog(self, logger_name=None, logger=None)\n A global error log that connects to the Python stdlib logging package.\n\n The constructor accepts an optional logger name or a readily\n instantiated logger instance.\n\n If you want to change the mapping between libxml2's ErrorLevels and Python\n logging levels, you can modify the level_map dictionary from a subclass.\n\n The default mapping is::\n\n ErrorLevels.WARNING = logging.WARNING\n ErrorLevels.ERROR = logging.ERROR\n ErrorLevels.FATAL = logging.CRITICAL\n\n You can also override the method ``receive()`` that takes a LogEntry\n object and calls ``self.log(log_entry, format_string, arg1, arg2, ...)``\n with appropriate data.\n "), /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree_PyErrorLog, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree_PyErrorLog, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree_DocInfo(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree_DocInfo *p;
- PyObject *o = (*t->tp_alloc)(t, 0);
- if (!o) return 0;
+ PyObject *o;
+ o = (*t->tp_alloc)(t, 0);
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree_DocInfo *)o);
p->_doc = ((struct LxmlDocument *)Py_None); Py_INCREF(Py_None);
- if (__pyx_pw_4lxml_5etree_7DocInfo_1__cinit__(o, a, k) < 0) {
+ if (unlikely(__pyx_pw_4lxml_5etree_7DocInfo_1__cinit__(o, a, k) < 0)) {
Py_DECREF(o); o = 0;
}
return o;
struct __pyx_obj_4lxml_5etree_DocInfo *p = (struct __pyx_obj_4lxml_5etree_DocInfo *)o;
PyObject_GC_UnTrack(o);
Py_CLEAR(p->_doc);
- PyObject_GC_Track(o);
(*Py_TYPE(o)->tp_free)(o);
}
};
static struct PyGetSetDef __pyx_getsets_4lxml_5etree_DocInfo[] = {
- {(char *)"root_name", __pyx_getprop_4lxml_5etree_7DocInfo_root_name, 0, __Pyx_DOCSTR(__pyx_k_430), 0},
- {(char *)"public_id", __pyx_getprop_4lxml_5etree_7DocInfo_public_id, 0, __Pyx_DOCSTR(__pyx_k_431), 0},
- {(char *)"system_url", __pyx_getprop_4lxml_5etree_7DocInfo_system_url, 0, __Pyx_DOCSTR(__pyx_k_432), 0},
- {(char *)"xml_version", __pyx_getprop_4lxml_5etree_7DocInfo_xml_version, 0, __Pyx_DOCSTR(__pyx_k_433), 0},
- {(char *)"encoding", __pyx_getprop_4lxml_5etree_7DocInfo_encoding, 0, __Pyx_DOCSTR(__pyx_k_434), 0},
- {(char *)"standalone", __pyx_getprop_4lxml_5etree_7DocInfo_standalone, 0, __Pyx_DOCSTR(__pyx_k_435), 0},
- {(char *)"URL", __pyx_getprop_4lxml_5etree_7DocInfo_URL, __pyx_setprop_4lxml_5etree_7DocInfo_URL, __Pyx_DOCSTR(__pyx_k_436), 0},
- {(char *)"doctype", __pyx_getprop_4lxml_5etree_7DocInfo_doctype, 0, __Pyx_DOCSTR(__pyx_k_437), 0},
- {(char *)"internalDTD", __pyx_getprop_4lxml_5etree_7DocInfo_internalDTD, 0, __Pyx_DOCSTR(__pyx_k_438), 0},
- {(char *)"externalDTD", __pyx_getprop_4lxml_5etree_7DocInfo_externalDTD, 0, __Pyx_DOCSTR(__pyx_k_439), 0},
+ {(char *)"root_name", __pyx_getprop_4lxml_5etree_7DocInfo_root_name, 0, __Pyx_DOCSTR(__pyx_k_445), 0},
+ {(char *)"public_id", __pyx_getprop_4lxml_5etree_7DocInfo_public_id, 0, __Pyx_DOCSTR(__pyx_k_446), 0},
+ {(char *)"system_url", __pyx_getprop_4lxml_5etree_7DocInfo_system_url, 0, __Pyx_DOCSTR(__pyx_k_447), 0},
+ {(char *)"xml_version", __pyx_getprop_4lxml_5etree_7DocInfo_xml_version, 0, __Pyx_DOCSTR(__pyx_k_448), 0},
+ {(char *)"encoding", __pyx_getprop_4lxml_5etree_7DocInfo_encoding, 0, __Pyx_DOCSTR(__pyx_k_449), 0},
+ {(char *)"standalone", __pyx_getprop_4lxml_5etree_7DocInfo_standalone, 0, __Pyx_DOCSTR(__pyx_k_450), 0},
+ {(char *)"URL", __pyx_getprop_4lxml_5etree_7DocInfo_URL, __pyx_setprop_4lxml_5etree_7DocInfo_URL, __Pyx_DOCSTR(__pyx_k_451), 0},
+ {(char *)"doctype", __pyx_getprop_4lxml_5etree_7DocInfo_doctype, 0, __Pyx_DOCSTR(__pyx_k_452), 0},
+ {(char *)"internalDTD", __pyx_getprop_4lxml_5etree_7DocInfo_internalDTD, 0, __Pyx_DOCSTR(__pyx_k_453), 0},
+ {(char *)"externalDTD", __pyx_getprop_4lxml_5etree_7DocInfo_externalDTD, 0, __Pyx_DOCSTR(__pyx_k_454), 0},
{0, 0, 0, 0, 0}
};
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer_DocInfo, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("Document information provided by parser and DTD."), /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree_DocInfo, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree_DocInfo, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree___ContentOnlyElement(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree___ContentOnlyElement *p;
PyObject *o = __pyx_tp_new_4lxml_5etree__Element(t, a, k);
- if (!o) return 0;
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree___ContentOnlyElement *)o);
p->__pyx_vtab = __pyx_vtabptr_4lxml_5etree___ContentOnlyElement;
return o;
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer___ContentOnlyElement, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
0, /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__Element, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__Element, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree__Comment(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree__Comment *p;
- PyObject *o = __pyx_tp_new_4lxml_5etree__Element(t, a, k);
- if (!o) return 0;
+ PyObject *o = __pyx_tp_new_4lxml_5etree___ContentOnlyElement(t, a, k);
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree__Comment *)o);
p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4lxml_5etree___ContentOnlyElement*)__pyx_vtabptr_4lxml_5etree__Comment;
return o;
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__Comment, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
0, /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__Element, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__Element, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree__ProcessingInstruction(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree__ProcessingInstruction *p;
- PyObject *o = __pyx_tp_new_4lxml_5etree__Element(t, a, k);
- if (!o) return 0;
+ PyObject *o = __pyx_tp_new_4lxml_5etree___ContentOnlyElement(t, a, k);
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree__ProcessingInstruction *)o);
p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4lxml_5etree___ContentOnlyElement*)__pyx_vtabptr_4lxml_5etree__ProcessingInstruction;
return o;
static struct PyGetSetDef __pyx_getsets_4lxml_5etree__ProcessingInstruction[] = {
{(char *)"tag", __pyx_getprop_4lxml_5etree_22_ProcessingInstruction_tag, 0, 0, 0},
{(char *)"target", __pyx_getprop_4lxml_5etree_22_ProcessingInstruction_target, __pyx_setprop_4lxml_5etree_22_ProcessingInstruction_target, 0, 0},
- {(char *)"attrib", __pyx_getprop_4lxml_5etree_22_ProcessingInstruction_attrib, 0, __Pyx_DOCSTR(__pyx_k_440), 0},
+ {(char *)"attrib", __pyx_getprop_4lxml_5etree_22_ProcessingInstruction_attrib, 0, __Pyx_DOCSTR(__pyx_k_455), 0},
{0, 0, 0, 0, 0}
};
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__ProcessingInstruction, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
0, /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__Element, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__Element, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree__Entity(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree__Entity *p;
- PyObject *o = __pyx_tp_new_4lxml_5etree__Element(t, a, k);
- if (!o) return 0;
+ PyObject *o = __pyx_tp_new_4lxml_5etree___ContentOnlyElement(t, a, k);
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree__Entity *)o);
p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4lxml_5etree___ContentOnlyElement*)__pyx_vtabptr_4lxml_5etree__Entity;
return o;
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__Entity, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
0, /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__Element, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__Element, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree__ElementTree(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
struct LxmlElementTree *p;
- PyObject *o = (*t->tp_alloc)(t, 0);
- if (!o) return 0;
+ PyObject *o;
+ o = (*t->tp_alloc)(t, 0);
+ if (unlikely(!o)) return 0;
p = ((struct LxmlElementTree *)o);
p->__pyx_vtab = __pyx_vtabptr_4lxml_5etree__ElementTree;
p->_doc = ((struct LxmlDocument *)Py_None); Py_INCREF(Py_None);
PyObject_GC_UnTrack(o);
Py_CLEAR(p->_doc);
Py_CLEAR(p->_context_node);
- PyObject_GC_Track(o);
(*Py_TYPE(o)->tp_free)(o);
}
};
static struct PyGetSetDef __pyx_getsets_4lxml_5etree__ElementTree[] = {
- {(char *)"docinfo", __pyx_getprop_4lxml_5etree_12_ElementTree_docinfo, 0, __Pyx_DOCSTR(__pyx_k_441), 0},
- {(char *)"parser", __pyx_getprop_4lxml_5etree_12_ElementTree_parser, 0, __Pyx_DOCSTR(__pyx_k_442), 0},
+ {(char *)"docinfo", __pyx_getprop_4lxml_5etree_12_ElementTree_docinfo, 0, __Pyx_DOCSTR(__pyx_k_456), 0},
+ {(char *)"parser", __pyx_getprop_4lxml_5etree_12_ElementTree_parser, 0, __Pyx_DOCSTR(__pyx_k_457), 0},
{0, 0, 0, 0, 0}
};
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__ElementTree, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
0, /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__ElementTree, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__ElementTree, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree__Attrib(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree__Attrib *p;
- PyObject *o = (*t->tp_alloc)(t, 0);
- if (!o) return 0;
+ PyObject *o;
+ o = (*t->tp_alloc)(t, 0);
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree__Attrib *)o);
p->_element = ((struct LxmlElement *)Py_None); Py_INCREF(Py_None);
- if (__pyx_pw_4lxml_5etree_7_Attrib_1__cinit__(o, a, k) < 0) {
+ if (unlikely(__pyx_pw_4lxml_5etree_7_Attrib_1__cinit__(o, a, k) < 0)) {
Py_DECREF(o); o = 0;
}
return o;
struct __pyx_obj_4lxml_5etree__Attrib *p = (struct __pyx_obj_4lxml_5etree__Attrib *)o;
PyObject_GC_UnTrack(o);
Py_CLEAR(p->_element);
- PyObject_GC_Track(o);
(*Py_TYPE(o)->tp_free)(o);
}
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__Attrib, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("A dict-like proxy for the ``Element.attrib`` property.\n "), /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__Attrib, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__Attrib, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree__AttribIterator(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
struct __pyx_obj_4lxml_5etree__AttribIterator *p;
- PyObject *o = (*t->tp_alloc)(t, 0);
- if (!o) return 0;
+ PyObject *o;
+ o = (*t->tp_alloc)(t, 0);
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree__AttribIterator *)o);
p->_node = ((struct LxmlElement *)Py_None); Py_INCREF(Py_None);
return o;
struct __pyx_obj_4lxml_5etree__AttribIterator *p = (struct __pyx_obj_4lxml_5etree__AttribIterator *)o;
PyObject_GC_UnTrack(o);
Py_CLEAR(p->_node);
- PyObject_GC_Track(o);
(*Py_TYPE(o)->tp_free)(o);
}
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__AttribIterator, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("Attribute iterator - for internal use only!\n "), /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__AttribIterator, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__AttribIterator, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree__ElementTagMatcher(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
struct LxmlElementTagMatcher *p;
- PyObject *o = (*t->tp_alloc)(t, 0);
- if (!o) return 0;
+ PyObject *o;
+ o = (*t->tp_alloc)(t, 0);
+ if (unlikely(!o)) return 0;
p = ((struct LxmlElementTagMatcher *)o);
p->__pyx_vtab = __pyx_vtabptr_4lxml_5etree__ElementTagMatcher;
p->_pystrings = Py_None; Py_INCREF(Py_None);
struct LxmlElementTagMatcher *p = (struct LxmlElementTagMatcher *)o;
PyObject_GC_UnTrack(o);
Py_CLEAR(p->_pystrings);
- PyObject_GC_Track(o);
(*Py_TYPE(o)->tp_free)(o);
}
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__ElementTagMatcher, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("\n Dead but public. :)\n "), /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__ElementTagMatcher, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__ElementTagMatcher, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree__ElementIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
struct LxmlElementIterator *p;
PyObject *o = __pyx_tp_new_4lxml_5etree__ElementTagMatcher(t, a, k);
- if (!o) return 0;
+ if (unlikely(!o)) return 0;
p = ((struct LxmlElementIterator *)o);
p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4lxml_5etree__ElementTagMatcher*)__pyx_vtabptr_4lxml_5etree__ElementIterator;
p->_node = ((struct LxmlElement *)Py_None); Py_INCREF(Py_None);
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__ElementIterator, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("\n Dead but public. :)\n "), /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__ElementIterator, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__ElementIterator, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree__MultiTagMatcher(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree__MultiTagMatcher *p;
- PyObject *o = (*t->tp_alloc)(t, 0);
- if (!o) return 0;
+ PyObject *o;
+ o = (*t->tp_alloc)(t, 0);
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree__MultiTagMatcher *)o);
p->__pyx_vtab = __pyx_vtabptr_4lxml_5etree__MultiTagMatcher;
p->_py_tags = ((PyObject*)Py_None); Py_INCREF(Py_None);
p->_cached_doc = ((struct LxmlDocument *)Py_None); Py_INCREF(Py_None);
- if (__pyx_pw_4lxml_5etree_16_MultiTagMatcher_1__cinit__(o, a, k) < 0) {
+ if (unlikely(__pyx_pw_4lxml_5etree_16_MultiTagMatcher_1__cinit__(o, a, k) < 0)) {
Py_DECREF(o); o = 0;
}
return o;
}
Py_CLEAR(p->_py_tags);
Py_CLEAR(p->_cached_doc);
- PyObject_GC_Track(o);
(*Py_TYPE(o)->tp_free)(o);
}
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__MultiTagMatcher, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("\n Match an xmlNode against a list of tags.\n "), /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__MultiTagMatcher, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__MultiTagMatcher, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree__ElementMatchIterator(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
struct __pyx_obj_4lxml_5etree__ElementMatchIterator *p;
- PyObject *o = (*t->tp_alloc)(t, 0);
- if (!o) return 0;
+ PyObject *o;
+ o = (*t->tp_alloc)(t, 0);
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree__ElementMatchIterator *)o);
p->__pyx_vtab = __pyx_vtabptr_4lxml_5etree__ElementMatchIterator;
p->_node = ((struct LxmlElement *)Py_None); Py_INCREF(Py_None);
PyObject_GC_UnTrack(o);
Py_CLEAR(p->_node);
Py_CLEAR(p->_matcher);
- PyObject_GC_Track(o);
(*Py_TYPE(o)->tp_free)(o);
}
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__ElementMatchIterator, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
0, /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__ElementMatchIterator, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__ElementMatchIterator, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree_ElementChildIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree_ElementChildIterator *p;
PyObject *o = __pyx_tp_new_4lxml_5etree__ElementMatchIterator(t, a, k);
- if (!o) return 0;
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree_ElementChildIterator *)o);
p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4lxml_5etree__ElementMatchIterator*)__pyx_vtabptr_4lxml_5etree_ElementChildIterator;
- if (__pyx_pw_4lxml_5etree_20ElementChildIterator_1__cinit__(o, a, k) < 0) {
+ if (unlikely(__pyx_pw_4lxml_5etree_20ElementChildIterator_1__cinit__(o, a, k) < 0)) {
Py_DECREF(o); o = 0;
}
return o;
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer_ElementChildIterator, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("ElementChildIterator(self, node, tag=None, reversed=False)\n Iterates over the children of an element.\n "), /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__ElementMatchIterator, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__ElementMatchIterator, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree_SiblingsIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree_SiblingsIterator *p;
PyObject *o = __pyx_tp_new_4lxml_5etree__ElementMatchIterator(t, a, k);
- if (!o) return 0;
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree_SiblingsIterator *)o);
p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4lxml_5etree__ElementMatchIterator*)__pyx_vtabptr_4lxml_5etree_SiblingsIterator;
- if (__pyx_pw_4lxml_5etree_16SiblingsIterator_1__cinit__(o, a, k) < 0) {
+ if (unlikely(__pyx_pw_4lxml_5etree_16SiblingsIterator_1__cinit__(o, a, k) < 0)) {
Py_DECREF(o); o = 0;
}
return o;
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer_SiblingsIterator, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("SiblingsIterator(self, node, tag=None, preceding=False)\n Iterates over the siblings of an element.\n\n You can pass the boolean keyword ``preceding`` to specify the direction.\n "), /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__ElementMatchIterator, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__ElementMatchIterator, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree_AncestorsIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree_AncestorsIterator *p;
PyObject *o = __pyx_tp_new_4lxml_5etree__ElementMatchIterator(t, a, k);
- if (!o) return 0;
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree_AncestorsIterator *)o);
p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4lxml_5etree__ElementMatchIterator*)__pyx_vtabptr_4lxml_5etree_AncestorsIterator;
- if (__pyx_pw_4lxml_5etree_17AncestorsIterator_1__cinit__(o, a, k) < 0) {
+ if (unlikely(__pyx_pw_4lxml_5etree_17AncestorsIterator_1__cinit__(o, a, k) < 0)) {
Py_DECREF(o); o = 0;
}
return o;
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer_AncestorsIterator, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("AncestorsIterator(self, node, tag=None)\n Iterates over the ancestors of an element (from parent to parent).\n "), /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__ElementMatchIterator, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__ElementMatchIterator, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree_ElementDepthFirstIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree_ElementDepthFirstIterator *p;
- PyObject *o = (*t->tp_alloc)(t, 0);
- if (!o) return 0;
+ PyObject *o;
+ o = (*t->tp_alloc)(t, 0);
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree_ElementDepthFirstIterator *)o);
p->__pyx_vtab = __pyx_vtabptr_4lxml_5etree_ElementDepthFirstIterator;
p->_next_node = ((struct LxmlElement *)Py_None); Py_INCREF(Py_None);
p->_top_node = ((struct LxmlElement *)Py_None); Py_INCREF(Py_None);
p->_matcher = ((struct __pyx_obj_4lxml_5etree__MultiTagMatcher *)Py_None); Py_INCREF(Py_None);
- if (__pyx_pw_4lxml_5etree_25ElementDepthFirstIterator_1__cinit__(o, a, k) < 0) {
+ if (unlikely(__pyx_pw_4lxml_5etree_25ElementDepthFirstIterator_1__cinit__(o, a, k) < 0)) {
Py_DECREF(o); o = 0;
}
return o;
Py_CLEAR(p->_next_node);
Py_CLEAR(p->_top_node);
Py_CLEAR(p->_matcher);
- PyObject_GC_Track(o);
(*Py_TYPE(o)->tp_free)(o);
}
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer_ElementDepthFirstIterator, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("ElementDepthFirstIterator(self, node, tag=None, inclusive=True)\n Iterates over an element and its sub-elements in document order (depth\n first pre-order).\n\n Note that this also includes comments, entities and processing\n instructions. To filter them out, check if the ``tag`` property\n of the returned element is a string (i.e. not None and not a\n factory function), or pass the ``Element`` factory for the ``tag``\n argument to receive only Elements.\n\n If the optional ``tag`` argument is not None, the iterator returns only\n the elements that match the respective name and namespace.\n\n The optional boolean argument 'inclusive' defaults to True and can be set\n to False to exclude the start element itself.\n\n Note that the behaviour of this iterator is completely undefined if the\n tree it traverses is modified during iteration.\n "), /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree_ElementDepthFirstIterator, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree_ElementDepthFirstIterator, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree_ElementTextIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree_ElementTextIterator *p;
- PyObject *o = (*t->tp_alloc)(t, 0);
- if (!o) return 0;
+ PyObject *o;
+ o = (*t->tp_alloc)(t, 0);
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree_ElementTextIterator *)o);
p->_nextEvent = Py_None; Py_INCREF(Py_None);
p->_start_element = ((struct LxmlElement *)Py_None); Py_INCREF(Py_None);
- if (__pyx_pw_4lxml_5etree_19ElementTextIterator_1__cinit__(o, a, k) < 0) {
+ if (unlikely(__pyx_pw_4lxml_5etree_19ElementTextIterator_1__cinit__(o, a, k) < 0)) {
Py_DECREF(o); o = 0;
}
return o;
PyObject_GC_UnTrack(o);
Py_CLEAR(p->_nextEvent);
Py_CLEAR(p->_start_element);
- PyObject_GC_Track(o);
(*Py_TYPE(o)->tp_free)(o);
}
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer_ElementTextIterator, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("ElementTextIterator(self, element, tag=None, with_tail=True)\n Iterates over the text content of a subtree.\n\n You can pass the ``tag`` keyword argument to restrict text content to a\n specific tag name.\n\n You can set the ``with_tail`` keyword argument to ``False`` to skip over\n tail text.\n "), /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree_ElementTextIterator, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree_ElementTextIterator, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree_CDATA(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree_CDATA *p;
- PyObject *o = (*t->tp_alloc)(t, 0);
- if (!o) return 0;
+ PyObject *o;
+ o = (*t->tp_alloc)(t, 0);
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree_CDATA *)o);
p->_utf8_data = ((PyObject*)Py_None); Py_INCREF(Py_None);
- if (__pyx_pw_4lxml_5etree_5CDATA_1__cinit__(o, a, k) < 0) {
+ if (unlikely(__pyx_pw_4lxml_5etree_5CDATA_1__cinit__(o, a, k) < 0)) {
Py_DECREF(o); o = 0;
}
return o;
struct __pyx_obj_4lxml_5etree_CDATA *p = (struct __pyx_obj_4lxml_5etree_CDATA *)o;
PyObject_GC_UnTrack(o);
Py_CLEAR(p->_utf8_data);
- PyObject_GC_Track(o);
(*Py_TYPE(o)->tp_free)(o);
}
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer_CDATA, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("CDATA(data)\n\n CDATA factory. This factory creates an opaque data object that\n can be used to set Element text. The usual way to use it is::\n\n >>> from lxml import etree\n >>> el = etree.Element('content')\n >>> el.text = etree.CDATA('a string')\n "), /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree_CDATA, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree_CDATA, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree__ReadOnlyProxy(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *p;
- PyObject *o = (*t->tp_alloc)(t, 0);
- if (!o) return 0;
+ PyObject *o;
+ o = (*t->tp_alloc)(t, 0);
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *)o);
p->__pyx_vtab = __pyx_vtabptr_4lxml_5etree__ReadOnlyProxy;
p->_source_proxy = ((struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *)Py_None); Py_INCREF(Py_None);
p->_dependent_proxies = ((PyObject*)Py_None); Py_INCREF(Py_None);
- if (__pyx_pw_4lxml_5etree_14_ReadOnlyProxy_1__cinit__(o, __pyx_empty_tuple, NULL) < 0) {
+ if (unlikely(__pyx_pw_4lxml_5etree_14_ReadOnlyProxy_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
Py_DECREF(o); o = 0;
}
return o;
PyObject_GC_UnTrack(o);
Py_CLEAR(p->_source_proxy);
Py_CLEAR(p->_dependent_proxies);
- PyObject_GC_Track(o);
(*Py_TYPE(o)->tp_free)(o);
}
};
static struct PyGetSetDef __pyx_getsets_4lxml_5etree__ReadOnlyProxy[] = {
- {(char *)"tag", __pyx_getprop_4lxml_5etree_14_ReadOnlyProxy_tag, 0, __Pyx_DOCSTR(__pyx_k_416), 0},
- {(char *)"text", __pyx_getprop_4lxml_5etree_14_ReadOnlyProxy_text, 0, __Pyx_DOCSTR(__pyx_k_418), 0},
- {(char *)"tail", __pyx_getprop_4lxml_5etree_14_ReadOnlyProxy_tail, 0, __Pyx_DOCSTR(__pyx_k_419), 0},
- {(char *)"sourceline", __pyx_getprop_4lxml_5etree_14_ReadOnlyProxy_sourceline, 0, __Pyx_DOCSTR(__pyx_k_421), 0},
+ {(char *)"tag", __pyx_getprop_4lxml_5etree_14_ReadOnlyProxy_tag, 0, __Pyx_DOCSTR(__pyx_k_431), 0},
+ {(char *)"text", __pyx_getprop_4lxml_5etree_14_ReadOnlyProxy_text, 0, __Pyx_DOCSTR(__pyx_k_433), 0},
+ {(char *)"tail", __pyx_getprop_4lxml_5etree_14_ReadOnlyProxy_tail, 0, __Pyx_DOCSTR(__pyx_k_434), 0},
+ {(char *)"sourceline", __pyx_getprop_4lxml_5etree_14_ReadOnlyProxy_sourceline, 0, __Pyx_DOCSTR(__pyx_k_436), 0},
{0, 0, 0, 0, 0}
};
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__ReadOnlyProxy, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("A read-only proxy class suitable for PIs/Comments (for internal use only!)."), /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__ReadOnlyProxy, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__ReadOnlyProxy, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree__ReadOnlyPIProxy(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree__ReadOnlyPIProxy *p;
PyObject *o = __pyx_tp_new_4lxml_5etree__ReadOnlyProxy(t, a, k);
- if (!o) return 0;
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree__ReadOnlyPIProxy *)o);
p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4lxml_5etree__ReadOnlyProxy*)__pyx_vtabptr_4lxml_5etree__ReadOnlyPIProxy;
return o;
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__ReadOnlyPIProxy, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("A read-only proxy for processing instructions (for internal use only!)"), /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__ReadOnlyProxy, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__ReadOnlyProxy, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree__ReadOnlyEntityProxy(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree__ReadOnlyEntityProxy *p;
PyObject *o = __pyx_tp_new_4lxml_5etree__ReadOnlyProxy(t, a, k);
- if (!o) return 0;
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree__ReadOnlyEntityProxy *)o);
p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4lxml_5etree__ReadOnlyProxy*)__pyx_vtabptr_4lxml_5etree__ReadOnlyEntityProxy;
return o;
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__ReadOnlyEntityProxy, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("A read-only proxy for entity references (for internal use only!)"), /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__ReadOnlyProxy, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__ReadOnlyProxy, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree__ReadOnlyElementProxy(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree__ReadOnlyElementProxy *p;
PyObject *o = __pyx_tp_new_4lxml_5etree__ReadOnlyProxy(t, a, k);
- if (!o) return 0;
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree__ReadOnlyElementProxy *)o);
p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4lxml_5etree__ReadOnlyProxy*)__pyx_vtabptr_4lxml_5etree__ReadOnlyElementProxy;
return o;
static struct PyGetSetDef __pyx_getsets_4lxml_5etree__ReadOnlyElementProxy[] = {
{(char *)"attrib", __pyx_getprop_4lxml_5etree_21_ReadOnlyElementProxy_attrib, 0, 0, 0},
- {(char *)"prefix", __pyx_getprop_4lxml_5etree_21_ReadOnlyElementProxy_prefix, 0, __Pyx_DOCSTR(__pyx_k_420), 0},
+ {(char *)"prefix", __pyx_getprop_4lxml_5etree_21_ReadOnlyElementProxy_prefix, 0, __Pyx_DOCSTR(__pyx_k_435), 0},
{0, 0, 0, 0, 0}
};
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__ReadOnlyElementProxy, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("The main read-only Element proxy class (for internal use only!)."), /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__ReadOnlyProxy, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__ReadOnlyProxy, /*tp_clear*/
};
static PyObject *__pyx_tp_new_4lxml_5etree__OpaqueNodeWrapper(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
- PyObject *o = (*t->tp_alloc)(t, 0);
- if (!o) return 0;
+ PyObject *o;
+ o = (*t->tp_alloc)(t, 0);
+ if (unlikely(!o)) return 0;
return o;
}
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__OpaqueNodeWrapper, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
0, /*tp_doc*/
0, /*tp_traverse*/
0, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree__OpaqueDocumentWrapper(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree__OpaqueDocumentWrapper *p;
PyObject *o = __pyx_tp_new_4lxml_5etree__OpaqueNodeWrapper(t, a, k);
- if (!o) return 0;
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree__OpaqueDocumentWrapper *)o);
p->__pyx_vtab = __pyx_vtabptr_4lxml_5etree__OpaqueDocumentWrapper;
return o;
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__OpaqueDocumentWrapper, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER, /*tp_flags*/
0, /*tp_doc*/
0, /*tp_traverse*/
0, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree__ModifyContentOnlyProxy(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree__ModifyContentOnlyProxy *p;
PyObject *o = __pyx_tp_new_4lxml_5etree__ReadOnlyProxy(t, a, k);
- if (!o) return 0;
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree__ModifyContentOnlyProxy *)o);
p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4lxml_5etree__ReadOnlyProxy*)__pyx_vtabptr_4lxml_5etree__ModifyContentOnlyProxy;
return o;
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__ModifyContentOnlyProxy, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("A read-only proxy that allows changing the text content.\n "), /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__ReadOnlyProxy, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__ReadOnlyProxy, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree__ModifyContentOnlyPIProxy(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree__ModifyContentOnlyPIProxy *p;
- PyObject *o = __pyx_tp_new_4lxml_5etree__ReadOnlyProxy(t, a, k);
- if (!o) return 0;
+ PyObject *o = __pyx_tp_new_4lxml_5etree__ModifyContentOnlyProxy(t, a, k);
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree__ModifyContentOnlyPIProxy *)o);
p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4lxml_5etree__ReadOnlyProxy*)__pyx_vtabptr_4lxml_5etree__ModifyContentOnlyPIProxy;
return o;
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__ModifyContentOnlyPIProxy, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("A read-only proxy that allows changing the text/target content of a\n processing instruction.\n "), /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__ReadOnlyProxy, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__ReadOnlyProxy, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree__ModifyContentOnlyEntityProxy(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree__ModifyContentOnlyEntityProxy *p;
- PyObject *o = __pyx_tp_new_4lxml_5etree__ReadOnlyProxy(t, a, k);
- if (!o) return 0;
+ PyObject *o = __pyx_tp_new_4lxml_5etree__ModifyContentOnlyProxy(t, a, k);
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree__ModifyContentOnlyEntityProxy *)o);
p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4lxml_5etree__ReadOnlyProxy*)__pyx_vtabptr_4lxml_5etree__ModifyContentOnlyEntityProxy;
return o;
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__ModifyContentOnlyEntityProxy, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("A read-only proxy for entity references (for internal use only!)"), /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__ReadOnlyProxy, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__ReadOnlyProxy, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree__AppendOnlyElementProxy(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree__AppendOnlyElementProxy *p;
- PyObject *o = __pyx_tp_new_4lxml_5etree__ReadOnlyProxy(t, a, k);
- if (!o) return 0;
+ PyObject *o = __pyx_tp_new_4lxml_5etree__ReadOnlyElementProxy(t, a, k);
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree__AppendOnlyElementProxy *)o);
p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4lxml_5etree__ReadOnlyProxy*)__pyx_vtabptr_4lxml_5etree__AppendOnlyElementProxy;
return o;
};
static struct PyGetSetDef __pyx_getsets_4lxml_5etree__AppendOnlyElementProxy[] = {
- {(char *)"text", __pyx_getprop_4lxml_5etree_23_AppendOnlyElementProxy_text, __pyx_setprop_4lxml_5etree_23_AppendOnlyElementProxy_text, __Pyx_DOCSTR(__pyx_k_443), 0},
+ {(char *)"text", __pyx_getprop_4lxml_5etree_23_AppendOnlyElementProxy_text, __pyx_setprop_4lxml_5etree_23_AppendOnlyElementProxy_text, __Pyx_DOCSTR(__pyx_k_458), 0},
{0, 0, 0, 0, 0}
};
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__AppendOnlyElementProxy, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("A read-only element that allows adding children and changing the\n text content (i.e. everything that adds to the subtree).\n "), /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__ReadOnlyProxy, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__ReadOnlyProxy, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree_ElementBase(PyTypeObject *t, PyObject *a, PyObject *k) {
PyObject *o = __pyx_tp_new_4lxml_5etree__Element(t, a, k);
- if (!o) return 0;
+ if (unlikely(!o)) return 0;
return o;
}
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer_ElementBase, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("ElementBase(*children, attrib=None, nsmap=None, **_extra)\n\n The public Element class. All custom Element classes must inherit\n from this one. To create an Element, use the `Element()` factory.\n\n BIG FAT WARNING: Subclasses *must not* override __init__ or\n __new__ as it is absolutely undefined when these objects will be\n created or destroyed. All persistent state of Elements must be\n stored in the underlying XML. If you really need to initialize\n the object after creation, you can implement an ``_init(self)``\n method that will be called directly after object creation.\n\n Subclasses of this class can be instantiated to create a new\n Element. By default, the tag name will be the class name and the\n namespace will be empty. You can modify this with the following\n class attributes:\n\n * TAG - the tag name, possibly containing a namespace in Clark\n notation\n\n * NAMESPACE - the default namespace URI, unless provided as part\n of the TAG attribute.\n\n * HTML - flag if the class is an HTML tag, as opposed to an XML\n tag. This only applies to un-namespaced tags and defaults to\n false (i.e. XML).\n\n * PARSER - the parser that provides the configuration for the\n newly created document. Providing an HTML parser here will\n default to creating an HTML element.\n\n In user code, the latter three are commonly inherited in class\n hierarchies that implement a common namespace.\n "), /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__Element, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__Element, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree_CommentBase(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree_CommentBase *p;
- PyObject *o = __pyx_tp_new_4lxml_5etree__Element(t, a, k);
- if (!o) return 0;
+ PyObject *o = __pyx_tp_new_4lxml_5etree__Comment(t, a, k);
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree_CommentBase *)o);
p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4lxml_5etree___ContentOnlyElement*)__pyx_vtabptr_4lxml_5etree_CommentBase;
return o;
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer_CommentBase, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("All custom Comment classes must inherit from this one.\n\n To create an XML Comment instance, use the ``Comment()`` factory.\n\n Subclasses *must not* override __init__ or __new__ as it is\n absolutely undefined when these objects will be created or\n destroyed. All persistent state of Comments must be stored in the\n underlying XML. If you really need to initialize the object after\n creation, you can implement an ``_init(self)`` method that will be\n called after object creation.\n "), /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__Element, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__Element, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree_PIBase(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree_PIBase *p;
- PyObject *o = __pyx_tp_new_4lxml_5etree__Element(t, a, k);
- if (!o) return 0;
+ PyObject *o = __pyx_tp_new_4lxml_5etree__ProcessingInstruction(t, a, k);
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree_PIBase *)o);
p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4lxml_5etree___ContentOnlyElement*)__pyx_vtabptr_4lxml_5etree_PIBase;
return o;
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer_PIBase, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("All custom Processing Instruction classes must inherit from this one.\n\n To create an XML ProcessingInstruction instance, use the ``PI()``\n factory.\n\n Subclasses *must not* override __init__ or __new__ as it is\n absolutely undefined when these objects will be created or\n destroyed. All persistent state of PIs must be stored in the\n underlying XML. If you really need to initialize the object after\n creation, you can implement an ``_init(self)`` method that will be\n called after object creation.\n "), /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__Element, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__Element, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree_EntityBase(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree_EntityBase *p;
- PyObject *o = __pyx_tp_new_4lxml_5etree__Element(t, a, k);
- if (!o) return 0;
+ PyObject *o = __pyx_tp_new_4lxml_5etree__Entity(t, a, k);
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree_EntityBase *)o);
p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4lxml_5etree___ContentOnlyElement*)__pyx_vtabptr_4lxml_5etree_EntityBase;
return o;
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer_EntityBase, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("All custom Entity classes must inherit from this one.\n\n To create an XML Entity instance, use the ``Entity()`` factory.\n\n Subclasses *must not* override __init__ or __new__ as it is\n absolutely undefined when these objects will be created or\n destroyed. All persistent state of Entities must be stored in the\n underlying XML. If you really need to initialize the object after\n creation, you can implement an ``_init(self)`` method that will be\n called after object creation.\n "), /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__Element, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__Element, /*tp_clear*/
};
static PyObject *__pyx_tp_new_4lxml_5etree_ElementClassLookup(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
- PyObject *o = (*t->tp_alloc)(t, 0);
- if (!o) return 0;
- if (__pyx_pw_4lxml_5etree_18ElementClassLookup_1__cinit__(o, __pyx_empty_tuple, NULL) < 0) {
+ PyObject *o;
+ o = (*t->tp_alloc)(t, 0);
+ if (unlikely(!o)) return 0;
+ if (unlikely(__pyx_pw_4lxml_5etree_18ElementClassLookup_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
Py_DECREF(o); o = 0;
}
return o;
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer_ElementClassLookup, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
__Pyx_DOCSTR("ElementClassLookup(self)\n Superclass of Element class lookups.\n "), /*tp_doc*/
0, /*tp_traverse*/
0, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree_FallbackElementClassLookup(PyTypeObject *t, PyObject *a, PyObject *k) {
struct LxmlFallbackElementClassLookup *p;
PyObject *o = __pyx_tp_new_4lxml_5etree_ElementClassLookup(t, a, k);
- if (!o) return 0;
+ if (unlikely(!o)) return 0;
p = ((struct LxmlFallbackElementClassLookup *)o);
p->__pyx_vtab = __pyx_vtabptr_4lxml_5etree_FallbackElementClassLookup;
p->fallback = ((struct LxmlElementClassLookup *)Py_None); Py_INCREF(Py_None);
- if (__pyx_pw_4lxml_5etree_26FallbackElementClassLookup_1__cinit__(o, __pyx_empty_tuple, NULL) < 0) {
+ if (unlikely(__pyx_pw_4lxml_5etree_26FallbackElementClassLookup_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
Py_DECREF(o); o = 0;
}
return o;
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer_FallbackElementClassLookup, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("FallbackElementClassLookup(self, fallback=None)\n\n Superclass of Element class lookups with additional fallback.\n "), /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree_FallbackElementClassLookup, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree_FallbackElementClassLookup, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree_ElementDefaultClassLookup(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree_ElementDefaultClassLookup *p;
PyObject *o = __pyx_tp_new_4lxml_5etree_ElementClassLookup(t, a, k);
- if (!o) return 0;
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree_ElementDefaultClassLookup *)o);
p->element_class = Py_None; Py_INCREF(Py_None);
p->comment_class = Py_None; Py_INCREF(Py_None);
p->pi_class = Py_None; Py_INCREF(Py_None);
p->entity_class = Py_None; Py_INCREF(Py_None);
- if (__pyx_pw_4lxml_5etree_25ElementDefaultClassLookup_1__cinit__(o, __pyx_empty_tuple, NULL) < 0) {
+ if (unlikely(__pyx_pw_4lxml_5etree_25ElementDefaultClassLookup_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
Py_DECREF(o); o = 0;
}
return o;
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer_ElementDefaultClassLookup, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("ElementDefaultClassLookup(self, element=None, comment=None, pi=None, entity=None)\n Element class lookup scheme that always returns the default Element\n class.\n\n The keyword arguments ``element``, ``comment``, ``pi`` and ``entity``\n accept the respective Element classes.\n "), /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree_ElementDefaultClassLookup, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree_ElementDefaultClassLookup, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree_AttributeBasedElementClassLookup(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree_AttributeBasedElementClassLookup *p;
PyObject *o = __pyx_tp_new_4lxml_5etree_FallbackElementClassLookup(t, a, k);
- if (!o) return 0;
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree_AttributeBasedElementClassLookup *)o);
p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4lxml_5etree_FallbackElementClassLookup*)__pyx_vtabptr_4lxml_5etree_AttributeBasedElementClassLookup;
p->_class_mapping = Py_None; Py_INCREF(Py_None);
p->_pytag = Py_None; Py_INCREF(Py_None);
- if (__pyx_pw_4lxml_5etree_32AttributeBasedElementClassLookup_1__cinit__(o, __pyx_empty_tuple, NULL) < 0) {
+ if (unlikely(__pyx_pw_4lxml_5etree_32AttributeBasedElementClassLookup_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
Py_DECREF(o); o = 0;
}
return o;
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer_AttributeBasedElementClassLookup, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("AttributeBasedElementClassLookup(self, attribute_name, class_mapping, fallback=None)\n Checks an attribute of an Element and looks up the value in a\n class dictionary.\n\n Arguments:\n - attribute name - '{ns}name' style string\n - class mapping - Python dict mapping attribute values to Element classes\n - fallback - optional fallback lookup mechanism\n\n A None key in the class mapping will be checked if the attribute is\n missing.\n "), /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree_AttributeBasedElementClassLookup, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree_AttributeBasedElementClassLookup, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree_ParserBasedElementClassLookup(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree_ParserBasedElementClassLookup *p;
PyObject *o = __pyx_tp_new_4lxml_5etree_FallbackElementClassLookup(t, a, k);
- if (!o) return 0;
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree_ParserBasedElementClassLookup *)o);
p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4lxml_5etree_FallbackElementClassLookup*)__pyx_vtabptr_4lxml_5etree_ParserBasedElementClassLookup;
- if (__pyx_pw_4lxml_5etree_29ParserBasedElementClassLookup_1__cinit__(o, __pyx_empty_tuple, NULL) < 0) {
+ if (unlikely(__pyx_pw_4lxml_5etree_29ParserBasedElementClassLookup_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
Py_DECREF(o); o = 0;
}
return o;
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer_ParserBasedElementClassLookup, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("ParserBasedElementClassLookup(self, fallback=None)\n Element class lookup based on the XML parser.\n "), /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree_FallbackElementClassLookup, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree_FallbackElementClassLookup, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree_CustomElementClassLookup(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree_CustomElementClassLookup *p;
PyObject *o = __pyx_tp_new_4lxml_5etree_FallbackElementClassLookup(t, a, k);
- if (!o) return 0;
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree_CustomElementClassLookup *)o);
p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4lxml_5etree_FallbackElementClassLookup*)__pyx_vtabptr_4lxml_5etree_CustomElementClassLookup;
- if (__pyx_pw_4lxml_5etree_24CustomElementClassLookup_1__cinit__(o, __pyx_empty_tuple, NULL) < 0) {
+ if (unlikely(__pyx_pw_4lxml_5etree_24CustomElementClassLookup_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
Py_DECREF(o); o = 0;
}
return o;
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer_CustomElementClassLookup, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("CustomElementClassLookup(self, fallback=None)\n Element class lookup based on a subclass method.\n\n You can inherit from this class and override the method::\n\n lookup(self, type, doc, namespace, name)\n\n to lookup the element class for a node. Arguments of the method:\n * type: one of 'element', 'comment', 'PI', 'entity'\n * doc: document that the node is in\n * namespace: namespace URI of the node (or None for comments/PIs/entities)\n * name: name of the element/entity, None for comments, target for PIs\n\n If you return None from this method, the fallback will be called.\n "), /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree_FallbackElementClassLookup, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree_FallbackElementClassLookup, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree_PythonElementClassLookup(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree_PythonElementClassLookup *p;
PyObject *o = __pyx_tp_new_4lxml_5etree_FallbackElementClassLookup(t, a, k);
- if (!o) return 0;
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree_PythonElementClassLookup *)o);
p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4lxml_5etree_FallbackElementClassLookup*)__pyx_vtabptr_4lxml_5etree_PythonElementClassLookup;
- if (__pyx_pw_4lxml_5etree_24PythonElementClassLookup_1__cinit__(o, __pyx_empty_tuple, NULL) < 0) {
+ if (unlikely(__pyx_pw_4lxml_5etree_24PythonElementClassLookup_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
Py_DECREF(o); o = 0;
}
return o;
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer_PythonElementClassLookup, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("PythonElementClassLookup(self, fallback=None)\n Element class lookup based on a subclass method.\n\n This class lookup scheme allows access to the entire XML tree in\n read-only mode. To use it, re-implement the ``lookup(self, doc,\n root)`` method in a subclass::\n\n >>> from lxml import etree, pyclasslookup\n >>>\n >>> class MyElementClass(etree.ElementBase):\n ... honkey = True\n ...\n >>> class MyLookup(pyclasslookup.PythonElementClassLookup):\n ... def lookup(self, doc, root):\n ... if root.tag == \"sometag\":\n ... return MyElementClass\n ... else:\n ... for child in root:\n ... if child.tag == \"someothertag\":\n ... return MyElementClass\n ... # delegate to default\n ... return None\n\n If you return None from this method, the fallback will be called.\n\n The first argument is the opaque document instance that contains\n the Element. The second argument is a lightweight Element proxy\n implementation that is only valid during the lookup. Do not try\n to keep a reference to it. Once the lookup is done, the proxy\n will be invalid.\n\n Also, you cannot wrap such a read-only Element in an ElementTree,\n and you must take care not to keep a reference to them outside of\n the `lookup()` method.\n\n Note that the API of the Element objects is not complete. It is\n purely read-only and does not support all features of the normal\n `lxml.etree` API (such as XPath, extended slicing or some\n iteration methods).\n\n See http://codespeak.net/lxml/element_classes.html\n "), /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree_FallbackElementClassLookup, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree_FallbackElementClassLookup, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree__NamespaceRegistry(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree__NamespaceRegistry *p;
- PyObject *o = (*t->tp_alloc)(t, 0);
- if (!o) return 0;
+ PyObject *o;
+ o = (*t->tp_alloc)(t, 0);
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree__NamespaceRegistry *)o);
p->__pyx_vtab = __pyx_vtabptr_4lxml_5etree__NamespaceRegistry;
p->_ns_uri = Py_None; Py_INCREF(Py_None);
p->_ns_uri_utf = ((PyObject*)Py_None); Py_INCREF(Py_None);
p->_entries = ((PyObject*)Py_None); Py_INCREF(Py_None);
- if (__pyx_pw_4lxml_5etree_18_NamespaceRegistry_1__cinit__(o, a, k) < 0) {
+ if (unlikely(__pyx_pw_4lxml_5etree_18_NamespaceRegistry_1__cinit__(o, a, k) < 0)) {
Py_DECREF(o); o = 0;
}
return o;
Py_CLEAR(p->_ns_uri);
Py_CLEAR(p->_ns_uri_utf);
Py_CLEAR(p->_entries);
- PyObject_GC_Track(o);
(*Py_TYPE(o)->tp_free)(o);
}
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__NamespaceRegistry, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("Dictionary-like namespace registry"), /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__NamespaceRegistry, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__NamespaceRegistry, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree__ClassNamespaceRegistry(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree__ClassNamespaceRegistry *p;
PyObject *o = __pyx_tp_new_4lxml_5etree__NamespaceRegistry(t, a, k);
- if (!o) return 0;
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree__ClassNamespaceRegistry *)o);
p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4lxml_5etree__NamespaceRegistry*)__pyx_vtabptr_4lxml_5etree__ClassNamespaceRegistry;
return o;
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__ClassNamespaceRegistry, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("Dictionary-like registry for namespace implementation classes"), /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__NamespaceRegistry, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__NamespaceRegistry, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree_ElementNamespaceClassLookup(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree_ElementNamespaceClassLookup *p;
PyObject *o = __pyx_tp_new_4lxml_5etree_FallbackElementClassLookup(t, a, k);
- if (!o) return 0;
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree_ElementNamespaceClassLookup *)o);
p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4lxml_5etree_FallbackElementClassLookup*)__pyx_vtabptr_4lxml_5etree_ElementNamespaceClassLookup;
p->_namespace_registries = ((PyObject*)Py_None); Py_INCREF(Py_None);
- if (__pyx_pw_4lxml_5etree_27ElementNamespaceClassLookup_1__cinit__(o, __pyx_empty_tuple, NULL) < 0) {
+ if (unlikely(__pyx_pw_4lxml_5etree_27ElementNamespaceClassLookup_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
Py_DECREF(o); o = 0;
}
return o;
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer_ElementNamespaceClassLookup, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("ElementNamespaceClassLookup(self, fallback=None)\n\n Element class lookup scheme that searches the Element class in the\n Namespace registry.\n "), /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree_ElementNamespaceClassLookup, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree_ElementNamespaceClassLookup, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree__FunctionNamespaceRegistry(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree__FunctionNamespaceRegistry *p;
PyObject *o = __pyx_tp_new_4lxml_5etree__NamespaceRegistry(t, a, k);
- if (!o) return 0;
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree__FunctionNamespaceRegistry *)o);
p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4lxml_5etree__NamespaceRegistry*)__pyx_vtabptr_4lxml_5etree__FunctionNamespaceRegistry;
return o;
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__FunctionNamespaceRegistry, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
0, /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__NamespaceRegistry, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__NamespaceRegistry, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree__XPathFunctionNamespaceRegistry(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree__XPathFunctionNamespaceRegistry *p;
- PyObject *o = __pyx_tp_new_4lxml_5etree__NamespaceRegistry(t, a, k);
- if (!o) return 0;
+ PyObject *o = __pyx_tp_new_4lxml_5etree__FunctionNamespaceRegistry(t, a, k);
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree__XPathFunctionNamespaceRegistry *)o);
p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4lxml_5etree__NamespaceRegistry*)__pyx_vtabptr_4lxml_5etree__XPathFunctionNamespaceRegistry;
p->_prefix = Py_None; Py_INCREF(Py_None);
};
static struct PyGetSetDef __pyx_getsets_4lxml_5etree__XPathFunctionNamespaceRegistry[] = {
- {(char *)"prefix", __pyx_getprop_4lxml_5etree_31_XPathFunctionNamespaceRegistry_prefix, __pyx_setprop_4lxml_5etree_31_XPathFunctionNamespaceRegistry_prefix, __Pyx_DOCSTR(__pyx_k_444), 0},
+ {(char *)"prefix", __pyx_getprop_4lxml_5etree_31_XPathFunctionNamespaceRegistry_prefix, __pyx_setprop_4lxml_5etree_31_XPathFunctionNamespaceRegistry_prefix, __Pyx_DOCSTR(__pyx_k_459), 0},
{0, 0, 0, 0, 0}
};
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__XPathFunctionNamespaceRegistry, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
0, /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__XPathFunctionNamespaceRegistry, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__XPathFunctionNamespaceRegistry, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree__InputDocument(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
struct __pyx_obj_4lxml_5etree__InputDocument *p;
- PyObject *o = (*t->tp_alloc)(t, 0);
- if (!o) return 0;
+ PyObject *o;
+ o = (*t->tp_alloc)(t, 0);
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree__InputDocument *)o);
p->_data_bytes = Py_None; Py_INCREF(Py_None);
p->_filename = Py_None; Py_INCREF(Py_None);
p->_file = Py_None; Py_INCREF(Py_None);
- if (__pyx_pw_4lxml_5etree_14_InputDocument_1__cinit__(o, __pyx_empty_tuple, NULL) < 0) {
+ if (unlikely(__pyx_pw_4lxml_5etree_14_InputDocument_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
Py_DECREF(o); o = 0;
}
return o;
Py_CLEAR(p->_data_bytes);
Py_CLEAR(p->_filename);
Py_CLEAR(p->_file);
- PyObject_GC_Track(o);
(*Py_TYPE(o)->tp_free)(o);
}
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__InputDocument, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
0, /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__InputDocument, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__InputDocument, /*tp_clear*/
};
static PyObject *__pyx_tp_new_4lxml_5etree_Resolver(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
- PyObject *o = (*t->tp_alloc)(t, 0);
- if (!o) return 0;
+ PyObject *o;
+ o = (*t->tp_alloc)(t, 0);
+ if (unlikely(!o)) return 0;
return o;
}
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer_Resolver, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
__Pyx_DOCSTR("This is the base class of all resolvers."), /*tp_doc*/
0, /*tp_traverse*/
0, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree__ResolverRegistry(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree__ResolverRegistry *p;
- PyObject *o = (*t->tp_alloc)(t, 0);
- if (!o) return 0;
+ PyObject *o;
+ o = (*t->tp_alloc)(t, 0);
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree__ResolverRegistry *)o);
p->__pyx_vtab = __pyx_vtabptr_4lxml_5etree__ResolverRegistry;
p->_resolvers = Py_None; Py_INCREF(Py_None);
p->_default_resolver = ((struct __pyx_obj_4lxml_5etree_Resolver *)Py_None); Py_INCREF(Py_None);
- if (__pyx_pw_4lxml_5etree_17_ResolverRegistry_1__cinit__(o, a, k) < 0) {
+ if (unlikely(__pyx_pw_4lxml_5etree_17_ResolverRegistry_1__cinit__(o, a, k) < 0)) {
Py_DECREF(o); o = 0;
}
return o;
PyObject_GC_UnTrack(o);
Py_CLEAR(p->_resolvers);
Py_CLEAR(p->_default_resolver);
- PyObject_GC_Track(o);
(*Py_TYPE(o)->tp_free)(o);
}
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__ResolverRegistry, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
0, /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__ResolverRegistry, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__ResolverRegistry, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree__ResolverContext(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree__ResolverContext *p;
PyObject *o = __pyx_tp_new_4lxml_5etree__ExceptionContext(t, a, k);
- if (!o) return 0;
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree__ResolverContext *)o);
p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4lxml_5etree__ExceptionContext*)__pyx_vtabptr_4lxml_5etree__ResolverContext;
p->_resolvers = ((struct __pyx_obj_4lxml_5etree__ResolverRegistry *)Py_None); Py_INCREF(Py_None);
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__ResolverContext, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
0, /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__ResolverContext, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__ResolverContext, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree__ParserContext(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree__ParserContext *p;
PyObject *o = __pyx_tp_new_4lxml_5etree__ResolverContext(t, a, k);
- if (!o) return 0;
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree__ParserContext *)o);
p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4lxml_5etree__ExceptionContext*)__pyx_vtabptr_4lxml_5etree__ParserContext;
p->_error_log = ((struct __pyx_obj_4lxml_5etree__ErrorLog *)Py_None); Py_INCREF(Py_None);
p->_validator = ((struct __pyx_obj_4lxml_5etree__ParserSchemaValidationContext *)Py_None); Py_INCREF(Py_None);
- if (__pyx_pw_4lxml_5etree_14_ParserContext_1__cinit__(o, __pyx_empty_tuple, NULL) < 0) {
+ if (unlikely(__pyx_pw_4lxml_5etree_14_ParserContext_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
Py_DECREF(o); o = 0;
}
return o;
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__ParserContext, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
0, /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__ParserContext, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__ParserContext, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree__SaxParserContext(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree__SaxParserContext *p;
PyObject *o = __pyx_tp_new_4lxml_5etree__ParserContext(t, a, k);
- if (!o) return 0;
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree__SaxParserContext *)o);
p->__pyx_base.__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4lxml_5etree__ExceptionContext*)__pyx_vtabptr_4lxml_5etree__SaxParserContext;
p->_target = ((struct __pyx_obj_4lxml_5etree__SaxParserTarget *)Py_None); Py_INCREF(Py_None);
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__SaxParserContext, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("This class maps SAX2 events to method calls.\n "), /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__SaxParserContext, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__SaxParserContext, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree__TargetParserContext(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree__TargetParserContext *p;
PyObject *o = __pyx_tp_new_4lxml_5etree__SaxParserContext(t, a, k);
- if (!o) return 0;
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree__TargetParserContext *)o);
p->__pyx_base.__pyx_base.__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4lxml_5etree__ExceptionContext*)__pyx_vtabptr_4lxml_5etree__TargetParserContext;
p->_python_target = Py_None; Py_INCREF(Py_None);
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__TargetParserContext, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("This class maps SAX2 events to the ET parser target interface.\n "), /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__TargetParserContext, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__TargetParserContext, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree__ParserSchemaValidationContext(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
struct __pyx_obj_4lxml_5etree__ParserSchemaValidationContext *p;
- PyObject *o = (*t->tp_alloc)(t, 0);
- if (!o) return 0;
+ PyObject *o;
+ o = (*t->tp_alloc)(t, 0);
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree__ParserSchemaValidationContext *)o);
p->__pyx_vtab = __pyx_vtabptr_4lxml_5etree__ParserSchemaValidationContext;
p->_schema = ((struct __pyx_obj_4lxml_5etree_XMLSchema *)Py_None); Py_INCREF(Py_None);
- if (__pyx_pw_4lxml_5etree_30_ParserSchemaValidationContext_1__cinit__(o, __pyx_empty_tuple, NULL) < 0) {
+ if (unlikely(__pyx_pw_4lxml_5etree_30_ParserSchemaValidationContext_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
Py_DECREF(o); o = 0;
}
return o;
PyErr_Restore(etype, eval, etb);
}
Py_CLEAR(p->_schema);
- PyObject_GC_Track(o);
(*Py_TYPE(o)->tp_free)(o);
}
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__ParserSchemaValidationContext, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
0, /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__ParserSchemaValidationContext, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__ParserSchemaValidationContext, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree__Validator(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
struct __pyx_obj_4lxml_5etree__Validator *p;
- PyObject *o = (*t->tp_alloc)(t, 0);
- if (!o) return 0;
+ PyObject *o;
+ o = (*t->tp_alloc)(t, 0);
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree__Validator *)o);
p->__pyx_vtab = __pyx_vtabptr_4lxml_5etree__Validator;
p->_error_log = ((struct __pyx_obj_4lxml_5etree__ErrorLog *)Py_None); Py_INCREF(Py_None);
- if (__pyx_pw_4lxml_5etree_10_Validator_1__cinit__(o, __pyx_empty_tuple, NULL) < 0) {
+ if (unlikely(__pyx_pw_4lxml_5etree_10_Validator_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
Py_DECREF(o); o = 0;
}
return o;
struct __pyx_obj_4lxml_5etree__Validator *p = (struct __pyx_obj_4lxml_5etree__Validator *)o;
PyObject_GC_UnTrack(o);
Py_CLEAR(p->_error_log);
- PyObject_GC_Track(o);
(*Py_TYPE(o)->tp_free)(o);
}
};
static struct PyGetSetDef __pyx_getsets_4lxml_5etree__Validator[] = {
- {(char *)"error_log", __pyx_getprop_4lxml_5etree_10_Validator_error_log, 0, __Pyx_DOCSTR(__pyx_k_445), 0},
+ {(char *)"error_log", __pyx_getprop_4lxml_5etree_10_Validator_error_log, 0, __Pyx_DOCSTR(__pyx_k_460), 0},
{0, 0, 0, 0, 0}
};
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__Validator, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("Base class for XML validators."), /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__Validator, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__Validator, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree_XMLSchema(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree_XMLSchema *p;
PyObject *o = __pyx_tp_new_4lxml_5etree__Validator(t, a, k);
- if (!o) return 0;
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree_XMLSchema *)o);
p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4lxml_5etree__Validator*)__pyx_vtabptr_4lxml_5etree_XMLSchema;
- if (__pyx_pw_4lxml_5etree_9XMLSchema_1__cinit__(o, __pyx_empty_tuple, NULL) < 0) {
+ if (unlikely(__pyx_pw_4lxml_5etree_9XMLSchema_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
Py_DECREF(o); o = 0;
}
return o;
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer_XMLSchema, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("XMLSchema(self, etree=None, file=None)\n Turn a document into an XML Schema validator.\n\n Either pass a schema as Element or ElementTree, or pass a file or\n filename through the ``file`` keyword argument.\n\n Passing the ``attribute_defaults`` boolean option will make the\n schema insert default/fixed attributes into validated documents.\n "), /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__Validator, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__Validator, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree__ParserDictionaryContext(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
struct __pyx_obj_4lxml_5etree__ParserDictionaryContext *p;
- PyObject *o = (*t->tp_alloc)(t, 0);
- if (!o) return 0;
+ PyObject *o;
+ o = (*t->tp_alloc)(t, 0);
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree__ParserDictionaryContext *)o);
p->__pyx_vtab = __pyx_vtabptr_4lxml_5etree__ParserDictionaryContext;
p->_default_parser = ((struct __pyx_obj_4lxml_5etree__BaseParser *)Py_None); Py_INCREF(Py_None);
p->_implied_parser_contexts = ((PyObject*)Py_None); Py_INCREF(Py_None);
- if (__pyx_pw_4lxml_5etree_24_ParserDictionaryContext_1__cinit__(o, __pyx_empty_tuple, NULL) < 0) {
+ if (unlikely(__pyx_pw_4lxml_5etree_24_ParserDictionaryContext_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
Py_DECREF(o); o = 0;
}
return o;
}
Py_CLEAR(p->_default_parser);
Py_CLEAR(p->_implied_parser_contexts);
- PyObject_GC_Track(o);
(*Py_TYPE(o)->tp_free)(o);
}
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__ParserDictionaryContext, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
0, /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__ParserDictionaryContext, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__ParserDictionaryContext, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree__FileReaderContext(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree__FileReaderContext *p;
- PyObject *o = (*t->tp_alloc)(t, 0);
- if (!o) return 0;
+ PyObject *o;
+ o = (*t->tp_alloc)(t, 0);
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree__FileReaderContext *)o);
p->__pyx_vtab = __pyx_vtabptr_4lxml_5etree__FileReaderContext;
p->_filelike = Py_None; Py_INCREF(Py_None);
p->_url = Py_None; Py_INCREF(Py_None);
p->_bytes = Py_None; Py_INCREF(Py_None);
p->_exc_context = ((struct __pyx_obj_4lxml_5etree__ExceptionContext *)Py_None); Py_INCREF(Py_None);
- if (__pyx_pw_4lxml_5etree_18_FileReaderContext_1__cinit__(o, a, k) < 0) {
+ if (unlikely(__pyx_pw_4lxml_5etree_18_FileReaderContext_1__cinit__(o, a, k) < 0)) {
Py_DECREF(o); o = 0;
}
return o;
Py_CLEAR(p->_url);
Py_CLEAR(p->_bytes);
Py_CLEAR(p->_exc_context);
- PyObject_GC_Track(o);
(*Py_TYPE(o)->tp_free)(o);
}
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__FileReaderContext, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
0, /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__FileReaderContext, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__FileReaderContext, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree__FeedParser(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree__FeedParser *p;
PyObject *o = __pyx_tp_new_4lxml_5etree__BaseParser(t, a, k);
- if (!o) return 0;
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree__FeedParser *)o);
p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4lxml_5etree__BaseParser*)__pyx_vtabptr_4lxml_5etree__FeedParser;
return o;
};
static struct PyGetSetDef __pyx_getsets_4lxml_5etree__FeedParser[] = {
- {(char *)"feed_error_log", __pyx_getprop_4lxml_5etree_11_FeedParser_feed_error_log, 0, __Pyx_DOCSTR(__pyx_k_446), 0},
+ {(char *)"feed_error_log", __pyx_getprop_4lxml_5etree_11_FeedParser_feed_error_log, 0, __Pyx_DOCSTR(__pyx_k_461), 0},
{0, 0, 0, 0, 0}
};
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__FeedParser, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
0, /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__BaseParser, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__BaseParser, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree_XMLParser(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree_XMLParser *p;
- PyObject *o = __pyx_tp_new_4lxml_5etree__BaseParser(t, a, k);
- if (!o) return 0;
+ PyObject *o = __pyx_tp_new_4lxml_5etree__FeedParser(t, a, k);
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree_XMLParser *)o);
p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4lxml_5etree__BaseParser*)__pyx_vtabptr_4lxml_5etree_XMLParser;
return o;
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer_XMLParser, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("XMLParser(self, encoding=None, attribute_defaults=False, dtd_validation=False, load_dtd=False, no_network=True, ns_clean=False, recover=False, XMLSchema schema=None, remove_blank_text=False, resolve_entities=True, remove_comments=False, remove_pis=False, strip_cdata=True, target=None, compact=True)\n\n The XML parser.\n\n Parsers can be supplied as additional argument to various parse\n functions of the lxml API. A default parser is always available\n and can be replaced by a call to the global function\n 'set_default_parser'. New parsers can be created at any time\n without a major run-time overhead.\n\n The keyword arguments in the constructor are mainly based on the\n libxml2 parser configuration. A DTD will also be loaded if DTD\n validation or attribute default values are requested (unless you\n additionally provide an XMLSchema from which the default\n attributes can be read).\n\n Available boolean keyword arguments:\n\n - attribute_defaults - inject default attributes from DTD or XMLSchema\n - dtd_validation - validate against a DTD referenced by the document\n - load_dtd - use DTD for parsing\n - no_network - prevent network access for related files (default: True)\n - ns_clean - clean up redundant namespace declarations\n - recover - try hard to parse through broken XML\n - remove_blank_text - discard blank text nodes\n - remove_comments - discard comments\n - remove_pis - discard processing instructions\n - strip_cdata - replace CDATA sections by normal text content (default: True)\n - compact - safe memory for short text content (default: True)\n - resolve_entities - replace entities by their text value (default: True)\n - huge_tree - disable security restrictions and support very deep trees\n and very long text content (only affects libxml2 2.7+)\n\n Other keyword arguments:\n\n - encoding - override the document encoding\n - target - a parser target object that will receive the parse events\n - schema - an XMLSchema to validate against\n\n Note that you should avoid sharing parsers between threads. While this is\n not harmful, it is more efficient to use separate parsers. This does not\n apply to the default parser.\n "), /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__BaseParser, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__BaseParser, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree_ETCompatXMLParser(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree_ETCompatXMLParser *p;
- PyObject *o = __pyx_tp_new_4lxml_5etree__BaseParser(t, a, k);
- if (!o) return 0;
+ PyObject *o = __pyx_tp_new_4lxml_5etree_XMLParser(t, a, k);
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree_ETCompatXMLParser *)o);
p->__pyx_base.__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4lxml_5etree__BaseParser*)__pyx_vtabptr_4lxml_5etree_ETCompatXMLParser;
return o;
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer_ETCompatXMLParser, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("ETCompatXMLParser(self, encoding=None, attribute_defaults=False, dtd_validation=False, load_dtd=False, no_network=True, ns_clean=False, recover=False, schema=None, huge_tree=False, remove_blank_text=False, resolve_entities=True, remove_comments=True, remove_pis=True, strip_cdata=True, target=None, compact=True)\n\n An XML parser with an ElementTree compatible default setup.\n\n See the XMLParser class for details.\n\n This parser has ``remove_comments`` and ``remove_pis`` enabled by default\n and thus ignores comments and processing instructions.\n "), /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__BaseParser, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__BaseParser, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree_HTMLParser(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree_HTMLParser *p;
- PyObject *o = __pyx_tp_new_4lxml_5etree__BaseParser(t, a, k);
- if (!o) return 0;
+ PyObject *o = __pyx_tp_new_4lxml_5etree__FeedParser(t, a, k);
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree_HTMLParser *)o);
p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4lxml_5etree__BaseParser*)__pyx_vtabptr_4lxml_5etree_HTMLParser;
return o;
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer_HTMLParser, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("HTMLParser(self, encoding=None, remove_blank_text=False, remove_comments=False, remove_pis=False, strip_cdata=True, no_network=True, target=None, XMLSchema schema=None, recover=True, compact=True)\n\n The HTML parser.\n\n This parser allows reading HTML into a normal XML tree. By\n default, it can read broken (non well-formed) HTML, depending on\n the capabilities of libxml2. Use the 'recover' option to switch\n this off.\n\n Available boolean keyword arguments:\n\n - recover - try hard to parse through broken HTML (default: True)\n - no_network - prevent network access for related files (default: True)\n - remove_blank_text - discard empty text nodes\n - remove_comments - discard comments\n - remove_pis - discard processing instructions\n - strip_cdata - replace CDATA sections by normal text content (default: True)\n - compact - safe memory for short text content (default: True)\n\n Other keyword arguments:\n\n - encoding - override the document encoding\n - target - a parser target object that will receive the parse events\n - schema - an XMLSchema to validate against\n\n Note that you should avoid sharing parsers between threads for performance\n reasons.\n "), /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__BaseParser, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__BaseParser, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree__SaxParserTarget(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
struct __pyx_obj_4lxml_5etree__SaxParserTarget *p;
- PyObject *o = (*t->tp_alloc)(t, 0);
- if (!o) return 0;
+ PyObject *o;
+ o = (*t->tp_alloc)(t, 0);
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree__SaxParserTarget *)o);
p->__pyx_vtab = __pyx_vtabptr_4lxml_5etree__SaxParserTarget;
- if (__pyx_pw_4lxml_5etree_16_SaxParserTarget_1__cinit__(o, __pyx_empty_tuple, NULL) < 0) {
+ if (unlikely(__pyx_pw_4lxml_5etree_16_SaxParserTarget_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
Py_DECREF(o); o = 0;
}
return o;
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__SaxParserTarget, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
0, /*tp_doc*/
0, /*tp_traverse*/
0, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree_TreeBuilder(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree_TreeBuilder *p;
PyObject *o = __pyx_tp_new_4lxml_5etree__SaxParserTarget(t, a, k);
- if (!o) return 0;
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree_TreeBuilder *)o);
p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4lxml_5etree__SaxParserTarget*)__pyx_vtabptr_4lxml_5etree_TreeBuilder;
p->_parser = ((struct __pyx_obj_4lxml_5etree__BaseParser *)Py_None); Py_INCREF(Py_None);
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer_TreeBuilder, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("TreeBuilder(self, element_factory=None, parser=None)\n Parser target that builds a tree.\n\n The final tree is returned by the ``close()`` method.\n "), /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree_TreeBuilder, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree_TreeBuilder, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree__PythonSaxParserTarget(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree__PythonSaxParserTarget *p;
PyObject *o = __pyx_tp_new_4lxml_5etree__SaxParserTarget(t, a, k);
- if (!o) return 0;
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree__PythonSaxParserTarget *)o);
p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4lxml_5etree__SaxParserTarget*)__pyx_vtabptr_4lxml_5etree__PythonSaxParserTarget;
p->_target_start = Py_None; Py_INCREF(Py_None);
p->_target_doctype = Py_None; Py_INCREF(Py_None);
p->_target_pi = Py_None; Py_INCREF(Py_None);
p->_target_comment = Py_None; Py_INCREF(Py_None);
- if (__pyx_pw_4lxml_5etree_22_PythonSaxParserTarget_1__cinit__(o, a, k) < 0) {
+ if (unlikely(__pyx_pw_4lxml_5etree_22_PythonSaxParserTarget_1__cinit__(o, a, k) < 0)) {
Py_DECREF(o); o = 0;
}
return o;
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__PythonSaxParserTarget, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
0, /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__PythonSaxParserTarget, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__PythonSaxParserTarget, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree__FilelikeWriter(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree__FilelikeWriter *p;
- PyObject *o = (*t->tp_alloc)(t, 0);
- if (!o) return 0;
+ PyObject *o;
+ o = (*t->tp_alloc)(t, 0);
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree__FilelikeWriter *)o);
p->__pyx_vtab = __pyx_vtabptr_4lxml_5etree__FilelikeWriter;
p->_filelike = Py_None; Py_INCREF(Py_None);
p->_close_filelike = Py_None; Py_INCREF(Py_None);
p->_exc_context = ((struct __pyx_obj_4lxml_5etree__ExceptionContext *)Py_None); Py_INCREF(Py_None);
p->error_log = ((struct __pyx_obj_4lxml_5etree__ErrorLog *)Py_None); Py_INCREF(Py_None);
- if (__pyx_pw_4lxml_5etree_15_FilelikeWriter_1__cinit__(o, a, k) < 0) {
+ if (unlikely(__pyx_pw_4lxml_5etree_15_FilelikeWriter_1__cinit__(o, a, k) < 0)) {
Py_DECREF(o); o = 0;
}
return o;
Py_CLEAR(p->_close_filelike);
Py_CLEAR(p->_exc_context);
Py_CLEAR(p->error_log);
- PyObject_GC_Track(o);
(*Py_TYPE(o)->tp_free)(o);
}
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__FilelikeWriter, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
0, /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__FilelikeWriter, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__FilelikeWriter, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree_xmlfile(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
struct __pyx_obj_4lxml_5etree_xmlfile *p;
- PyObject *o = (*t->tp_alloc)(t, 0);
- if (!o) return 0;
+ PyObject *o;
+ o = (*t->tp_alloc)(t, 0);
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree_xmlfile *)o);
p->output_file = Py_None; Py_INCREF(Py_None);
p->encoding = Py_None; Py_INCREF(Py_None);
Py_CLEAR(p->output_file);
Py_CLEAR(p->encoding);
Py_CLEAR(p->writer);
- PyObject_GC_Track(o);
(*Py_TYPE(o)->tp_free)(o);
}
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer_xmlfile, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
- __Pyx_DOCSTR("xmlfile(self, output_file, encoding=None, compression=None)\n\n A simple mechanism for incremental XML serialisation.\n\n Usage example::\n\n with xmlfile(\"somefile.xml\", encoding='utf-8') as xf:\n xf.write_declaration(standalone=True)\n xf.write_doctype('<!DOCTYPE root SYSTEM \"some.dtd\">')\n\n # generate an element (the root element)\n with xf.Element('root'):\n # write a complete Element into the open root element\n xf.write(etree.Element('test'))\n\n # generate and write more Elements, e.g. through iterparse\n for element in generate_some_elements():\n # serialise generated elements into the XML file\n xf.write(element)\n "), /*tp_doc*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ __Pyx_DOCSTR("xmlfile(self, output_file, encoding=None, compression=None)\n\n A simple mechanism for incremental XML serialisation.\n\n Usage example::\n\n with xmlfile(\"somefile.xml\", encoding='utf-8') as xf:\n xf.write_declaration(standalone=True)\n xf.write_doctype('<!DOCTYPE root SYSTEM \"some.dtd\">')\n\n # generate an element (the root element)\n with xf.element('root'):\n # write a complete Element into the open root element\n xf.write(etree.Element('test'))\n\n # generate and write more Elements, e.g. through iterparse\n for element in generate_some_elements():\n # serialise generated elements into the XML file\n xf.write(element)\n "), /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree_xmlfile, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree_xmlfile, /*tp_clear*/
0, /*tp_richcompare*/
static PyObject *__pyx_tp_new_4lxml_5etree__IncrementalFileWriter(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree__IncrementalFileWriter *p;
- PyObject *o = (*t->tp_alloc)(t, 0);
- if (!o) return 0;
+ PyObject *o;
+ o = (*t->tp_alloc)(t, 0);
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree__IncrementalFileWriter *)o);
p->__pyx_vtab = __pyx_vtabptr_4lxml_5etree__IncrementalFileWriter;
p->_encoding = Py_None; Py_INCREF(Py_None);
p->_target = Py_None; Py_INCREF(Py_None);
p->_element_stack = ((PyObject*)Py_None); Py_INCREF(Py_None);
- if (__pyx_pw_4lxml_5etree_22_IncrementalFileWriter_1__cinit__(o, a, k) < 0) {
+ if (unlikely(__pyx_pw_4lxml_5etree_22_IncrementalFileWriter_1__cinit__(o, a, k) < 0)) {
Py_DECREF(o); o = 0;
}
return o;
Py_CLEAR(p->_encoding);
Py_CLEAR(p->_target);
Py_CLEAR(p->_element_stack);
- PyObject_GC_Track(o);
(*Py_TYPE(o)->tp_free)(o);
}
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__IncrementalFileWriter, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
0, /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__IncrementalFileWriter, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__IncrementalFileWriter, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree__FileWriterElement(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree__FileWriterElement *p;
- PyObject *o = (*t->tp_alloc)(t, 0);
- if (!o) return 0;
+ PyObject *o;
+ o = (*t->tp_alloc)(t, 0);
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree__FileWriterElement *)o);
p->_element = Py_None; Py_INCREF(Py_None);
p->_writer = ((struct __pyx_obj_4lxml_5etree__IncrementalFileWriter *)Py_None); Py_INCREF(Py_None);
- if (__pyx_pw_4lxml_5etree_18_FileWriterElement_1__cinit__(o, a, k) < 0) {
+ if (unlikely(__pyx_pw_4lxml_5etree_18_FileWriterElement_1__cinit__(o, a, k) < 0)) {
Py_DECREF(o); o = 0;
}
return o;
PyObject_GC_UnTrack(o);
Py_CLEAR(p->_element);
Py_CLEAR(p->_writer);
- PyObject_GC_Track(o);
(*Py_TYPE(o)->tp_free)(o);
}
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__FileWriterElement, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
0, /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__FileWriterElement, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__FileWriterElement, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree__IterparseContext(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree__IterparseContext *p;
PyObject *o = __pyx_tp_new_4lxml_5etree__ParserContext(t, a, k);
- if (!o) return 0;
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree__IterparseContext *)o);
p->__pyx_base.__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4lxml_5etree__ExceptionContext*)__pyx_vtabptr_4lxml_5etree__IterparseContext;
p->_root = ((struct LxmlElement *)Py_None); Py_INCREF(Py_None);
p->_node_stack = ((PyObject*)Py_None); Py_INCREF(Py_None);
p->_tag_tuple = ((PyObject*)Py_None); Py_INCREF(Py_None);
p->_matcher = ((struct __pyx_obj_4lxml_5etree__MultiTagMatcher *)Py_None); Py_INCREF(Py_None);
- if (__pyx_pw_4lxml_5etree_17_IterparseContext_1__cinit__(o, __pyx_empty_tuple, NULL) < 0) {
+ if (unlikely(__pyx_pw_4lxml_5etree_17_IterparseContext_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
Py_DECREF(o); o = 0;
}
return o;
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__IterparseContext, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
0, /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__IterparseContext, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__IterparseContext, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree_iterparse(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree_iterparse *p;
PyObject *o = __pyx_tp_new_4lxml_5etree__BaseParser(t, a, k);
- if (!o) return 0;
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree_iterparse *)o);
p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4lxml_5etree__BaseParser*)__pyx_vtabptr_4lxml_5etree_iterparse;
p->_tag = Py_None; Py_INCREF(Py_None);
};
static struct PyGetSetDef __pyx_getsets_4lxml_5etree_iterparse[] = {
- {(char *)"error_log", __pyx_getprop_4lxml_5etree_9iterparse_error_log, 0, __Pyx_DOCSTR(__pyx_k_447), 0},
+ {(char *)"error_log", __pyx_getprop_4lxml_5etree_9iterparse_error_log, 0, __Pyx_DOCSTR(__pyx_k_462), 0},
{(char *)"root", __pyx_getprop_4lxml_5etree_9iterparse_root, 0, 0, 0},
{0, 0, 0, 0, 0}
};
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer_iterparse, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("iterparse(self, source, events=(\"end\",), tag=None, attribute_defaults=False, dtd_validation=False, load_dtd=False, no_network=True, remove_blank_text=False, remove_comments=False, remove_pis=False, encoding=None, html=False, huge_tree=False, schema=None)\n\n Incremental parser.\n\n Parses XML into a tree and generates tuples (event, element) in a\n SAX-like fashion. ``event`` is any of 'start', 'end', 'start-ns',\n 'end-ns'.\n\n For 'start' and 'end', ``element`` is the Element that the parser just\n found opening or closing. For 'start-ns', it is a tuple (prefix, URI) of\n a new namespace declaration. For 'end-ns', it is simply None. Note that\n all start and end events are guaranteed to be properly nested.\n\n The keyword argument ``events`` specifies a sequence of event type names\n that should be generated. By default, only 'end' events will be\n generated.\n\n The additional ``tag`` argument restricts the 'start' and 'end' events to\n those elements that match the given tag. By default, events are generated\n for all elements. Note that the 'start-ns' and 'end-ns' events are not\n impacted by this restriction.\n\n The other keyword arguments in the constructor are mainly based on the\n libxml2 parser configuration. A DTD will also be loaded if validation or\n attribute default values are requested.\n\n Available boolean keyword arguments:\n - attribute_defaults: read default attributes from DTD\n - dtd_validation: validate (if DTD is available)\n - load_dtd: use DTD for parsing\n - no_network: prevent network access for related files\n - remove_blank_text: discard blank text nodes\n - remove_comments: discard comments\n - remove_pis: discard processing instructions\n - strip_cdata: replace CDATA sections by normal text content (default: True)\n - compact: safe memory for short text content (default: True)\n - resolve_entities: replace entities by their text value (default: True)\n - huge_tree: disable security restrictions and support very deep trees\n and very long text content (only affects libxml2 2.7+)\n\n Other keyword arguments:\n - encoding: override the document encoding\n - schema: an XMLSchema to validate against\n "), /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree_iterparse, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree_iterparse, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree_iterwalk(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
struct __pyx_obj_4lxml_5etree_iterwalk *p;
- PyObject *o = (*t->tp_alloc)(t, 0);
- if (!o) return 0;
+ PyObject *o;
+ o = (*t->tp_alloc)(t, 0);
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree_iterwalk *)o);
p->__pyx_vtab = __pyx_vtabptr_4lxml_5etree_iterwalk;
p->_matcher = ((struct __pyx_obj_4lxml_5etree__MultiTagMatcher *)Py_None); Py_INCREF(Py_None);
Py_CLEAR(p->_node_stack);
Py_CLEAR(p->_events);
Py_CLEAR(p->_pop_event);
- PyObject_GC_Track(o);
(*Py_TYPE(o)->tp_free)(o);
}
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer_iterwalk, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("iterwalk(self, element_or_tree, events=(\"end\",), tag=None)\n\n A tree walker that generates events from an existing tree as if it\n was parsing XML data with ``iterparse()``.\n "), /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree_iterwalk, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree_iterwalk, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree__IDDict(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree__IDDict *p;
- PyObject *o = (*t->tp_alloc)(t, 0);
- if (!o) return 0;
+ PyObject *o;
+ o = (*t->tp_alloc)(t, 0);
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree__IDDict *)o);
p->__pyx_vtab = __pyx_vtabptr_4lxml_5etree__IDDict;
p->_doc = ((struct LxmlDocument *)Py_None); Py_INCREF(Py_None);
p->_keys = Py_None; Py_INCREF(Py_None);
p->_items = Py_None; Py_INCREF(Py_None);
- if (__pyx_pw_4lxml_5etree_7_IDDict_1__cinit__(o, a, k) < 0) {
+ if (unlikely(__pyx_pw_4lxml_5etree_7_IDDict_1__cinit__(o, a, k) < 0)) {
Py_DECREF(o); o = 0;
}
return o;
Py_CLEAR(p->_doc);
Py_CLEAR(p->_keys);
Py_CLEAR(p->_items);
- PyObject_GC_Track(o);
(*Py_TYPE(o)->tp_free)(o);
}
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__IDDict, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("IDDict(self, etree)\n A dictionary-like proxy class that mapps ID attributes to elements.\n\n The dictionary must be instantiated with the root element of a parsed XML\n document, otherwise the behaviour is undefined. Elements and XML trees\n that were created or modified 'by hand' are not supported.\n "), /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__IDDict, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__IDDict, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree_XInclude(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
struct __pyx_obj_4lxml_5etree_XInclude *p;
- PyObject *o = (*t->tp_alloc)(t, 0);
- if (!o) return 0;
+ PyObject *o;
+ o = (*t->tp_alloc)(t, 0);
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree_XInclude *)o);
p->_error_log = ((struct __pyx_obj_4lxml_5etree__ErrorLog *)Py_None); Py_INCREF(Py_None);
return o;
struct __pyx_obj_4lxml_5etree_XInclude *p = (struct __pyx_obj_4lxml_5etree_XInclude *)o;
PyObject_GC_UnTrack(o);
Py_CLEAR(p->_error_log);
- PyObject_GC_Track(o);
(*Py_TYPE(o)->tp_free)(o);
}
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer_XInclude, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("XInclude(self)\n XInclude processor.\n\n Create an instance and call it on an Element to run XInclude\n processing.\n "), /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree_XInclude, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree_XInclude, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree__ExsltRegExp(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
struct __pyx_obj_4lxml_5etree__ExsltRegExp *p;
- PyObject *o = (*t->tp_alloc)(t, 0);
- if (!o) return 0;
+ PyObject *o;
+ o = (*t->tp_alloc)(t, 0);
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree__ExsltRegExp *)o);
p->__pyx_vtab = __pyx_vtabptr_4lxml_5etree__ExsltRegExp;
p->_compile_map = ((PyObject*)Py_None); Py_INCREF(Py_None);
- if (__pyx_pw_4lxml_5etree_12_ExsltRegExp_1__cinit__(o, __pyx_empty_tuple, NULL) < 0) {
+ if (unlikely(__pyx_pw_4lxml_5etree_12_ExsltRegExp_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
Py_DECREF(o); o = 0;
}
return o;
struct __pyx_obj_4lxml_5etree__ExsltRegExp *p = (struct __pyx_obj_4lxml_5etree__ExsltRegExp *)o;
PyObject_GC_UnTrack(o);
Py_CLEAR(p->_compile_map);
- PyObject_GC_Track(o);
(*Py_TYPE(o)->tp_free)(o);
}
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__ExsltRegExp, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
0, /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__ExsltRegExp, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__ExsltRegExp, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree__BaseContext(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
struct __pyx_obj_4lxml_5etree__BaseContext *p;
- PyObject *o = (*t->tp_alloc)(t, 0);
- if (!o) return 0;
+ PyObject *o;
+ o = (*t->tp_alloc)(t, 0);
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree__BaseContext *)o);
p->__pyx_vtab = __pyx_vtabptr_4lxml_5etree__BaseContext;
p->_doc = ((struct LxmlDocument *)Py_None); Py_INCREF(Py_None);
p->_temp_documents = ((PyObject*)Py_None); Py_INCREF(Py_None);
p->_exc = ((struct __pyx_obj_4lxml_5etree__ExceptionContext *)Py_None); Py_INCREF(Py_None);
p->_error_log = ((struct __pyx_obj_4lxml_5etree__ErrorLog *)Py_None); Py_INCREF(Py_None);
- if (__pyx_pw_4lxml_5etree_12_BaseContext_1__cinit__(o, __pyx_empty_tuple, NULL) < 0) {
+ if (unlikely(__pyx_pw_4lxml_5etree_12_BaseContext_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
Py_DECREF(o); o = 0;
}
return o;
Py_CLEAR(p->_temp_documents);
Py_CLEAR(p->_exc);
Py_CLEAR(p->_error_log);
- PyObject_GC_Track(o);
(*Py_TYPE(o)->tp_free)(o);
}
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__BaseContext, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
0, /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__BaseContext, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__BaseContext, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree__ElementUnicodeResult(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree__ElementUnicodeResult *p;
PyObject *o = (&PyUnicode_Type)->tp_new(t, a, k);
- if (!o) return 0;
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree__ElementUnicodeResult *)o);
p->_parent = ((struct LxmlElement *)Py_None); Py_INCREF(Py_None);
p->is_tail = Py_None; Py_INCREF(Py_None);
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__ElementUnicodeResult, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
0, /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__ElementUnicodeResult, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__ElementUnicodeResult, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree__XPathContext(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree__XPathContext *p;
PyObject *o = __pyx_tp_new_4lxml_5etree__BaseContext(t, a, k);
- if (!o) return 0;
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree__XPathContext *)o);
p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4lxml_5etree__BaseContext*)__pyx_vtabptr_4lxml_5etree__XPathContext;
p->_variables = Py_None; Py_INCREF(Py_None);
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__XPathContext, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
0, /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__XPathContext, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__XPathContext, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree__XPathEvaluatorBase(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
struct __pyx_obj_4lxml_5etree__XPathEvaluatorBase *p;
- PyObject *o = (*t->tp_alloc)(t, 0);
- if (!o) return 0;
+ PyObject *o;
+ o = (*t->tp_alloc)(t, 0);
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree__XPathEvaluatorBase *)o);
p->__pyx_vtab = __pyx_vtabptr_4lxml_5etree__XPathEvaluatorBase;
p->_context = ((struct __pyx_obj_4lxml_5etree__XPathContext *)Py_None); Py_INCREF(Py_None);
p->_error_log = ((struct __pyx_obj_4lxml_5etree__ErrorLog *)Py_None); Py_INCREF(Py_None);
- if (__pyx_pw_4lxml_5etree_19_XPathEvaluatorBase_1__cinit__(o, __pyx_empty_tuple, NULL) < 0) {
+ if (unlikely(__pyx_pw_4lxml_5etree_19_XPathEvaluatorBase_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
Py_DECREF(o); o = 0;
}
return o;
}
Py_CLEAR(p->_context);
Py_CLEAR(p->_error_log);
- PyObject_GC_Track(o);
(*Py_TYPE(o)->tp_free)(o);
}
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__XPathEvaluatorBase, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
0, /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__XPathEvaluatorBase, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__XPathEvaluatorBase, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree_XPathElementEvaluator(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree_XPathElementEvaluator *p;
PyObject *o = __pyx_tp_new_4lxml_5etree__XPathEvaluatorBase(t, a, k);
- if (!o) return 0;
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree_XPathElementEvaluator *)o);
p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4lxml_5etree__XPathEvaluatorBase*)__pyx_vtabptr_4lxml_5etree_XPathElementEvaluator;
p->_element = ((struct LxmlElement *)Py_None); Py_INCREF(Py_None);
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer_XPathElementEvaluator, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("XPathElementEvaluator(self, element, namespaces=None, extensions=None, regexp=True, smart_strings=True)\n Create an XPath evaluator for an element.\n\n Absolute XPath expressions (starting with '/') will be evaluated against\n the ElementTree as returned by getroottree().\n\n Additional namespace declarations can be passed with the\n 'namespace' keyword argument. EXSLT regular expression support\n can be disabled with the 'regexp' boolean keyword (defaults to\n True). Smart strings will be returned for string results unless\n you pass ``smart_strings=False``.\n "), /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree_XPathElementEvaluator, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree_XPathElementEvaluator, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree_XPathDocumentEvaluator(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree_XPathDocumentEvaluator *p;
PyObject *o = __pyx_tp_new_4lxml_5etree_XPathElementEvaluator(t, a, k);
- if (!o) return 0;
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree_XPathDocumentEvaluator *)o);
p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4lxml_5etree__XPathEvaluatorBase*)__pyx_vtabptr_4lxml_5etree_XPathDocumentEvaluator;
return o;
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer_XPathDocumentEvaluator, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("XPathDocumentEvaluator(self, etree, namespaces=None, extensions=None, regexp=True, smart_strings=True)\n Create an XPath evaluator for an ElementTree.\n\n Additional namespace declarations can be passed with the\n 'namespace' keyword argument. EXSLT regular expression support\n can be disabled with the 'regexp' boolean keyword (defaults to\n True). Smart strings will be returned for string results unless\n you pass ``smart_strings=False``.\n "), /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree_XPathElementEvaluator, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree_XPathElementEvaluator, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree_XPath(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree_XPath *p;
PyObject *o = __pyx_tp_new_4lxml_5etree__XPathEvaluatorBase(t, a, k);
- if (!o) return 0;
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree_XPath *)o);
p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4lxml_5etree__XPathEvaluatorBase*)__pyx_vtabptr_4lxml_5etree_XPath;
p->_path = ((PyObject*)Py_None); Py_INCREF(Py_None);
- if (__pyx_pw_4lxml_5etree_5XPath_1__cinit__(o, __pyx_empty_tuple, NULL) < 0) {
+ if (unlikely(__pyx_pw_4lxml_5etree_5XPath_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
Py_DECREF(o); o = 0;
}
return o;
};
static struct PyGetSetDef __pyx_getsets_4lxml_5etree_XPath[] = {
- {(char *)"path", __pyx_getprop_4lxml_5etree_5XPath_path, 0, __Pyx_DOCSTR(__pyx_k_448), 0},
+ {(char *)"path", __pyx_getprop_4lxml_5etree_5XPath_path, 0, __Pyx_DOCSTR(__pyx_k_463), 0},
{0, 0, 0, 0, 0}
};
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer_XPath, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("XPath(self, path, namespaces=None, extensions=None, regexp=True, smart_strings=True)\n A compiled XPath expression that can be called on Elements and ElementTrees.\n\n Besides the XPath expression, you can pass prefix-namespace\n mappings and extension functions to the constructor through the\n keyword arguments ``namespaces`` and ``extensions``. EXSLT\n regular expression support can be disabled with the 'regexp'\n boolean keyword (defaults to True). Smart strings will be\n returned for string results unless you pass\n ``smart_strings=False``.\n "), /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree_XPath, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree_XPath, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree_ETXPath(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree_ETXPath *p;
PyObject *o = __pyx_tp_new_4lxml_5etree_XPath(t, a, k);
- if (!o) return 0;
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree_ETXPath *)o);
p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4lxml_5etree__XPathEvaluatorBase*)__pyx_vtabptr_4lxml_5etree_ETXPath;
return o;
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer_ETXPath, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("ETXPath(self, path, extensions=None, regexp=True, smart_strings=True)\n Special XPath class that supports the ElementTree {uri} notation for namespaces.\n\n Note that this class does not accept the ``namespace`` keyword\n argument. All namespaces must be passed as part of the path\n string. Smart strings will be returned for string results unless\n you pass ``smart_strings=False``.\n "), /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree_XPath, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree_XPath, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree__XSLTResolverContext(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree__XSLTResolverContext *p;
PyObject *o = __pyx_tp_new_4lxml_5etree__ResolverContext(t, a, k);
- if (!o) return 0;
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree__XSLTResolverContext *)o);
p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4lxml_5etree__ExceptionContext*)__pyx_vtabptr_4lxml_5etree__XSLTResolverContext;
p->_parser = ((struct __pyx_obj_4lxml_5etree__BaseParser *)Py_None); Py_INCREF(Py_None);
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__XSLTResolverContext, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
0, /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__XSLTResolverContext, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__XSLTResolverContext, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree_XSLTAccessControl(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
struct __pyx_obj_4lxml_5etree_XSLTAccessControl *p;
- PyObject *o = (*t->tp_alloc)(t, 0);
- if (!o) return 0;
+ PyObject *o;
+ o = (*t->tp_alloc)(t, 0);
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree_XSLTAccessControl *)o);
p->__pyx_vtab = __pyx_vtabptr_4lxml_5etree_XSLTAccessControl;
- if (__pyx_pw_4lxml_5etree_17XSLTAccessControl_1__cinit__(o, __pyx_empty_tuple, NULL) < 0) {
+ if (unlikely(__pyx_pw_4lxml_5etree_17XSLTAccessControl_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
Py_DECREF(o); o = 0;
}
return o;
};
static struct PyGetSetDef __pyx_getsets_4lxml_5etree_XSLTAccessControl[] = {
- {(char *)"options", __pyx_getprop_4lxml_5etree_17XSLTAccessControl_options, 0, __Pyx_DOCSTR(__pyx_k_449), 0},
+ {(char *)"options", __pyx_getprop_4lxml_5etree_17XSLTAccessControl_options, 0, __Pyx_DOCSTR(__pyx_k_464), 0},
{0, 0, 0, 0, 0}
};
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer_XSLTAccessControl, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
__Pyx_DOCSTR("XSLTAccessControl(self, read_file=True, write_file=True, create_dir=True, read_network=True, write_network=True)\n\n Access control for XSLT: reading/writing files, directories and\n network I/O. Access to a type of resource is granted or denied by\n passing any of the following boolean keyword arguments. All of\n them default to True to allow access.\n\n - read_file\n - write_file\n - create_dir\n - read_network\n - write_network\n\n For convenience, there is also a class member `DENY_ALL` that\n provides an XSLTAccessControl instance that is readily configured\n to deny everything, and a `DENY_WRITE` member that denies all\n write access but allows read access.\n\n See `XSLT`.\n "), /*tp_doc*/
0, /*tp_traverse*/
0, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree__XSLTContext(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree__XSLTContext *p;
PyObject *o = __pyx_tp_new_4lxml_5etree__BaseContext(t, a, k);
- if (!o) return 0;
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree__XSLTContext *)o);
p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4lxml_5etree__BaseContext*)__pyx_vtabptr_4lxml_5etree__XSLTContext;
p->_extension_element_proxy = ((struct __pyx_obj_4lxml_5etree__ReadOnlyElementProxy *)Py_None); Py_INCREF(Py_None);
p->_extension_elements = ((PyObject*)Py_None); Py_INCREF(Py_None);
- if (__pyx_pw_4lxml_5etree_12_XSLTContext_1__cinit__(o, __pyx_empty_tuple, NULL) < 0) {
+ if (unlikely(__pyx_pw_4lxml_5etree_12_XSLTContext_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
Py_DECREF(o); o = 0;
}
return o;
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__XSLTContext, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
0, /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__XSLTContext, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__XSLTContext, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree__XSLTQuotedStringParam(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree__XSLTQuotedStringParam *p;
- PyObject *o = (*t->tp_alloc)(t, 0);
- if (!o) return 0;
+ PyObject *o;
+ o = (*t->tp_alloc)(t, 0);
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree__XSLTQuotedStringParam *)o);
p->strval = ((PyObject*)Py_None); Py_INCREF(Py_None);
- if (__pyx_pw_4lxml_5etree_22_XSLTQuotedStringParam_1__cinit__(o, a, k) < 0) {
+ if (unlikely(__pyx_pw_4lxml_5etree_22_XSLTQuotedStringParam_1__cinit__(o, a, k) < 0)) {
Py_DECREF(o); o = 0;
}
return o;
struct __pyx_obj_4lxml_5etree__XSLTQuotedStringParam *p = (struct __pyx_obj_4lxml_5etree__XSLTQuotedStringParam *)o;
PyObject_GC_UnTrack(o);
Py_CLEAR(p->strval);
- PyObject_GC_Track(o);
(*Py_TYPE(o)->tp_free)(o);
}
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__XSLTQuotedStringParam, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("A wrapper class for literal XSLT string parameters that require\n quote escaping.\n "), /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__XSLTQuotedStringParam, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__XSLTQuotedStringParam, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree_XSLT(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
struct __pyx_obj_4lxml_5etree_XSLT *p;
- PyObject *o = (*t->tp_alloc)(t, 0);
- if (!o) return 0;
+ PyObject *o;
+ o = (*t->tp_alloc)(t, 0);
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree_XSLT *)o);
p->__pyx_vtab = __pyx_vtabptr_4lxml_5etree_XSLT;
p->_context = ((struct __pyx_obj_4lxml_5etree__XSLTContext *)Py_None); Py_INCREF(Py_None);
p->_xslt_resolver_context = ((struct __pyx_obj_4lxml_5etree__XSLTResolverContext *)Py_None); Py_INCREF(Py_None);
p->_access_control = ((struct __pyx_obj_4lxml_5etree_XSLTAccessControl *)Py_None); Py_INCREF(Py_None);
p->_error_log = ((struct __pyx_obj_4lxml_5etree__ErrorLog *)Py_None); Py_INCREF(Py_None);
- if (__pyx_pw_4lxml_5etree_4XSLT_1__cinit__(o, __pyx_empty_tuple, NULL) < 0) {
+ if (unlikely(__pyx_pw_4lxml_5etree_4XSLT_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
Py_DECREF(o); o = 0;
}
return o;
Py_CLEAR(p->_xslt_resolver_context);
Py_CLEAR(p->_access_control);
Py_CLEAR(p->_error_log);
- PyObject_GC_Track(o);
(*Py_TYPE(o)->tp_free)(o);
}
};
static struct PyGetSetDef __pyx_getsets_4lxml_5etree_XSLT[] = {
- {(char *)"error_log", __pyx_getprop_4lxml_5etree_4XSLT_error_log, 0, __Pyx_DOCSTR(__pyx_k_450), 0},
+ {(char *)"error_log", __pyx_getprop_4lxml_5etree_4XSLT_error_log, 0, __Pyx_DOCSTR(__pyx_k_465), 0},
{0, 0, 0, 0, 0}
};
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer_XSLT, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("XSLT(self, xslt_input, extensions=None, regexp=True, access_control=None)\n\n Turn an XSL document into an XSLT object.\n\n Calling this object on a tree or Element will execute the XSLT::\n\n >>> transform = etree.XSLT(xsl_tree)\n >>> result = transform(xml_tree)\n\n Keyword arguments of the constructor:\n\n - extensions: a dict mapping ``(namespace, name)`` pairs to\n extension functions or extension elements\n - regexp: enable exslt regular expression support in XPath\n (default: True)\n - access_control: access restrictions for network or file\n system (see `XSLTAccessControl`)\n\n Keyword arguments of the XSLT call:\n\n - profile_run: enable XSLT profiling (default: False)\n\n Other keyword arguments of the call are passed to the stylesheet\n as parameters.\n "), /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree_XSLT, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree_XSLT, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree__XSLTResultTree(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree__XSLTResultTree *p;
PyObject *o = __pyx_tp_new_4lxml_5etree__ElementTree(t, a, k);
- if (!o) return 0;
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree__XSLTResultTree *)o);
p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4lxml_5etree__ElementTree*)__pyx_vtabptr_4lxml_5etree__XSLTResultTree;
p->_xslt = ((struct __pyx_obj_4lxml_5etree_XSLT *)Py_None); Py_INCREF(Py_None);
p->_profile = ((struct LxmlDocument *)Py_None); Py_INCREF(Py_None);
- if (__pyx_pw_4lxml_5etree_15_XSLTResultTree_1__cinit__(o, __pyx_empty_tuple, NULL) < 0) {
+ if (unlikely(__pyx_pw_4lxml_5etree_15_XSLTResultTree_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
Py_DECREF(o); o = 0;
}
return o;
};
static struct PyGetSetDef __pyx_getsets_4lxml_5etree__XSLTResultTree[] = {
- {(char *)"xslt_profile", __pyx_getprop_4lxml_5etree_15_XSLTResultTree_xslt_profile, __pyx_setprop_4lxml_5etree_15_XSLTResultTree_xslt_profile, __Pyx_DOCSTR(__pyx_k_451), 0},
+ {(char *)"xslt_profile", __pyx_getprop_4lxml_5etree_15_XSLTResultTree_xslt_profile, __pyx_setprop_4lxml_5etree_15_XSLTResultTree_xslt_profile, __Pyx_DOCSTR(__pyx_k_466), 0},
{0, 0, 0, 0, 0}
};
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__XSLTResultTree, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
0, /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__XSLTResultTree, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__XSLTResultTree, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree__XSLTProcessingInstruction(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree__XSLTProcessingInstruction *p;
- PyObject *o = __pyx_tp_new_4lxml_5etree__Element(t, a, k);
- if (!o) return 0;
+ PyObject *o = __pyx_tp_new_4lxml_5etree_PIBase(t, a, k);
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree__XSLTProcessingInstruction *)o);
p->__pyx_base.__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4lxml_5etree___ContentOnlyElement*)__pyx_vtabptr_4lxml_5etree__XSLTProcessingInstruction;
return o;
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__XSLTProcessingInstruction, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
0, /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__Element, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__Element, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree_XSLTExtension(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
struct __pyx_obj_4lxml_5etree_XSLTExtension *p;
- PyObject *o = (*t->tp_alloc)(t, 0);
- if (!o) return 0;
+ PyObject *o;
+ o = (*t->tp_alloc)(t, 0);
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree_XSLTExtension *)o);
p->__pyx_vtab = __pyx_vtabptr_4lxml_5etree_XSLTExtension;
return o;
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer_XSLTExtension, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
__Pyx_DOCSTR("Base class of an XSLT extension element.\n "), /*tp_doc*/
0, /*tp_traverse*/
0, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree__DTDElementContentDecl(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
struct __pyx_obj_4lxml_5etree__DTDElementContentDecl *p;
- PyObject *o = (*t->tp_alloc)(t, 0);
- if (!o) return 0;
+ PyObject *o;
+ o = (*t->tp_alloc)(t, 0);
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree__DTDElementContentDecl *)o);
p->_dtd = ((struct __pyx_obj_4lxml_5etree_DTD *)Py_None); Py_INCREF(Py_None);
- if (__pyx_pw_4lxml_5etree_22_DTDElementContentDecl_1__cinit__(o, __pyx_empty_tuple, NULL) < 0) {
+ if (unlikely(__pyx_pw_4lxml_5etree_22_DTDElementContentDecl_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
Py_DECREF(o); o = 0;
}
return o;
struct __pyx_obj_4lxml_5etree__DTDElementContentDecl *p = (struct __pyx_obj_4lxml_5etree__DTDElementContentDecl *)o;
PyObject_GC_UnTrack(o);
Py_CLEAR(p->_dtd);
- PyObject_GC_Track(o);
(*Py_TYPE(o)->tp_free)(o);
}
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__DTDElementContentDecl, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
0, /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__DTDElementContentDecl, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__DTDElementContentDecl, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree__DTDAttributeDecl(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
struct __pyx_obj_4lxml_5etree__DTDAttributeDecl *p;
- PyObject *o = (*t->tp_alloc)(t, 0);
- if (!o) return 0;
+ PyObject *o;
+ o = (*t->tp_alloc)(t, 0);
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree__DTDAttributeDecl *)o);
p->_dtd = ((struct __pyx_obj_4lxml_5etree_DTD *)Py_None); Py_INCREF(Py_None);
- if (__pyx_pw_4lxml_5etree_17_DTDAttributeDecl_1__cinit__(o, __pyx_empty_tuple, NULL) < 0) {
+ if (unlikely(__pyx_pw_4lxml_5etree_17_DTDAttributeDecl_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
Py_DECREF(o); o = 0;
}
return o;
struct __pyx_obj_4lxml_5etree__DTDAttributeDecl *p = (struct __pyx_obj_4lxml_5etree__DTDAttributeDecl *)o;
PyObject_GC_UnTrack(o);
Py_CLEAR(p->_dtd);
- PyObject_GC_Track(o);
(*Py_TYPE(o)->tp_free)(o);
}
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__DTDAttributeDecl, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
0, /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__DTDAttributeDecl, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__DTDAttributeDecl, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree__DTDElementDecl(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
struct __pyx_obj_4lxml_5etree__DTDElementDecl *p;
- PyObject *o = (*t->tp_alloc)(t, 0);
- if (!o) return 0;
+ PyObject *o;
+ o = (*t->tp_alloc)(t, 0);
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree__DTDElementDecl *)o);
p->_dtd = ((struct __pyx_obj_4lxml_5etree_DTD *)Py_None); Py_INCREF(Py_None);
- if (__pyx_pw_4lxml_5etree_15_DTDElementDecl_1__cinit__(o, __pyx_empty_tuple, NULL) < 0) {
+ if (unlikely(__pyx_pw_4lxml_5etree_15_DTDElementDecl_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
Py_DECREF(o); o = 0;
}
return o;
struct __pyx_obj_4lxml_5etree__DTDElementDecl *p = (struct __pyx_obj_4lxml_5etree__DTDElementDecl *)o;
PyObject_GC_UnTrack(o);
Py_CLEAR(p->_dtd);
- PyObject_GC_Track(o);
(*Py_TYPE(o)->tp_free)(o);
}
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__DTDElementDecl, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
0, /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__DTDElementDecl, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__DTDElementDecl, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree__DTDEntityDecl(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
struct __pyx_obj_4lxml_5etree__DTDEntityDecl *p;
- PyObject *o = (*t->tp_alloc)(t, 0);
- if (!o) return 0;
+ PyObject *o;
+ o = (*t->tp_alloc)(t, 0);
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree__DTDEntityDecl *)o);
p->_dtd = ((struct __pyx_obj_4lxml_5etree_DTD *)Py_None); Py_INCREF(Py_None);
- if (__pyx_pw_4lxml_5etree_14_DTDEntityDecl_1__cinit__(o, __pyx_empty_tuple, NULL) < 0) {
+ if (unlikely(__pyx_pw_4lxml_5etree_14_DTDEntityDecl_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
Py_DECREF(o); o = 0;
}
return o;
struct __pyx_obj_4lxml_5etree__DTDEntityDecl *p = (struct __pyx_obj_4lxml_5etree__DTDEntityDecl *)o;
PyObject_GC_UnTrack(o);
Py_CLEAR(p->_dtd);
- PyObject_GC_Track(o);
(*Py_TYPE(o)->tp_free)(o);
}
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__DTDEntityDecl, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
0, /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__DTDEntityDecl, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__DTDEntityDecl, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree_DTD(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree_DTD *p;
PyObject *o = __pyx_tp_new_4lxml_5etree__Validator(t, a, k);
- if (!o) return 0;
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree_DTD *)o);
p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4lxml_5etree__Validator*)__pyx_vtabptr_4lxml_5etree_DTD;
- if (__pyx_pw_4lxml_5etree_3DTD_1__cinit__(o, __pyx_empty_tuple, NULL) < 0) {
+ if (unlikely(__pyx_pw_4lxml_5etree_3DTD_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
Py_DECREF(o); o = 0;
}
return o;
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer_DTD, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("DTD(self, file=None, external_id=None)\n A DTD validator.\n\n Can load from filesystem directly given a filename or file-like object.\n Alternatively, pass the keyword parameter ``external_id`` to load from a\n catalog.\n "), /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__Validator, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__Validator, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree_RelaxNG(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree_RelaxNG *p;
PyObject *o = __pyx_tp_new_4lxml_5etree__Validator(t, a, k);
- if (!o) return 0;
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree_RelaxNG *)o);
p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4lxml_5etree__Validator*)__pyx_vtabptr_4lxml_5etree_RelaxNG;
- if (__pyx_pw_4lxml_5etree_7RelaxNG_1__cinit__(o, __pyx_empty_tuple, NULL) < 0) {
+ if (unlikely(__pyx_pw_4lxml_5etree_7RelaxNG_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
Py_DECREF(o); o = 0;
}
return o;
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer_RelaxNG, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("RelaxNG(self, etree=None, file=None)\n Turn a document into a Relax NG validator.\n\n Either pass a schema as Element or ElementTree, or pass a file or\n filename through the ``file`` keyword argument.\n "), /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__Validator, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__Validator, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_5etree_Schematron(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_5etree_Schematron *p;
PyObject *o = __pyx_tp_new_4lxml_5etree__Validator(t, a, k);
- if (!o) return 0;
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_5etree_Schematron *)o);
p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4lxml_5etree__Validator*)__pyx_vtabptr_4lxml_5etree_Schematron;
- if (__pyx_pw_4lxml_5etree_10Schematron_1__cinit__(o, __pyx_empty_tuple, NULL) < 0) {
+ if (unlikely(__pyx_pw_4lxml_5etree_10Schematron_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
Py_DECREF(o); o = 0;
}
return o;
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer_Schematron, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("Schematron(self, etree=None, file=None)\n A Schematron validator.\n\n Pass a root Element or an ElementTree to turn it into a validator.\n Alternatively, pass a filename as keyword argument 'file' to parse from\n the file system.\n\n Schematron is a less well known, but very powerful schema language. The main\n idea is to use the capabilities of XPath to put restrictions on the structure\n and the content of XML documents. Here is a simple example::\n\n >>> schematron = etree.Schematron(etree.XML('''\n ... <schema xmlns=\"http://www.ascc.net/xml/schematron\" >\n ... <pattern name=\"id is the only permited attribute name\">\n ... <rule context=\"*\">\n ... <report test=\"@*[not(name()='id')]\">Attribute\n ... <name path=\"@*[not(name()='id')]\"/> is forbidden<name/>\n ... </report>\n ... </rule>\n ... </pattern>\n ... </schema>\n ... '''))\n\n >>> xml = etree.XML('''\n ... <AAA name=\"aaa\">\n ... <BBB id=\"bbb\"/>\n ... <CCC color=\"ccc\"/>\n ... </AAA>\n ... ''')\n\n >>> schematron.validate(xml)\n 0\n\n >>> xml = etree.XML('''\n ... <AAA id=\"aaa\">\n ... <BBB id=\"bbb\"/>\n ... <CCC/>\n ... </AAA>\n ... ''')\n\n >>> schematron.validate(xml)\n 1\n\n Schematron was added to libxml2 in version 2.6.21. Before version 2.6.32,\n however, Schematron lacked support for error reporting other than to stderr.\n This version is therefore required to retrieve validation warnings and\n errors in lxml.\n "), /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree__Validator, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree__Validator, /*tp_clear*/
};
static PyObject *__pyx_tp_new_4lxml_5etree__MemDebug(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
- PyObject *o = (*t->tp_alloc)(t, 0);
- if (!o) return 0;
+ PyObject *o;
+ o = (*t->tp_alloc)(t, 0);
+ if (unlikely(!o)) return 0;
return o;
}
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__MemDebug, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER, /*tp_flags*/
__Pyx_DOCSTR("Debugging support for the memory allocation in libxml2.\n "), /*tp_doc*/
0, /*tp_traverse*/
0, /*tp_clear*/
#endif
};
+static struct __pyx_obj_4lxml_5etree___pyx_scope_struct__itervalues *__pyx_freelist_4lxml_5etree___pyx_scope_struct__itervalues[8];
+static int __pyx_freecount_4lxml_5etree___pyx_scope_struct__itervalues = 0;
+
static PyObject *__pyx_tp_new_4lxml_5etree___pyx_scope_struct__itervalues(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
struct __pyx_obj_4lxml_5etree___pyx_scope_struct__itervalues *p;
- PyObject *o = (*t->tp_alloc)(t, 0);
- if (!o) return 0;
+ PyObject *o;
+ if (likely((__pyx_freecount_4lxml_5etree___pyx_scope_struct__itervalues > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4lxml_5etree___pyx_scope_struct__itervalues)))) {
+ o = (PyObject*)__pyx_freelist_4lxml_5etree___pyx_scope_struct__itervalues[--__pyx_freecount_4lxml_5etree___pyx_scope_struct__itervalues];
+ memset(o, 0, sizeof(struct __pyx_obj_4lxml_5etree___pyx_scope_struct__itervalues));
+ PyObject_INIT(o, t);
+ PyObject_GC_Track(o);
+ } else {
+ o = (*t->tp_alloc)(t, 0);
+ if (unlikely(!o)) return 0;
+ }
p = ((struct __pyx_obj_4lxml_5etree___pyx_scope_struct__itervalues *)o);
p->__pyx_v_self = 0;
return o;
struct __pyx_obj_4lxml_5etree___pyx_scope_struct__itervalues *p = (struct __pyx_obj_4lxml_5etree___pyx_scope_struct__itervalues *)o;
PyObject_GC_UnTrack(o);
Py_CLEAR(p->__pyx_v_self);
- PyObject_GC_Track(o);
- (*Py_TYPE(o)->tp_free)(o);
+ if ((__pyx_freecount_4lxml_5etree___pyx_scope_struct__itervalues < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4lxml_5etree___pyx_scope_struct__itervalues))) {
+ __pyx_freelist_4lxml_5etree___pyx_scope_struct__itervalues[__pyx_freecount_4lxml_5etree___pyx_scope_struct__itervalues++] = ((struct __pyx_obj_4lxml_5etree___pyx_scope_struct__itervalues *)o);
+ } else {
+ (*Py_TYPE(o)->tp_free)(o);
+ }
}
static int __pyx_tp_traverse_4lxml_5etree___pyx_scope_struct__itervalues(PyObject *o, visitproc v, void *a) {
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer___pyx_scope_struct__itervalues, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
0, /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree___pyx_scope_struct__itervalues, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree___pyx_scope_struct__itervalues, /*tp_clear*/
#endif
};
+static struct __pyx_obj_4lxml_5etree___pyx_scope_struct_1_iterattributes *__pyx_freelist_4lxml_5etree___pyx_scope_struct_1_iterattributes[8];
+static int __pyx_freecount_4lxml_5etree___pyx_scope_struct_1_iterattributes = 0;
+
static PyObject *__pyx_tp_new_4lxml_5etree___pyx_scope_struct_1_iterattributes(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
struct __pyx_obj_4lxml_5etree___pyx_scope_struct_1_iterattributes *p;
- PyObject *o = (*t->tp_alloc)(t, 0);
- if (!o) return 0;
+ PyObject *o;
+ if (likely((__pyx_freecount_4lxml_5etree___pyx_scope_struct_1_iterattributes > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4lxml_5etree___pyx_scope_struct_1_iterattributes)))) {
+ o = (PyObject*)__pyx_freelist_4lxml_5etree___pyx_scope_struct_1_iterattributes[--__pyx_freecount_4lxml_5etree___pyx_scope_struct_1_iterattributes];
+ memset(o, 0, sizeof(struct __pyx_obj_4lxml_5etree___pyx_scope_struct_1_iterattributes));
+ PyObject_INIT(o, t);
+ PyObject_GC_Track(o);
+ } else {
+ o = (*t->tp_alloc)(t, 0);
+ if (unlikely(!o)) return 0;
+ }
p = ((struct __pyx_obj_4lxml_5etree___pyx_scope_struct_1_iterattributes *)o);
p->__pyx_v_node = 0;
p->__pyx_v_self = 0;
PyObject_GC_UnTrack(o);
Py_CLEAR(p->__pyx_v_node);
Py_CLEAR(p->__pyx_v_self);
- PyObject_GC_Track(o);
- (*Py_TYPE(o)->tp_free)(o);
+ if ((__pyx_freecount_4lxml_5etree___pyx_scope_struct_1_iterattributes < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4lxml_5etree___pyx_scope_struct_1_iterattributes))) {
+ __pyx_freelist_4lxml_5etree___pyx_scope_struct_1_iterattributes[__pyx_freecount_4lxml_5etree___pyx_scope_struct_1_iterattributes++] = ((struct __pyx_obj_4lxml_5etree___pyx_scope_struct_1_iterattributes *)o);
+ } else {
+ (*Py_TYPE(o)->tp_free)(o);
+ }
}
static int __pyx_tp_traverse_4lxml_5etree___pyx_scope_struct_1_iterattributes(PyObject *o, visitproc v, void *a) {
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer___pyx_scope_struct_1_iterattributes, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
0, /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree___pyx_scope_struct_1_iterattributes, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree___pyx_scope_struct_1_iterattributes, /*tp_clear*/
#endif
};
+static struct __pyx_obj_4lxml_5etree___pyx_scope_struct_2_iterelements *__pyx_freelist_4lxml_5etree___pyx_scope_struct_2_iterelements[8];
+static int __pyx_freecount_4lxml_5etree___pyx_scope_struct_2_iterelements = 0;
+
static PyObject *__pyx_tp_new_4lxml_5etree___pyx_scope_struct_2_iterelements(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
struct __pyx_obj_4lxml_5etree___pyx_scope_struct_2_iterelements *p;
- PyObject *o = (*t->tp_alloc)(t, 0);
- if (!o) return 0;
+ PyObject *o;
+ if (likely((__pyx_freecount_4lxml_5etree___pyx_scope_struct_2_iterelements > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4lxml_5etree___pyx_scope_struct_2_iterelements)))) {
+ o = (PyObject*)__pyx_freelist_4lxml_5etree___pyx_scope_struct_2_iterelements[--__pyx_freecount_4lxml_5etree___pyx_scope_struct_2_iterelements];
+ memset(o, 0, sizeof(struct __pyx_obj_4lxml_5etree___pyx_scope_struct_2_iterelements));
+ PyObject_INIT(o, t);
+ PyObject_GC_Track(o);
+ } else {
+ o = (*t->tp_alloc)(t, 0);
+ if (unlikely(!o)) return 0;
+ }
p = ((struct __pyx_obj_4lxml_5etree___pyx_scope_struct_2_iterelements *)o);
p->__pyx_v_node = 0;
p->__pyx_v_self = 0;
PyObject_GC_UnTrack(o);
Py_CLEAR(p->__pyx_v_node);
Py_CLEAR(p->__pyx_v_self);
- PyObject_GC_Track(o);
- (*Py_TYPE(o)->tp_free)(o);
+ if ((__pyx_freecount_4lxml_5etree___pyx_scope_struct_2_iterelements < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4lxml_5etree___pyx_scope_struct_2_iterelements))) {
+ __pyx_freelist_4lxml_5etree___pyx_scope_struct_2_iterelements[__pyx_freecount_4lxml_5etree___pyx_scope_struct_2_iterelements++] = ((struct __pyx_obj_4lxml_5etree___pyx_scope_struct_2_iterelements *)o);
+ } else {
+ (*Py_TYPE(o)->tp_free)(o);
+ }
}
static int __pyx_tp_traverse_4lxml_5etree___pyx_scope_struct_2_iterelements(PyObject *o, visitproc v, void *a) {
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer___pyx_scope_struct_2_iterelements, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
0, /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree___pyx_scope_struct_2_iterelements, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree___pyx_scope_struct_2_iterelements, /*tp_clear*/
#endif
};
+static struct __pyx_obj_4lxml_5etree___pyx_scope_struct_3_iterentities *__pyx_freelist_4lxml_5etree___pyx_scope_struct_3_iterentities[8];
+static int __pyx_freecount_4lxml_5etree___pyx_scope_struct_3_iterentities = 0;
+
static PyObject *__pyx_tp_new_4lxml_5etree___pyx_scope_struct_3_iterentities(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
struct __pyx_obj_4lxml_5etree___pyx_scope_struct_3_iterentities *p;
- PyObject *o = (*t->tp_alloc)(t, 0);
- if (!o) return 0;
+ PyObject *o;
+ if (likely((__pyx_freecount_4lxml_5etree___pyx_scope_struct_3_iterentities > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4lxml_5etree___pyx_scope_struct_3_iterentities)))) {
+ o = (PyObject*)__pyx_freelist_4lxml_5etree___pyx_scope_struct_3_iterentities[--__pyx_freecount_4lxml_5etree___pyx_scope_struct_3_iterentities];
+ memset(o, 0, sizeof(struct __pyx_obj_4lxml_5etree___pyx_scope_struct_3_iterentities));
+ PyObject_INIT(o, t);
+ PyObject_GC_Track(o);
+ } else {
+ o = (*t->tp_alloc)(t, 0);
+ if (unlikely(!o)) return 0;
+ }
p = ((struct __pyx_obj_4lxml_5etree___pyx_scope_struct_3_iterentities *)o);
p->__pyx_v_node = 0;
p->__pyx_v_self = 0;
PyObject_GC_UnTrack(o);
Py_CLEAR(p->__pyx_v_node);
Py_CLEAR(p->__pyx_v_self);
- PyObject_GC_Track(o);
- (*Py_TYPE(o)->tp_free)(o);
+ if ((__pyx_freecount_4lxml_5etree___pyx_scope_struct_3_iterentities < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4lxml_5etree___pyx_scope_struct_3_iterentities))) {
+ __pyx_freelist_4lxml_5etree___pyx_scope_struct_3_iterentities[__pyx_freecount_4lxml_5etree___pyx_scope_struct_3_iterentities++] = ((struct __pyx_obj_4lxml_5etree___pyx_scope_struct_3_iterentities *)o);
+ } else {
+ (*Py_TYPE(o)->tp_free)(o);
+ }
}
static int __pyx_tp_traverse_4lxml_5etree___pyx_scope_struct_3_iterentities(PyObject *o, visitproc v, void *a) {
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer___pyx_scope_struct_3_iterentities, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
0, /*tp_doc*/
__pyx_tp_traverse_4lxml_5etree___pyx_scope_struct_3_iterentities, /*tp_traverse*/
__pyx_tp_clear_4lxml_5etree___pyx_scope_struct_3_iterentities, /*tp_clear*/
PyModuleDef_HEAD_INIT,
#endif
__Pyx_NAMESTR("etree"),
- __Pyx_DOCSTR(__pyx_k_452), /* m_doc */
+ __Pyx_DOCSTR(__pyx_k_467), /* m_doc */
-1, /* m_size */
__pyx_methods /* m_methods */,
NULL, /* m_reload */
static __Pyx_StringTabEntry __pyx_string_tab[] = {
{&__pyx_kp_s_1, __pyx_k_1, sizeof(__pyx_k_1), 0, 0, 1, 0},
- {&__pyx_kp_u_100, __pyx_k_100, sizeof(__pyx_k_100), 0, 1, 0, 0},
- {&__pyx_kp_s_101, __pyx_k_101, sizeof(__pyx_k_101), 0, 0, 1, 0},
- {&__pyx_kp_u_101, __pyx_k_101, sizeof(__pyx_k_101), 0, 1, 0, 0},
- {&__pyx_kp_u_102, __pyx_k_102, sizeof(__pyx_k_102), 0, 1, 0, 0},
- {&__pyx_kp_b_103, __pyx_k_103, sizeof(__pyx_k_103), 0, 0, 0, 0},
- {&__pyx_kp_u_103, __pyx_k_103, sizeof(__pyx_k_103), 0, 1, 0, 0},
- {&__pyx_kp_u_107, __pyx_k_107, sizeof(__pyx_k_107), 0, 1, 0, 0},
+ {&__pyx_kp_s_100, __pyx_k_100, sizeof(__pyx_k_100), 0, 0, 1, 0},
+ {&__pyx_kp_s_102, __pyx_k_102, sizeof(__pyx_k_102), 0, 0, 1, 0},
+ {&__pyx_kp_u_104, __pyx_k_104, sizeof(__pyx_k_104), 0, 1, 0, 0},
+ {&__pyx_kp_s_105, __pyx_k_105, sizeof(__pyx_k_105), 0, 0, 1, 0},
+ {&__pyx_kp_u_105, __pyx_k_105, sizeof(__pyx_k_105), 0, 1, 0, 0},
+ {&__pyx_kp_u_106, __pyx_k_106, sizeof(__pyx_k_106), 0, 1, 0, 0},
{&__pyx_kp_b_108, __pyx_k_108, sizeof(__pyx_k_108), 0, 0, 0, 0},
- {&__pyx_kp_s_108, __pyx_k_108, sizeof(__pyx_k_108), 0, 0, 1, 0},
- {&__pyx_kp_s_109, __pyx_k_109, sizeof(__pyx_k_109), 0, 0, 1, 0},
- {&__pyx_kp_u_11, __pyx_k_11, sizeof(__pyx_k_11), 0, 1, 0, 0},
- {&__pyx_kp_u_116, __pyx_k_116, sizeof(__pyx_k_116), 0, 1, 0, 0},
- {&__pyx_kp_u_117, __pyx_k_117, sizeof(__pyx_k_117), 0, 1, 0, 0},
- {&__pyx_kp_u_12, __pyx_k_12, sizeof(__pyx_k_12), 0, 1, 0, 0},
- {&__pyx_kp_u_122, __pyx_k_122, sizeof(__pyx_k_122), 0, 1, 0, 0},
- {&__pyx_kp_u_123, __pyx_k_123, sizeof(__pyx_k_123), 0, 1, 0, 0},
+ {&__pyx_kp_u_108, __pyx_k_108, sizeof(__pyx_k_108), 0, 1, 0, 0},
+ {&__pyx_kp_u_115, __pyx_k_115, sizeof(__pyx_k_115), 0, 1, 0, 0},
+ {&__pyx_kp_b_116, __pyx_k_116, sizeof(__pyx_k_116), 0, 0, 0, 0},
+ {&__pyx_kp_s_116, __pyx_k_116, sizeof(__pyx_k_116), 0, 0, 1, 0},
+ {&__pyx_kp_s_117, __pyx_k_117, sizeof(__pyx_k_117), 0, 0, 1, 0},
{&__pyx_kp_u_124, __pyx_k_124, sizeof(__pyx_k_124), 0, 1, 0, 0},
- {&__pyx_kp_s_125, __pyx_k_125, sizeof(__pyx_k_125), 0, 0, 1, 0},
- {&__pyx_kp_s_128, __pyx_k_128, sizeof(__pyx_k_128), 0, 0, 1, 0},
- {&__pyx_kp_u_129, __pyx_k_129, sizeof(__pyx_k_129), 0, 1, 0, 0},
- {&__pyx_kp_u_13, __pyx_k_13, sizeof(__pyx_k_13), 0, 1, 0, 0},
+ {&__pyx_kp_u_125, __pyx_k_125, sizeof(__pyx_k_125), 0, 1, 0, 0},
{&__pyx_kp_u_130, __pyx_k_130, sizeof(__pyx_k_130), 0, 1, 0, 0},
{&__pyx_kp_u_131, __pyx_k_131, sizeof(__pyx_k_131), 0, 1, 0, 0},
{&__pyx_kp_u_132, __pyx_k_132, sizeof(__pyx_k_132), 0, 1, 0, 0},
- {&__pyx_kp_u_133, __pyx_k_133, sizeof(__pyx_k_133), 0, 1, 0, 0},
- {&__pyx_kp_s_135, __pyx_k_135, sizeof(__pyx_k_135), 0, 0, 1, 0},
- {&__pyx_kp_u_136, __pyx_k_136, sizeof(__pyx_k_136), 0, 1, 0, 0},
+ {&__pyx_kp_s_133, __pyx_k_133, sizeof(__pyx_k_133), 0, 0, 1, 0},
+ {&__pyx_kp_s_136, __pyx_k_136, sizeof(__pyx_k_136), 0, 0, 1, 0},
{&__pyx_kp_u_137, __pyx_k_137, sizeof(__pyx_k_137), 0, 1, 0, 0},
{&__pyx_kp_u_138, __pyx_k_138, sizeof(__pyx_k_138), 0, 1, 0, 0},
{&__pyx_kp_u_139, __pyx_k_139, sizeof(__pyx_k_139), 0, 1, 0, 0},
- {&__pyx_kp_u_14, __pyx_k_14, sizeof(__pyx_k_14), 0, 1, 0, 0},
- {&__pyx_kp_u_143, __pyx_k_143, sizeof(__pyx_k_143), 0, 1, 0, 0},
+ {&__pyx_kp_u_140, __pyx_k_140, sizeof(__pyx_k_140), 0, 1, 0, 0},
+ {&__pyx_kp_u_141, __pyx_k_141, sizeof(__pyx_k_141), 0, 1, 0, 0},
+ {&__pyx_kp_s_143, __pyx_k_143, sizeof(__pyx_k_143), 0, 0, 1, 0},
{&__pyx_kp_u_144, __pyx_k_144, sizeof(__pyx_k_144), 0, 1, 0, 0},
- {&__pyx_n_s_145, __pyx_k_145, sizeof(__pyx_k_145), 0, 0, 1, 1},
+ {&__pyx_kp_u_145, __pyx_k_145, sizeof(__pyx_k_145), 0, 1, 0, 0},
{&__pyx_kp_u_146, __pyx_k_146, sizeof(__pyx_k_146), 0, 1, 0, 0},
{&__pyx_kp_u_147, __pyx_k_147, sizeof(__pyx_k_147), 0, 1, 0, 0},
- {&__pyx_kp_u_148, __pyx_k_148, sizeof(__pyx_k_148), 0, 1, 0, 0},
- {&__pyx_kp_u_149, __pyx_k_149, sizeof(__pyx_k_149), 0, 1, 0, 0},
{&__pyx_kp_u_15, __pyx_k_15, sizeof(__pyx_k_15), 0, 1, 0, 0},
- {&__pyx_kp_u_150, __pyx_k_150, sizeof(__pyx_k_150), 0, 1, 0, 0},
- {&__pyx_kp_s_151, __pyx_k_151, sizeof(__pyx_k_151), 0, 0, 1, 0},
- {&__pyx_kp_u_152, __pyx_k_152, sizeof(__pyx_k_152), 0, 1, 0, 0},
- {&__pyx_n_u_153, __pyx_k_153, sizeof(__pyx_k_153), 0, 1, 0, 1},
+ {&__pyx_kp_u_151, __pyx_k_151, sizeof(__pyx_k_151), 0, 1, 0, 0},
+ {&__pyx_kp_u_153, __pyx_k_153, sizeof(__pyx_k_153), 0, 1, 0, 0},
+ {&__pyx_n_s_154, __pyx_k_154, sizeof(__pyx_k_154), 0, 0, 1, 1},
+ {&__pyx_kp_u_155, __pyx_k_155, sizeof(__pyx_k_155), 0, 1, 0, 0},
+ {&__pyx_kp_u_156, __pyx_k_156, sizeof(__pyx_k_156), 0, 1, 0, 0},
+ {&__pyx_kp_u_157, __pyx_k_157, sizeof(__pyx_k_157), 0, 1, 0, 0},
+ {&__pyx_kp_u_158, __pyx_k_158, sizeof(__pyx_k_158), 0, 1, 0, 0},
{&__pyx_kp_u_159, __pyx_k_159, sizeof(__pyx_k_159), 0, 1, 0, 0},
{&__pyx_kp_u_16, __pyx_k_16, sizeof(__pyx_k_16), 0, 1, 0, 0},
- {&__pyx_kp_u_160, __pyx_k_160, sizeof(__pyx_k_160), 0, 1, 0, 0},
+ {&__pyx_kp_s_160, __pyx_k_160, sizeof(__pyx_k_160), 0, 0, 1, 0},
{&__pyx_kp_u_161, __pyx_k_161, sizeof(__pyx_k_161), 0, 1, 0, 0},
- {&__pyx_kp_u_162, __pyx_k_162, sizeof(__pyx_k_162), 0, 1, 0, 0},
- {&__pyx_kp_u_163, __pyx_k_163, sizeof(__pyx_k_163), 0, 1, 0, 0},
- {&__pyx_kp_u_164, __pyx_k_164, sizeof(__pyx_k_164), 0, 1, 0, 0},
- {&__pyx_n_s_165, __pyx_k_165, sizeof(__pyx_k_165), 0, 0, 1, 1},
- {&__pyx_n_s_166, __pyx_k_166, sizeof(__pyx_k_166), 0, 0, 1, 1},
- {&__pyx_kp_u_167, __pyx_k_167, sizeof(__pyx_k_167), 0, 1, 0, 0},
+ {&__pyx_n_u_162, __pyx_k_162, sizeof(__pyx_k_162), 0, 1, 0, 1},
{&__pyx_kp_u_168, __pyx_k_168, sizeof(__pyx_k_168), 0, 1, 0, 0},
{&__pyx_kp_u_169, __pyx_k_169, sizeof(__pyx_k_169), 0, 1, 0, 0},
{&__pyx_kp_u_17, __pyx_k_17, sizeof(__pyx_k_17), 0, 1, 0, 0},
- {&__pyx_n_s_170, __pyx_k_170, sizeof(__pyx_k_170), 0, 0, 1, 1},
+ {&__pyx_kp_u_170, __pyx_k_170, sizeof(__pyx_k_170), 0, 1, 0, 0},
{&__pyx_kp_u_171, __pyx_k_171, sizeof(__pyx_k_171), 0, 1, 0, 0},
{&__pyx_kp_u_172, __pyx_k_172, sizeof(__pyx_k_172), 0, 1, 0, 0},
{&__pyx_kp_u_173, __pyx_k_173, sizeof(__pyx_k_173), 0, 1, 0, 0},
- {&__pyx_kp_u_174, __pyx_k_174, sizeof(__pyx_k_174), 0, 1, 0, 0},
+ {&__pyx_n_s_174, __pyx_k_174, sizeof(__pyx_k_174), 0, 0, 1, 1},
+ {&__pyx_n_s_175, __pyx_k_175, sizeof(__pyx_k_175), 0, 0, 1, 1},
+ {&__pyx_kp_u_176, __pyx_k_176, sizeof(__pyx_k_176), 0, 1, 0, 0},
+ {&__pyx_kp_u_177, __pyx_k_177, sizeof(__pyx_k_177), 0, 1, 0, 0},
+ {&__pyx_kp_u_178, __pyx_k_178, sizeof(__pyx_k_178), 0, 1, 0, 0},
+ {&__pyx_n_s_179, __pyx_k_179, sizeof(__pyx_k_179), 0, 0, 1, 1},
{&__pyx_kp_u_18, __pyx_k_18, sizeof(__pyx_k_18), 0, 1, 0, 0},
+ {&__pyx_kp_u_180, __pyx_k_180, sizeof(__pyx_k_180), 0, 1, 0, 0},
+ {&__pyx_kp_u_181, __pyx_k_181, sizeof(__pyx_k_181), 0, 1, 0, 0},
+ {&__pyx_kp_u_182, __pyx_k_182, sizeof(__pyx_k_182), 0, 1, 0, 0},
+ {&__pyx_kp_u_183, __pyx_k_183, sizeof(__pyx_k_183), 0, 1, 0, 0},
{&__pyx_kp_u_19, __pyx_k_19, sizeof(__pyx_k_19), 0, 1, 0, 0},
{&__pyx_kp_u_20, __pyx_k_20, sizeof(__pyx_k_20), 0, 1, 0, 0},
- {&__pyx_kp_u_208, __pyx_k_208, sizeof(__pyx_k_208), 0, 1, 0, 0},
- {&__pyx_kp_u_209, __pyx_k_209, sizeof(__pyx_k_209), 0, 1, 0, 0},
- {&__pyx_kp_b_21, __pyx_k_21, sizeof(__pyx_k_21), 0, 0, 0, 0},
- {&__pyx_kp_s_21, __pyx_k_21, sizeof(__pyx_k_21), 0, 0, 1, 0},
{&__pyx_kp_u_21, __pyx_k_21, sizeof(__pyx_k_21), 0, 1, 0, 0},
- {&__pyx_kp_u_211, __pyx_k_211, sizeof(__pyx_k_211), 0, 1, 0, 0},
- {&__pyx_kp_u_212, __pyx_k_212, sizeof(__pyx_k_212), 0, 1, 0, 0},
- {&__pyx_kp_u_213, __pyx_k_213, sizeof(__pyx_k_213), 0, 1, 0, 0},
- {&__pyx_kp_u_214, __pyx_k_214, sizeof(__pyx_k_214), 0, 1, 0, 0},
- {&__pyx_kp_u_215, __pyx_k_215, sizeof(__pyx_k_215), 0, 1, 0, 0},
- {&__pyx_kp_u_216, __pyx_k_216, sizeof(__pyx_k_216), 0, 1, 0, 0},
{&__pyx_kp_u_217, __pyx_k_217, sizeof(__pyx_k_217), 0, 1, 0, 0},
{&__pyx_kp_u_218, __pyx_k_218, sizeof(__pyx_k_218), 0, 1, 0, 0},
- {&__pyx_kp_u_219, __pyx_k_219, sizeof(__pyx_k_219), 0, 1, 0, 0},
+ {&__pyx_kp_u_22, __pyx_k_22, sizeof(__pyx_k_22), 0, 1, 0, 0},
+ {&__pyx_kp_u_220, __pyx_k_220, sizeof(__pyx_k_220), 0, 1, 0, 0},
{&__pyx_kp_u_221, __pyx_k_221, sizeof(__pyx_k_221), 0, 1, 0, 0},
{&__pyx_kp_u_222, __pyx_k_222, sizeof(__pyx_k_222), 0, 1, 0, 0},
+ {&__pyx_kp_u_223, __pyx_k_223, sizeof(__pyx_k_223), 0, 1, 0, 0},
+ {&__pyx_kp_u_224, __pyx_k_224, sizeof(__pyx_k_224), 0, 1, 0, 0},
+ {&__pyx_kp_u_225, __pyx_k_225, sizeof(__pyx_k_225), 0, 1, 0, 0},
+ {&__pyx_kp_u_226, __pyx_k_226, sizeof(__pyx_k_226), 0, 1, 0, 0},
+ {&__pyx_kp_u_227, __pyx_k_227, sizeof(__pyx_k_227), 0, 1, 0, 0},
+ {&__pyx_kp_u_228, __pyx_k_228, sizeof(__pyx_k_228), 0, 1, 0, 0},
{&__pyx_kp_u_23, __pyx_k_23, sizeof(__pyx_k_23), 0, 1, 0, 0},
- {&__pyx_kp_u_233, __pyx_k_233, sizeof(__pyx_k_233), 0, 1, 0, 0},
- {&__pyx_kp_u_237, __pyx_k_237, sizeof(__pyx_k_237), 0, 1, 0, 0},
- {&__pyx_kp_u_238, __pyx_k_238, sizeof(__pyx_k_238), 0, 1, 0, 0},
- {&__pyx_kp_u_239, __pyx_k_239, sizeof(__pyx_k_239), 0, 1, 0, 0},
+ {&__pyx_kp_u_230, __pyx_k_230, sizeof(__pyx_k_230), 0, 1, 0, 0},
+ {&__pyx_kp_u_231, __pyx_k_231, sizeof(__pyx_k_231), 0, 1, 0, 0},
{&__pyx_kp_u_24, __pyx_k_24, sizeof(__pyx_k_24), 0, 1, 0, 0},
- {&__pyx_kp_s_241, __pyx_k_241, sizeof(__pyx_k_241), 0, 0, 1, 0},
- {&__pyx_kp_s_243, __pyx_k_243, sizeof(__pyx_k_243), 0, 0, 1, 0},
- {&__pyx_kp_b_245, __pyx_k_245, sizeof(__pyx_k_245), 0, 0, 0, 0},
- {&__pyx_kp_s_246, __pyx_k_246, sizeof(__pyx_k_246), 0, 0, 1, 0},
- {&__pyx_kp_u_249, __pyx_k_249, sizeof(__pyx_k_249), 0, 1, 0, 0},
+ {&__pyx_kp_u_242, __pyx_k_242, sizeof(__pyx_k_242), 0, 1, 0, 0},
+ {&__pyx_kp_u_246, __pyx_k_246, sizeof(__pyx_k_246), 0, 1, 0, 0},
+ {&__pyx_kp_u_247, __pyx_k_247, sizeof(__pyx_k_247), 0, 1, 0, 0},
+ {&__pyx_kp_u_248, __pyx_k_248, sizeof(__pyx_k_248), 0, 1, 0, 0},
+ {&__pyx_kp_b_25, __pyx_k_25, sizeof(__pyx_k_25), 0, 0, 0, 0},
{&__pyx_kp_s_25, __pyx_k_25, sizeof(__pyx_k_25), 0, 0, 1, 0},
- {&__pyx_kp_s_251, __pyx_k_251, sizeof(__pyx_k_251), 0, 0, 1, 0},
- {&__pyx_kp_s_253, __pyx_k_253, sizeof(__pyx_k_253), 0, 0, 1, 0},
- {&__pyx_kp_s_258, __pyx_k_258, sizeof(__pyx_k_258), 0, 0, 1, 0},
- {&__pyx_kp_s_259, __pyx_k_259, sizeof(__pyx_k_259), 0, 0, 1, 0},
- {&__pyx_kp_s_26, __pyx_k_26, sizeof(__pyx_k_26), 0, 0, 1, 0},
- {&__pyx_kp_s_261, __pyx_k_261, sizeof(__pyx_k_261), 0, 0, 1, 0},
- {&__pyx_kp_u_263, __pyx_k_263, sizeof(__pyx_k_263), 0, 1, 0, 0},
- {&__pyx_kp_u_264, __pyx_k_264, sizeof(__pyx_k_264), 0, 1, 0, 0},
- {&__pyx_kp_u_265, __pyx_k_265, sizeof(__pyx_k_265), 0, 1, 0, 0},
- {&__pyx_kp_s_28, __pyx_k_28, sizeof(__pyx_k_28), 0, 0, 1, 0},
- {&__pyx_kp_u_280, __pyx_k_280, sizeof(__pyx_k_280), 0, 1, 0, 0},
- {&__pyx_kp_s_282, __pyx_k_282, sizeof(__pyx_k_282), 0, 0, 1, 0},
- {&__pyx_kp_u_288, __pyx_k_288, sizeof(__pyx_k_288), 0, 1, 0, 0},
- {&__pyx_kp_u_291, __pyx_k_291, sizeof(__pyx_k_291), 0, 1, 0, 0},
+ {&__pyx_kp_u_25, __pyx_k_25, sizeof(__pyx_k_25), 0, 1, 0, 0},
+ {&__pyx_kp_s_250, __pyx_k_250, sizeof(__pyx_k_250), 0, 0, 1, 0},
+ {&__pyx_kp_s_252, __pyx_k_252, sizeof(__pyx_k_252), 0, 0, 1, 0},
+ {&__pyx_kp_b_254, __pyx_k_254, sizeof(__pyx_k_254), 0, 0, 0, 0},
+ {&__pyx_kp_s_255, __pyx_k_255, sizeof(__pyx_k_255), 0, 0, 1, 0},
+ {&__pyx_kp_u_258, __pyx_k_258, sizeof(__pyx_k_258), 0, 1, 0, 0},
+ {&__pyx_kp_s_260, __pyx_k_260, sizeof(__pyx_k_260), 0, 0, 1, 0},
+ {&__pyx_kp_s_264, __pyx_k_264, sizeof(__pyx_k_264), 0, 0, 1, 0},
+ {&__pyx_kp_u_27, __pyx_k_27, sizeof(__pyx_k_27), 0, 1, 0, 0},
+ {&__pyx_kp_s_270, __pyx_k_270, sizeof(__pyx_k_270), 0, 0, 1, 0},
+ {&__pyx_kp_s_271, __pyx_k_271, sizeof(__pyx_k_271), 0, 0, 1, 0},
+ {&__pyx_kp_s_273, __pyx_k_273, sizeof(__pyx_k_273), 0, 0, 1, 0},
+ {&__pyx_kp_u_275, __pyx_k_275, sizeof(__pyx_k_275), 0, 1, 0, 0},
+ {&__pyx_kp_u_276, __pyx_k_276, sizeof(__pyx_k_276), 0, 1, 0, 0},
+ {&__pyx_kp_u_277, __pyx_k_277, sizeof(__pyx_k_277), 0, 1, 0, 0},
+ {&__pyx_kp_u_28, __pyx_k_28, sizeof(__pyx_k_28), 0, 1, 0, 0},
+ {&__pyx_kp_s_29, __pyx_k_29, sizeof(__pyx_k_29), 0, 0, 1, 0},
{&__pyx_kp_u_292, __pyx_k_292, sizeof(__pyx_k_292), 0, 1, 0, 0},
- {&__pyx_kp_u_293, __pyx_k_293, sizeof(__pyx_k_293), 0, 1, 0, 0},
{&__pyx_kp_s_294, __pyx_k_294, sizeof(__pyx_k_294), 0, 0, 1, 0},
- {&__pyx_kp_s_295, __pyx_k_295, sizeof(__pyx_k_295), 0, 0, 1, 0},
- {&__pyx_kp_u_296, __pyx_k_296, sizeof(__pyx_k_296), 0, 1, 0, 0},
- {&__pyx_kp_u_297, __pyx_k_297, sizeof(__pyx_k_297), 0, 1, 0, 0},
- {&__pyx_kp_u_298, __pyx_k_298, sizeof(__pyx_k_298), 0, 1, 0, 0},
- {&__pyx_kp_u_299, __pyx_k_299, sizeof(__pyx_k_299), 0, 1, 0, 0},
+ {&__pyx_kp_s_30, __pyx_k_30, sizeof(__pyx_k_30), 0, 0, 1, 0},
{&__pyx_kp_u_300, __pyx_k_300, sizeof(__pyx_k_300), 0, 1, 0, 0},
- {&__pyx_kp_u_301, __pyx_k_301, sizeof(__pyx_k_301), 0, 1, 0, 0},
- {&__pyx_kp_u_302, __pyx_k_302, sizeof(__pyx_k_302), 0, 1, 0, 0},
{&__pyx_kp_u_303, __pyx_k_303, sizeof(__pyx_k_303), 0, 1, 0, 0},
- {&__pyx_kp_b_307, __pyx_k_307, sizeof(__pyx_k_307), 0, 0, 0, 0},
- {&__pyx_kp_u_308, __pyx_k_308, sizeof(__pyx_k_308), 0, 1, 0, 0},
+ {&__pyx_kp_u_304, __pyx_k_304, sizeof(__pyx_k_304), 0, 1, 0, 0},
+ {&__pyx_kp_u_305, __pyx_k_305, sizeof(__pyx_k_305), 0, 1, 0, 0},
+ {&__pyx_kp_s_308, __pyx_k_308, sizeof(__pyx_k_308), 0, 0, 1, 0},
{&__pyx_kp_s_309, __pyx_k_309, sizeof(__pyx_k_309), 0, 0, 1, 0},
- {&__pyx_kp_u_31, __pyx_k_31, sizeof(__pyx_k_31), 0, 1, 0, 0},
{&__pyx_kp_u_310, __pyx_k_310, sizeof(__pyx_k_310), 0, 1, 0, 0},
{&__pyx_kp_u_311, __pyx_k_311, sizeof(__pyx_k_311), 0, 1, 0, 0},
{&__pyx_kp_u_312, __pyx_k_312, sizeof(__pyx_k_312), 0, 1, 0, 0},
{&__pyx_kp_u_313, __pyx_k_313, sizeof(__pyx_k_313), 0, 1, 0, 0},
{&__pyx_kp_u_314, __pyx_k_314, sizeof(__pyx_k_314), 0, 1, 0, 0},
- {&__pyx_n_s_315, __pyx_k_315, sizeof(__pyx_k_315), 0, 0, 1, 1},
+ {&__pyx_kp_u_315, __pyx_k_315, sizeof(__pyx_k_315), 0, 1, 0, 0},
{&__pyx_kp_u_316, __pyx_k_316, sizeof(__pyx_k_316), 0, 1, 0, 0},
{&__pyx_kp_u_317, __pyx_k_317, sizeof(__pyx_k_317), 0, 1, 0, 0},
- {&__pyx_kp_u_319, __pyx_k_319, sizeof(__pyx_k_319), 0, 1, 0, 0},
- {&__pyx_kp_u_32, __pyx_k_32, sizeof(__pyx_k_32), 0, 1, 0, 0},
- {&__pyx_kp_u_320, __pyx_k_320, sizeof(__pyx_k_320), 0, 1, 0, 0},
+ {&__pyx_kp_s_32, __pyx_k_32, sizeof(__pyx_k_32), 0, 0, 1, 0},
+ {&__pyx_kp_b_321, __pyx_k_321, sizeof(__pyx_k_321), 0, 0, 0, 0},
+ {&__pyx_kp_u_322, __pyx_k_322, sizeof(__pyx_k_322), 0, 1, 0, 0},
{&__pyx_kp_s_323, __pyx_k_323, sizeof(__pyx_k_323), 0, 0, 1, 0},
- {&__pyx_kp_s_33, __pyx_k_33, sizeof(__pyx_k_33), 0, 0, 1, 0},
- {&__pyx_kp_u_335, __pyx_k_335, sizeof(__pyx_k_335), 0, 1, 0, 0},
- {&__pyx_kp_u_336, __pyx_k_336, sizeof(__pyx_k_336), 0, 1, 0, 0},
- {&__pyx_kp_u_337, __pyx_k_337, sizeof(__pyx_k_337), 0, 1, 0, 0},
- {&__pyx_kp_u_338, __pyx_k_338, sizeof(__pyx_k_338), 0, 1, 0, 0},
- {&__pyx_kp_u_339, __pyx_k_339, sizeof(__pyx_k_339), 0, 1, 0, 0},
- {&__pyx_kp_s_34, __pyx_k_34, sizeof(__pyx_k_34), 0, 0, 1, 0},
- {&__pyx_kp_u_341, __pyx_k_341, sizeof(__pyx_k_341), 0, 1, 0, 0},
- {&__pyx_kp_u_343, __pyx_k_343, sizeof(__pyx_k_343), 0, 1, 0, 0},
- {&__pyx_kp_s_344, __pyx_k_344, sizeof(__pyx_k_344), 0, 0, 1, 0},
- {&__pyx_kp_s_348, __pyx_k_348, sizeof(__pyx_k_348), 0, 0, 1, 0},
- {&__pyx_kp_u_349, __pyx_k_349, sizeof(__pyx_k_349), 0, 1, 0, 0},
- {&__pyx_kp_s_35, __pyx_k_35, sizeof(__pyx_k_35), 0, 0, 1, 0},
+ {&__pyx_kp_u_324, __pyx_k_324, sizeof(__pyx_k_324), 0, 1, 0, 0},
+ {&__pyx_kp_u_325, __pyx_k_325, sizeof(__pyx_k_325), 0, 1, 0, 0},
+ {&__pyx_kp_u_326, __pyx_k_326, sizeof(__pyx_k_326), 0, 1, 0, 0},
+ {&__pyx_kp_u_327, __pyx_k_327, sizeof(__pyx_k_327), 0, 1, 0, 0},
+ {&__pyx_kp_u_328, __pyx_k_328, sizeof(__pyx_k_328), 0, 1, 0, 0},
+ {&__pyx_n_s_329, __pyx_k_329, sizeof(__pyx_k_329), 0, 0, 1, 1},
+ {&__pyx_kp_u_330, __pyx_k_330, sizeof(__pyx_k_330), 0, 1, 0, 0},
+ {&__pyx_kp_u_331, __pyx_k_331, sizeof(__pyx_k_331), 0, 1, 0, 0},
+ {&__pyx_kp_u_333, __pyx_k_333, sizeof(__pyx_k_333), 0, 1, 0, 0},
+ {&__pyx_kp_u_334, __pyx_k_334, sizeof(__pyx_k_334), 0, 1, 0, 0},
+ {&__pyx_kp_s_337, __pyx_k_337, sizeof(__pyx_k_337), 0, 0, 1, 0},
+ {&__pyx_kp_u_35, __pyx_k_35, sizeof(__pyx_k_35), 0, 1, 0, 0},
{&__pyx_kp_u_350, __pyx_k_350, sizeof(__pyx_k_350), 0, 1, 0, 0},
{&__pyx_kp_u_351, __pyx_k_351, sizeof(__pyx_k_351), 0, 1, 0, 0},
- {&__pyx_kp_b_353, __pyx_k_353, sizeof(__pyx_k_353), 0, 0, 0, 0},
+ {&__pyx_kp_u_352, __pyx_k_352, sizeof(__pyx_k_352), 0, 1, 0, 0},
{&__pyx_kp_u_353, __pyx_k_353, sizeof(__pyx_k_353), 0, 1, 0, 0},
{&__pyx_kp_u_354, __pyx_k_354, sizeof(__pyx_k_354), 0, 1, 0, 0},
- {&__pyx_kp_u_355, __pyx_k_355, sizeof(__pyx_k_355), 0, 1, 0, 0},
{&__pyx_kp_u_356, __pyx_k_356, sizeof(__pyx_k_356), 0, 1, 0, 0},
- {&__pyx_kp_u_357, __pyx_k_357, sizeof(__pyx_k_357), 0, 1, 0, 0},
{&__pyx_kp_u_358, __pyx_k_358, sizeof(__pyx_k_358), 0, 1, 0, 0},
- {&__pyx_kp_u_359, __pyx_k_359, sizeof(__pyx_k_359), 0, 1, 0, 0},
- {&__pyx_kp_s_36, __pyx_k_36, sizeof(__pyx_k_36), 0, 0, 1, 0},
- {&__pyx_kp_u_360, __pyx_k_360, sizeof(__pyx_k_360), 0, 1, 0, 0},
- {&__pyx_kp_s_361, __pyx_k_361, sizeof(__pyx_k_361), 0, 0, 1, 0},
- {&__pyx_kp_u_363, __pyx_k_363, sizeof(__pyx_k_363), 0, 1, 0, 0},
+ {&__pyx_kp_s_359, __pyx_k_359, sizeof(__pyx_k_359), 0, 0, 1, 0},
+ {&__pyx_kp_u_36, __pyx_k_36, sizeof(__pyx_k_36), 0, 1, 0, 0},
+ {&__pyx_kp_s_363, __pyx_k_363, sizeof(__pyx_k_363), 0, 0, 1, 0},
{&__pyx_kp_u_364, __pyx_k_364, sizeof(__pyx_k_364), 0, 1, 0, 0},
+ {&__pyx_kp_u_365, __pyx_k_365, sizeof(__pyx_k_365), 0, 1, 0, 0},
+ {&__pyx_kp_u_366, __pyx_k_366, sizeof(__pyx_k_366), 0, 1, 0, 0},
+ {&__pyx_kp_b_368, __pyx_k_368, sizeof(__pyx_k_368), 0, 0, 0, 0},
+ {&__pyx_kp_u_368, __pyx_k_368, sizeof(__pyx_k_368), 0, 1, 0, 0},
{&__pyx_kp_u_369, __pyx_k_369, sizeof(__pyx_k_369), 0, 1, 0, 0},
{&__pyx_kp_s_37, __pyx_k_37, sizeof(__pyx_k_37), 0, 0, 1, 0},
{&__pyx_kp_u_370, __pyx_k_370, sizeof(__pyx_k_370), 0, 1, 0, 0},
- {&__pyx_kp_s_371, __pyx_k_371, sizeof(__pyx_k_371), 0, 0, 1, 0},
- {&__pyx_kp_s_372, __pyx_k_372, sizeof(__pyx_k_372), 0, 0, 1, 0},
- {&__pyx_kp_s_373, __pyx_k_373, sizeof(__pyx_k_373), 0, 0, 1, 0},
- {&__pyx_kp_s_374, __pyx_k_374, sizeof(__pyx_k_374), 0, 0, 1, 0},
- {&__pyx_kp_u_376, __pyx_k_376, sizeof(__pyx_k_376), 0, 1, 0, 0},
+ {&__pyx_kp_u_371, __pyx_k_371, sizeof(__pyx_k_371), 0, 1, 0, 0},
+ {&__pyx_kp_u_372, __pyx_k_372, sizeof(__pyx_k_372), 0, 1, 0, 0},
+ {&__pyx_kp_u_373, __pyx_k_373, sizeof(__pyx_k_373), 0, 1, 0, 0},
+ {&__pyx_kp_u_374, __pyx_k_374, sizeof(__pyx_k_374), 0, 1, 0, 0},
+ {&__pyx_kp_u_375, __pyx_k_375, sizeof(__pyx_k_375), 0, 1, 0, 0},
+ {&__pyx_kp_s_376, __pyx_k_376, sizeof(__pyx_k_376), 0, 0, 1, 0},
{&__pyx_kp_u_378, __pyx_k_378, sizeof(__pyx_k_378), 0, 1, 0, 0},
{&__pyx_kp_u_379, __pyx_k_379, sizeof(__pyx_k_379), 0, 1, 0, 0},
- {&__pyx_kp_u_38, __pyx_k_38, sizeof(__pyx_k_38), 0, 1, 0, 0},
- {&__pyx_kp_s_380, __pyx_k_380, sizeof(__pyx_k_380), 0, 0, 1, 0},
- {&__pyx_kp_u_381, __pyx_k_381, sizeof(__pyx_k_381), 0, 1, 0, 0},
+ {&__pyx_kp_s_38, __pyx_k_38, sizeof(__pyx_k_38), 0, 0, 1, 0},
{&__pyx_kp_u_384, __pyx_k_384, sizeof(__pyx_k_384), 0, 1, 0, 0},
- {&__pyx_kp_u_387, __pyx_k_387, sizeof(__pyx_k_387), 0, 1, 0, 0},
- {&__pyx_kp_u_389, __pyx_k_389, sizeof(__pyx_k_389), 0, 1, 0, 0},
+ {&__pyx_kp_u_385, __pyx_k_385, sizeof(__pyx_k_385), 0, 1, 0, 0},
+ {&__pyx_kp_s_386, __pyx_k_386, sizeof(__pyx_k_386), 0, 0, 1, 0},
+ {&__pyx_kp_s_387, __pyx_k_387, sizeof(__pyx_k_387), 0, 0, 1, 0},
+ {&__pyx_kp_s_388, __pyx_k_388, sizeof(__pyx_k_388), 0, 0, 1, 0},
+ {&__pyx_kp_s_389, __pyx_k_389, sizeof(__pyx_k_389), 0, 0, 1, 0},
{&__pyx_kp_s_39, __pyx_k_39, sizeof(__pyx_k_39), 0, 0, 1, 0},
- {&__pyx_kp_u_390, __pyx_k_390, sizeof(__pyx_k_390), 0, 1, 0, 0},
{&__pyx_kp_u_391, __pyx_k_391, sizeof(__pyx_k_391), 0, 1, 0, 0},
- {&__pyx_kp_s_392, __pyx_k_392, sizeof(__pyx_k_392), 0, 0, 1, 0},
- {&__pyx_n_s_393, __pyx_k_393, sizeof(__pyx_k_393), 0, 0, 1, 1},
+ {&__pyx_kp_u_393, __pyx_k_393, sizeof(__pyx_k_393), 0, 1, 0, 0},
{&__pyx_kp_u_394, __pyx_k_394, sizeof(__pyx_k_394), 0, 1, 0, 0},
- {&__pyx_kp_b_396, __pyx_k_396, sizeof(__pyx_k_396), 0, 0, 0, 0},
+ {&__pyx_kp_s_395, __pyx_k_395, sizeof(__pyx_k_395), 0, 0, 1, 0},
{&__pyx_kp_u_396, __pyx_k_396, sizeof(__pyx_k_396), 0, 1, 0, 0},
- {&__pyx_kp_u_397, __pyx_k_397, sizeof(__pyx_k_397), 0, 1, 0, 0},
- {&__pyx_kp_u_398, __pyx_k_398, sizeof(__pyx_k_398), 0, 1, 0, 0},
- {&__pyx_kp_s_399, __pyx_k_399, sizeof(__pyx_k_399), 0, 0, 1, 0},
+ {&__pyx_kp_u_399, __pyx_k_399, sizeof(__pyx_k_399), 0, 1, 0, 0},
{&__pyx_kp_u_4, __pyx_k_4, sizeof(__pyx_k_4), 0, 1, 0, 0},
- {&__pyx_n_s_40, __pyx_k_40, sizeof(__pyx_k_40), 0, 0, 1, 1},
- {&__pyx_n_s_400, __pyx_k_400, sizeof(__pyx_k_400), 0, 0, 1, 1},
- {&__pyx_kp_u_401, __pyx_k_401, sizeof(__pyx_k_401), 0, 1, 0, 0},
- {&__pyx_kp_s_402, __pyx_k_402, sizeof(__pyx_k_402), 0, 0, 1, 0},
- {&__pyx_kp_u_403, __pyx_k_403, sizeof(__pyx_k_403), 0, 1, 0, 0},
- {&__pyx_n_s_405, __pyx_k_405, sizeof(__pyx_k_405), 0, 0, 1, 1},
- {&__pyx_kp_u_407, __pyx_k_407, sizeof(__pyx_k_407), 0, 1, 0, 0},
- {&__pyx_kp_s_408, __pyx_k_408, sizeof(__pyx_k_408), 0, 0, 1, 0},
+ {&__pyx_kp_s_40, __pyx_k_40, sizeof(__pyx_k_40), 0, 0, 1, 0},
+ {&__pyx_kp_u_402, __pyx_k_402, sizeof(__pyx_k_402), 0, 1, 0, 0},
+ {&__pyx_kp_u_404, __pyx_k_404, sizeof(__pyx_k_404), 0, 1, 0, 0},
+ {&__pyx_kp_u_405, __pyx_k_405, sizeof(__pyx_k_405), 0, 1, 0, 0},
+ {&__pyx_kp_u_406, __pyx_k_406, sizeof(__pyx_k_406), 0, 1, 0, 0},
+ {&__pyx_kp_s_407, __pyx_k_407, sizeof(__pyx_k_407), 0, 0, 1, 0},
+ {&__pyx_n_s_408, __pyx_k_408, sizeof(__pyx_k_408), 0, 0, 1, 1},
+ {&__pyx_kp_u_409, __pyx_k_409, sizeof(__pyx_k_409), 0, 1, 0, 0},
{&__pyx_kp_s_41, __pyx_k_41, sizeof(__pyx_k_41), 0, 0, 1, 0},
- {&__pyx_n_s_410, __pyx_k_410, sizeof(__pyx_k_410), 0, 0, 1, 1},
+ {&__pyx_kp_b_411, __pyx_k_411, sizeof(__pyx_k_411), 0, 0, 0, 0},
{&__pyx_kp_u_411, __pyx_k_411, sizeof(__pyx_k_411), 0, 1, 0, 0},
- {&__pyx_kp_b_412, __pyx_k_412, sizeof(__pyx_k_412), 0, 0, 0, 0},
- {&__pyx_n_s_413, __pyx_k_413, sizeof(__pyx_k_413), 0, 0, 1, 1},
+ {&__pyx_kp_u_412, __pyx_k_412, sizeof(__pyx_k_412), 0, 1, 0, 0},
+ {&__pyx_kp_u_413, __pyx_k_413, sizeof(__pyx_k_413), 0, 1, 0, 0},
{&__pyx_kp_s_414, __pyx_k_414, sizeof(__pyx_k_414), 0, 0, 1, 0},
- {&__pyx_kp_b_415, __pyx_k_415, sizeof(__pyx_k_415), 0, 0, 0, 0},
+ {&__pyx_n_s_415, __pyx_k_415, sizeof(__pyx_k_415), 0, 0, 1, 1},
+ {&__pyx_kp_u_416, __pyx_k_416, sizeof(__pyx_k_416), 0, 1, 0, 0},
+ {&__pyx_kp_s_417, __pyx_k_417, sizeof(__pyx_k_417), 0, 0, 1, 0},
+ {&__pyx_kp_u_418, __pyx_k_418, sizeof(__pyx_k_418), 0, 1, 0, 0},
{&__pyx_kp_u_42, __pyx_k_42, sizeof(__pyx_k_42), 0, 1, 0, 0},
- {&__pyx_kp_u_43, __pyx_k_43, sizeof(__pyx_k_43), 0, 1, 0, 0},
- {&__pyx_kp_u_44, __pyx_k_44, sizeof(__pyx_k_44), 0, 1, 0, 0},
- {&__pyx_kp_u_45, __pyx_k_45, sizeof(__pyx_k_45), 0, 1, 0, 0},
- {&__pyx_kp_u_453, __pyx_k_453, sizeof(__pyx_k_453), 0, 1, 0, 0},
- {&__pyx_n_s_454, __pyx_k_454, sizeof(__pyx_k_454), 0, 0, 1, 1},
- {&__pyx_n_s_455, __pyx_k_455, sizeof(__pyx_k_455), 0, 0, 1, 1},
- {&__pyx_n_s_456, __pyx_k_456, sizeof(__pyx_k_456), 0, 0, 1, 1},
- {&__pyx_n_s_457, __pyx_k_457, sizeof(__pyx_k_457), 0, 0, 1, 1},
- {&__pyx_n_s_458, __pyx_k_458, sizeof(__pyx_k_458), 0, 0, 1, 1},
- {&__pyx_n_s_459, __pyx_k_459, sizeof(__pyx_k_459), 0, 0, 1, 1},
- {&__pyx_kp_s_46, __pyx_k_46, sizeof(__pyx_k_46), 0, 0, 1, 0},
+ {&__pyx_n_s_420, __pyx_k_420, sizeof(__pyx_k_420), 0, 0, 1, 1},
+ {&__pyx_kp_u_422, __pyx_k_422, sizeof(__pyx_k_422), 0, 1, 0, 0},
+ {&__pyx_kp_s_423, __pyx_k_423, sizeof(__pyx_k_423), 0, 0, 1, 0},
+ {&__pyx_n_s_425, __pyx_k_425, sizeof(__pyx_k_425), 0, 0, 1, 1},
+ {&__pyx_kp_u_426, __pyx_k_426, sizeof(__pyx_k_426), 0, 1, 0, 0},
+ {&__pyx_kp_b_427, __pyx_k_427, sizeof(__pyx_k_427), 0, 0, 0, 0},
+ {&__pyx_n_s_428, __pyx_k_428, sizeof(__pyx_k_428), 0, 0, 1, 1},
+ {&__pyx_kp_s_429, __pyx_k_429, sizeof(__pyx_k_429), 0, 0, 1, 0},
+ {&__pyx_kp_s_43, __pyx_k_43, sizeof(__pyx_k_43), 0, 0, 1, 0},
+ {&__pyx_kp_b_430, __pyx_k_430, sizeof(__pyx_k_430), 0, 0, 0, 0},
+ {&__pyx_n_s_44, __pyx_k_44, sizeof(__pyx_k_44), 0, 0, 1, 1},
+ {&__pyx_kp_s_45, __pyx_k_45, sizeof(__pyx_k_45), 0, 0, 1, 0},
{&__pyx_kp_u_46, __pyx_k_46, sizeof(__pyx_k_46), 0, 1, 0, 0},
- {&__pyx_n_s_460, __pyx_k_460, sizeof(__pyx_k_460), 0, 0, 1, 1},
- {&__pyx_n_s_461, __pyx_k_461, sizeof(__pyx_k_461), 0, 0, 1, 1},
- {&__pyx_n_s_462, __pyx_k_462, sizeof(__pyx_k_462), 0, 0, 1, 1},
- {&__pyx_n_s_463, __pyx_k_463, sizeof(__pyx_k_463), 0, 0, 1, 1},
- {&__pyx_n_s_464, __pyx_k_464, sizeof(__pyx_k_464), 0, 0, 1, 1},
- {&__pyx_n_s_465, __pyx_k_465, sizeof(__pyx_k_465), 0, 0, 1, 1},
- {&__pyx_kp_b_467, __pyx_k_467, sizeof(__pyx_k_467), 0, 0, 0, 0},
- {&__pyx_kp_b_468, __pyx_k_468, sizeof(__pyx_k_468), 0, 0, 0, 0},
- {&__pyx_kp_b_469, __pyx_k_469, sizeof(__pyx_k_469), 0, 0, 0, 0},
- {&__pyx_kp_b_470, __pyx_k_470, sizeof(__pyx_k_470), 0, 0, 0, 0},
- {&__pyx_kp_b_471, __pyx_k_471, sizeof(__pyx_k_471), 0, 0, 0, 0},
- {&__pyx_kp_b_472, __pyx_k_472, sizeof(__pyx_k_472), 0, 0, 0, 0},
- {&__pyx_kp_b_473, __pyx_k_473, sizeof(__pyx_k_473), 0, 0, 0, 0},
- {&__pyx_kp_b_474, __pyx_k_474, sizeof(__pyx_k_474), 0, 0, 0, 0},
- {&__pyx_kp_s_478, __pyx_k_478, sizeof(__pyx_k_478), 0, 0, 1, 0},
+ {&__pyx_kp_u_468, __pyx_k_468, sizeof(__pyx_k_468), 0, 1, 0, 0},
+ {&__pyx_n_s_469, __pyx_k_469, sizeof(__pyx_k_469), 0, 0, 1, 1},
+ {&__pyx_kp_u_47, __pyx_k_47, sizeof(__pyx_k_47), 0, 1, 0, 0},
+ {&__pyx_n_s_470, __pyx_k_470, sizeof(__pyx_k_470), 0, 0, 1, 1},
+ {&__pyx_n_s_471, __pyx_k_471, sizeof(__pyx_k_471), 0, 0, 1, 1},
+ {&__pyx_n_s_472, __pyx_k_472, sizeof(__pyx_k_472), 0, 0, 1, 1},
+ {&__pyx_n_s_473, __pyx_k_473, sizeof(__pyx_k_473), 0, 0, 1, 1},
+ {&__pyx_n_s_474, __pyx_k_474, sizeof(__pyx_k_474), 0, 0, 1, 1},
+ {&__pyx_n_s_475, __pyx_k_475, sizeof(__pyx_k_475), 0, 0, 1, 1},
+ {&__pyx_n_s_476, __pyx_k_476, sizeof(__pyx_k_476), 0, 0, 1, 1},
+ {&__pyx_n_s_477, __pyx_k_477, sizeof(__pyx_k_477), 0, 0, 1, 1},
+ {&__pyx_n_s_478, __pyx_k_478, sizeof(__pyx_k_478), 0, 0, 1, 1},
{&__pyx_n_s_479, __pyx_k_479, sizeof(__pyx_k_479), 0, 0, 1, 1},
- {&__pyx_n_s_483, __pyx_k_483, sizeof(__pyx_k_483), 0, 0, 1, 1},
- {&__pyx_kp_s_484, __pyx_k_484, sizeof(__pyx_k_484), 0, 0, 1, 0},
- {&__pyx_kp_s_485, __pyx_k_485, sizeof(__pyx_k_485), 0, 0, 1, 0},
- {&__pyx_kp_s_486, __pyx_k_486, sizeof(__pyx_k_486), 0, 0, 1, 0},
- {&__pyx_kp_u_487, __pyx_k_487, sizeof(__pyx_k_487), 0, 1, 0, 0},
- {&__pyx_kp_u_489, __pyx_k_489, sizeof(__pyx_k_489), 0, 1, 0, 0},
- {&__pyx_kp_u_490, __pyx_k_490, sizeof(__pyx_k_490), 0, 1, 0, 0},
- {&__pyx_kp_s_492, __pyx_k_492, sizeof(__pyx_k_492), 0, 0, 1, 0},
- {&__pyx_kp_s_496, __pyx_k_496, sizeof(__pyx_k_496), 0, 0, 1, 0},
- {&__pyx_kp_s_497, __pyx_k_497, sizeof(__pyx_k_497), 0, 0, 1, 0},
- {&__pyx_kp_s_498, __pyx_k_498, sizeof(__pyx_k_498), 0, 0, 1, 0},
+ {&__pyx_kp_u_48, __pyx_k_48, sizeof(__pyx_k_48), 0, 1, 0, 0},
+ {&__pyx_n_s_480, __pyx_k_480, sizeof(__pyx_k_480), 0, 0, 1, 1},
+ {&__pyx_kp_b_482, __pyx_k_482, sizeof(__pyx_k_482), 0, 0, 0, 0},
+ {&__pyx_kp_b_483, __pyx_k_483, sizeof(__pyx_k_483), 0, 0, 0, 0},
+ {&__pyx_kp_b_484, __pyx_k_484, sizeof(__pyx_k_484), 0, 0, 0, 0},
+ {&__pyx_kp_b_485, __pyx_k_485, sizeof(__pyx_k_485), 0, 0, 0, 0},
+ {&__pyx_kp_b_486, __pyx_k_486, sizeof(__pyx_k_486), 0, 0, 0, 0},
+ {&__pyx_kp_b_487, __pyx_k_487, sizeof(__pyx_k_487), 0, 0, 0, 0},
+ {&__pyx_kp_b_488, __pyx_k_488, sizeof(__pyx_k_488), 0, 0, 0, 0},
+ {&__pyx_kp_b_489, __pyx_k_489, sizeof(__pyx_k_489), 0, 0, 0, 0},
+ {&__pyx_kp_u_49, __pyx_k_49, sizeof(__pyx_k_49), 0, 1, 0, 0},
+ {&__pyx_kp_s_493, __pyx_k_493, sizeof(__pyx_k_493), 0, 0, 1, 0},
+ {&__pyx_n_s_494, __pyx_k_494, sizeof(__pyx_k_494), 0, 0, 1, 1},
+ {&__pyx_n_s_498, __pyx_k_498, sizeof(__pyx_k_498), 0, 0, 1, 1},
{&__pyx_kp_s_499, __pyx_k_499, sizeof(__pyx_k_499), 0, 0, 1, 0},
{&__pyx_kp_b_5, __pyx_k_5, sizeof(__pyx_k_5), 0, 0, 0, 0},
{&__pyx_kp_u_5, __pyx_k_5, sizeof(__pyx_k_5), 0, 1, 0, 0},
- {&__pyx_kp_u_500, __pyx_k_500, sizeof(__pyx_k_500), 0, 1, 0, 0},
+ {&__pyx_kp_s_50, __pyx_k_50, sizeof(__pyx_k_50), 0, 0, 1, 0},
+ {&__pyx_kp_u_50, __pyx_k_50, sizeof(__pyx_k_50), 0, 1, 0, 0},
+ {&__pyx_kp_s_500, __pyx_k_500, sizeof(__pyx_k_500), 0, 0, 1, 0},
+ {&__pyx_kp_s_501, __pyx_k_501, sizeof(__pyx_k_501), 0, 0, 1, 0},
{&__pyx_kp_u_502, __pyx_k_502, sizeof(__pyx_k_502), 0, 1, 0, 0},
{&__pyx_kp_u_504, __pyx_k_504, sizeof(__pyx_k_504), 0, 1, 0, 0},
{&__pyx_kp_u_505, __pyx_k_505, sizeof(__pyx_k_505), 0, 1, 0, 0},
- {&__pyx_kp_u_506, __pyx_k_506, sizeof(__pyx_k_506), 0, 1, 0, 0},
- {&__pyx_kp_u_507, __pyx_k_507, sizeof(__pyx_k_507), 0, 1, 0, 0},
- {&__pyx_kp_u_508, __pyx_k_508, sizeof(__pyx_k_508), 0, 1, 0, 0},
- {&__pyx_kp_u_509, __pyx_k_509, sizeof(__pyx_k_509), 0, 1, 0, 0},
- {&__pyx_kp_u_510, __pyx_k_510, sizeof(__pyx_k_510), 0, 1, 0, 0},
- {&__pyx_kp_u_511, __pyx_k_511, sizeof(__pyx_k_511), 0, 1, 0, 0},
- {&__pyx_kp_u_512, __pyx_k_512, sizeof(__pyx_k_512), 0, 1, 0, 0},
- {&__pyx_kp_u_513, __pyx_k_513, sizeof(__pyx_k_513), 0, 1, 0, 0},
- {&__pyx_kp_u_514, __pyx_k_514, sizeof(__pyx_k_514), 0, 1, 0, 0},
- {&__pyx_kp_u_516, __pyx_k_516, sizeof(__pyx_k_516), 0, 1, 0, 0},
- {&__pyx_kp_u_518, __pyx_k_518, sizeof(__pyx_k_518), 0, 1, 0, 0},
- {&__pyx_kp_u_54, __pyx_k_54, sizeof(__pyx_k_54), 0, 1, 0, 0},
- {&__pyx_kp_s_553, __pyx_k_553, sizeof(__pyx_k_553), 0, 0, 1, 0},
- {&__pyx_kp_s_554, __pyx_k_554, sizeof(__pyx_k_554), 0, 0, 1, 0},
- {&__pyx_kp_s_555, __pyx_k_555, sizeof(__pyx_k_555), 0, 0, 1, 0},
- {&__pyx_kp_s_558, __pyx_k_558, sizeof(__pyx_k_558), 0, 0, 1, 0},
- {&__pyx_kp_s_56, __pyx_k_56, sizeof(__pyx_k_56), 0, 0, 1, 0},
- {&__pyx_kp_s_561, __pyx_k_561, sizeof(__pyx_k_561), 0, 0, 1, 0},
- {&__pyx_n_s_562, __pyx_k_562, sizeof(__pyx_k_562), 0, 0, 1, 1},
- {&__pyx_kp_s_563, __pyx_k_563, sizeof(__pyx_k_563), 0, 0, 1, 0},
- {&__pyx_kp_s_564, __pyx_k_564, sizeof(__pyx_k_564), 0, 0, 1, 0},
- {&__pyx_kp_s_565, __pyx_k_565, sizeof(__pyx_k_565), 0, 0, 1, 0},
- {&__pyx_kp_u_57, __pyx_k_57, sizeof(__pyx_k_57), 0, 1, 0, 0},
- {&__pyx_kp_s_571, __pyx_k_571, sizeof(__pyx_k_571), 0, 0, 1, 0},
- {&__pyx_n_s_572, __pyx_k_572, sizeof(__pyx_k_572), 0, 0, 1, 1},
+ {&__pyx_kp_s_507, __pyx_k_507, sizeof(__pyx_k_507), 0, 0, 1, 0},
+ {&__pyx_kp_s_511, __pyx_k_511, sizeof(__pyx_k_511), 0, 0, 1, 0},
+ {&__pyx_kp_s_512, __pyx_k_512, sizeof(__pyx_k_512), 0, 0, 1, 0},
+ {&__pyx_kp_s_513, __pyx_k_513, sizeof(__pyx_k_513), 0, 0, 1, 0},
+ {&__pyx_kp_s_514, __pyx_k_514, sizeof(__pyx_k_514), 0, 0, 1, 0},
+ {&__pyx_kp_u_515, __pyx_k_515, sizeof(__pyx_k_515), 0, 1, 0, 0},
+ {&__pyx_kp_u_517, __pyx_k_517, sizeof(__pyx_k_517), 0, 1, 0, 0},
+ {&__pyx_kp_u_519, __pyx_k_519, sizeof(__pyx_k_519), 0, 1, 0, 0},
+ {&__pyx_kp_u_520, __pyx_k_520, sizeof(__pyx_k_520), 0, 1, 0, 0},
+ {&__pyx_kp_u_521, __pyx_k_521, sizeof(__pyx_k_521), 0, 1, 0, 0},
+ {&__pyx_kp_u_522, __pyx_k_522, sizeof(__pyx_k_522), 0, 1, 0, 0},
+ {&__pyx_kp_u_523, __pyx_k_523, sizeof(__pyx_k_523), 0, 1, 0, 0},
+ {&__pyx_kp_u_524, __pyx_k_524, sizeof(__pyx_k_524), 0, 1, 0, 0},
+ {&__pyx_kp_u_525, __pyx_k_525, sizeof(__pyx_k_525), 0, 1, 0, 0},
+ {&__pyx_kp_u_526, __pyx_k_526, sizeof(__pyx_k_526), 0, 1, 0, 0},
+ {&__pyx_kp_u_527, __pyx_k_527, sizeof(__pyx_k_527), 0, 1, 0, 0},
+ {&__pyx_kp_u_528, __pyx_k_528, sizeof(__pyx_k_528), 0, 1, 0, 0},
+ {&__pyx_kp_u_529, __pyx_k_529, sizeof(__pyx_k_529), 0, 1, 0, 0},
+ {&__pyx_kp_u_531, __pyx_k_531, sizeof(__pyx_k_531), 0, 1, 0, 0},
+ {&__pyx_kp_u_533, __pyx_k_533, sizeof(__pyx_k_533), 0, 1, 0, 0},
+ {&__pyx_kp_s_568, __pyx_k_568, sizeof(__pyx_k_568), 0, 0, 1, 0},
+ {&__pyx_kp_s_569, __pyx_k_569, sizeof(__pyx_k_569), 0, 0, 1, 0},
+ {&__pyx_kp_s_570, __pyx_k_570, sizeof(__pyx_k_570), 0, 0, 1, 0},
{&__pyx_kp_s_573, __pyx_k_573, sizeof(__pyx_k_573), 0, 0, 1, 0},
{&__pyx_kp_s_576, __pyx_k_576, sizeof(__pyx_k_576), 0, 0, 1, 0},
+ {&__pyx_n_s_577, __pyx_k_577, sizeof(__pyx_k_577), 0, 0, 1, 1},
+ {&__pyx_kp_s_578, __pyx_k_578, sizeof(__pyx_k_578), 0, 0, 1, 0},
+ {&__pyx_kp_s_579, __pyx_k_579, sizeof(__pyx_k_579), 0, 0, 1, 0},
{&__pyx_kp_u_58, __pyx_k_58, sizeof(__pyx_k_58), 0, 1, 0, 0},
- {&__pyx_kp_s_581, __pyx_k_581, sizeof(__pyx_k_581), 0, 0, 1, 0},
- {&__pyx_kp_s_584, __pyx_k_584, sizeof(__pyx_k_584), 0, 0, 1, 0},
- {&__pyx_kp_u_59, __pyx_k_59, sizeof(__pyx_k_59), 0, 1, 0, 0},
+ {&__pyx_kp_s_580, __pyx_k_580, sizeof(__pyx_k_580), 0, 0, 1, 0},
+ {&__pyx_kp_s_586, __pyx_k_586, sizeof(__pyx_k_586), 0, 0, 1, 0},
+ {&__pyx_n_s_587, __pyx_k_587, sizeof(__pyx_k_587), 0, 0, 1, 1},
+ {&__pyx_kp_s_588, __pyx_k_588, sizeof(__pyx_k_588), 0, 0, 1, 0},
{&__pyx_kp_s_591, __pyx_k_591, sizeof(__pyx_k_591), 0, 0, 1, 0},
- {&__pyx_kp_s_592, __pyx_k_592, sizeof(__pyx_k_592), 0, 0, 1, 0},
- {&__pyx_kp_s_593, __pyx_k_593, sizeof(__pyx_k_593), 0, 0, 1, 0},
- {&__pyx_kp_s_594, __pyx_k_594, sizeof(__pyx_k_594), 0, 0, 1, 0},
- {&__pyx_kp_b_595, __pyx_k_595, sizeof(__pyx_k_595), 0, 0, 0, 0},
- {&__pyx_kp_b_596, __pyx_k_596, sizeof(__pyx_k_596), 0, 0, 0, 0},
- {&__pyx_kp_b_597, __pyx_k_597, sizeof(__pyx_k_597), 0, 0, 0, 0},
- {&__pyx_kp_b_598, __pyx_k_598, sizeof(__pyx_k_598), 0, 0, 0, 0},
- {&__pyx_kp_b_599, __pyx_k_599, sizeof(__pyx_k_599), 0, 0, 0, 0},
- {&__pyx_kp_u_60, __pyx_k_60, sizeof(__pyx_k_60), 0, 1, 0, 0},
- {&__pyx_kp_b_600, __pyx_k_600, sizeof(__pyx_k_600), 0, 0, 0, 0},
- {&__pyx_kp_b_601, __pyx_k_601, sizeof(__pyx_k_601), 0, 0, 0, 0},
- {&__pyx_kp_b_602, __pyx_k_602, sizeof(__pyx_k_602), 0, 0, 0, 0},
- {&__pyx_kp_b_603, __pyx_k_603, sizeof(__pyx_k_603), 0, 0, 0, 0},
- {&__pyx_kp_b_604, __pyx_k_604, sizeof(__pyx_k_604), 0, 0, 0, 0},
- {&__pyx_kp_b_605, __pyx_k_605, sizeof(__pyx_k_605), 0, 0, 0, 0},
- {&__pyx_kp_b_606, __pyx_k_606, sizeof(__pyx_k_606), 0, 0, 0, 0},
- {&__pyx_kp_b_607, __pyx_k_607, sizeof(__pyx_k_607), 0, 0, 0, 0},
- {&__pyx_kp_b_608, __pyx_k_608, sizeof(__pyx_k_608), 0, 0, 0, 0},
- {&__pyx_kp_b_609, __pyx_k_609, sizeof(__pyx_k_609), 0, 0, 0, 0},
+ {&__pyx_kp_s_596, __pyx_k_596, sizeof(__pyx_k_596), 0, 0, 1, 0},
+ {&__pyx_kp_s_599, __pyx_k_599, sizeof(__pyx_k_599), 0, 0, 1, 0},
+ {&__pyx_kp_s_60, __pyx_k_60, sizeof(__pyx_k_60), 0, 0, 1, 0},
+ {&__pyx_kp_s_606, __pyx_k_606, sizeof(__pyx_k_606), 0, 0, 1, 0},
+ {&__pyx_kp_s_607, __pyx_k_607, sizeof(__pyx_k_607), 0, 0, 1, 0},
+ {&__pyx_kp_s_608, __pyx_k_608, sizeof(__pyx_k_608), 0, 0, 1, 0},
+ {&__pyx_kp_s_609, __pyx_k_609, sizeof(__pyx_k_609), 0, 0, 1, 0},
{&__pyx_kp_u_61, __pyx_k_61, sizeof(__pyx_k_61), 0, 1, 0, 0},
{&__pyx_kp_b_610, __pyx_k_610, sizeof(__pyx_k_610), 0, 0, 0, 0},
{&__pyx_kp_b_611, __pyx_k_611, sizeof(__pyx_k_611), 0, 0, 0, 0},
{&__pyx_kp_b_615, __pyx_k_615, sizeof(__pyx_k_615), 0, 0, 0, 0},
{&__pyx_kp_b_616, __pyx_k_616, sizeof(__pyx_k_616), 0, 0, 0, 0},
{&__pyx_kp_b_617, __pyx_k_617, sizeof(__pyx_k_617), 0, 0, 0, 0},
+ {&__pyx_kp_b_618, __pyx_k_618, sizeof(__pyx_k_618), 0, 0, 0, 0},
+ {&__pyx_kp_b_619, __pyx_k_619, sizeof(__pyx_k_619), 0, 0, 0, 0},
{&__pyx_kp_u_62, __pyx_k_62, sizeof(__pyx_k_62), 0, 1, 0, 0},
- {&__pyx_kp_s_620, __pyx_k_620, sizeof(__pyx_k_620), 0, 0, 1, 0},
- {&__pyx_n_s_623, __pyx_k_623, sizeof(__pyx_k_623), 0, 0, 1, 1},
- {&__pyx_kp_s_626, __pyx_k_626, sizeof(__pyx_k_626), 0, 0, 1, 0},
+ {&__pyx_kp_b_620, __pyx_k_620, sizeof(__pyx_k_620), 0, 0, 0, 0},
+ {&__pyx_kp_b_621, __pyx_k_621, sizeof(__pyx_k_621), 0, 0, 0, 0},
+ {&__pyx_kp_b_622, __pyx_k_622, sizeof(__pyx_k_622), 0, 0, 0, 0},
+ {&__pyx_kp_b_623, __pyx_k_623, sizeof(__pyx_k_623), 0, 0, 0, 0},
+ {&__pyx_kp_b_624, __pyx_k_624, sizeof(__pyx_k_624), 0, 0, 0, 0},
+ {&__pyx_kp_b_625, __pyx_k_625, sizeof(__pyx_k_625), 0, 0, 0, 0},
+ {&__pyx_kp_b_626, __pyx_k_626, sizeof(__pyx_k_626), 0, 0, 0, 0},
{&__pyx_kp_b_627, __pyx_k_627, sizeof(__pyx_k_627), 0, 0, 0, 0},
+ {&__pyx_kp_b_628, __pyx_k_628, sizeof(__pyx_k_628), 0, 0, 0, 0},
{&__pyx_kp_b_629, __pyx_k_629, sizeof(__pyx_k_629), 0, 0, 0, 0},
{&__pyx_kp_u_63, __pyx_k_63, sizeof(__pyx_k_63), 0, 1, 0, 0},
- {&__pyx_kp_s_631, __pyx_k_631, sizeof(__pyx_k_631), 0, 0, 1, 0},
- {&__pyx_kp_s_632, __pyx_k_632, sizeof(__pyx_k_632), 0, 0, 1, 0},
- {&__pyx_kp_s_633, __pyx_k_633, sizeof(__pyx_k_633), 0, 0, 1, 0},
- {&__pyx_kp_s_634, __pyx_k_634, sizeof(__pyx_k_634), 0, 0, 1, 0},
+ {&__pyx_kp_b_630, __pyx_k_630, sizeof(__pyx_k_630), 0, 0, 0, 0},
+ {&__pyx_kp_b_631, __pyx_k_631, sizeof(__pyx_k_631), 0, 0, 0, 0},
+ {&__pyx_kp_b_632, __pyx_k_632, sizeof(__pyx_k_632), 0, 0, 0, 0},
{&__pyx_kp_s_635, __pyx_k_635, sizeof(__pyx_k_635), 0, 0, 1, 0},
- {&__pyx_kp_s_638, __pyx_k_638, sizeof(__pyx_k_638), 0, 0, 1, 0},
+ {&__pyx_n_s_638, __pyx_k_638, sizeof(__pyx_k_638), 0, 0, 1, 1},
{&__pyx_kp_u_64, __pyx_k_64, sizeof(__pyx_k_64), 0, 1, 0, 0},
- {&__pyx_n_s_641, __pyx_k_641, sizeof(__pyx_k_641), 0, 0, 1, 1},
- {&__pyx_kp_u_642, __pyx_k_642, sizeof(__pyx_k_642), 0, 1, 0, 0},
- {&__pyx_kp_s_644, __pyx_k_644, sizeof(__pyx_k_644), 0, 0, 1, 0},
- {&__pyx_kp_s_645, __pyx_k_645, sizeof(__pyx_k_645), 0, 0, 1, 0},
+ {&__pyx_kp_s_641, __pyx_k_641, sizeof(__pyx_k_641), 0, 0, 1, 0},
+ {&__pyx_kp_b_642, __pyx_k_642, sizeof(__pyx_k_642), 0, 0, 0, 0},
+ {&__pyx_kp_b_644, __pyx_k_644, sizeof(__pyx_k_644), 0, 0, 0, 0},
{&__pyx_kp_s_646, __pyx_k_646, sizeof(__pyx_k_646), 0, 0, 1, 0},
{&__pyx_kp_s_647, __pyx_k_647, sizeof(__pyx_k_647), 0, 0, 1, 0},
{&__pyx_kp_s_648, __pyx_k_648, sizeof(__pyx_k_648), 0, 0, 1, 0},
{&__pyx_kp_s_649, __pyx_k_649, sizeof(__pyx_k_649), 0, 0, 1, 0},
{&__pyx_kp_u_65, __pyx_k_65, sizeof(__pyx_k_65), 0, 1, 0, 0},
{&__pyx_kp_s_650, __pyx_k_650, sizeof(__pyx_k_650), 0, 0, 1, 0},
- {&__pyx_kp_s_651, __pyx_k_651, sizeof(__pyx_k_651), 0, 0, 1, 0},
- {&__pyx_kp_s_652, __pyx_k_652, sizeof(__pyx_k_652), 0, 0, 1, 0},
{&__pyx_kp_s_653, __pyx_k_653, sizeof(__pyx_k_653), 0, 0, 1, 0},
- {&__pyx_kp_u_654, __pyx_k_654, sizeof(__pyx_k_654), 0, 1, 0, 0},
- {&__pyx_kp_s_656, __pyx_k_656, sizeof(__pyx_k_656), 0, 0, 1, 0},
- {&__pyx_kp_s_657, __pyx_k_657, sizeof(__pyx_k_657), 0, 0, 1, 0},
- {&__pyx_kp_s_658, __pyx_k_658, sizeof(__pyx_k_658), 0, 0, 1, 0},
- {&__pyx_kp_u_659, __pyx_k_659, sizeof(__pyx_k_659), 0, 1, 0, 0},
+ {&__pyx_n_s_656, __pyx_k_656, sizeof(__pyx_k_656), 0, 0, 1, 1},
+ {&__pyx_kp_u_657, __pyx_k_657, sizeof(__pyx_k_657), 0, 1, 0, 0},
+ {&__pyx_kp_s_659, __pyx_k_659, sizeof(__pyx_k_659), 0, 0, 1, 0},
{&__pyx_kp_u_66, __pyx_k_66, sizeof(__pyx_k_66), 0, 1, 0, 0},
- {&__pyx_kp_u_660, __pyx_k_660, sizeof(__pyx_k_660), 0, 1, 0, 0},
+ {&__pyx_kp_s_660, __pyx_k_660, sizeof(__pyx_k_660), 0, 0, 1, 0},
+ {&__pyx_kp_s_661, __pyx_k_661, sizeof(__pyx_k_661), 0, 0, 1, 0},
+ {&__pyx_kp_s_662, __pyx_k_662, sizeof(__pyx_k_662), 0, 0, 1, 0},
+ {&__pyx_kp_s_663, __pyx_k_663, sizeof(__pyx_k_663), 0, 0, 1, 0},
+ {&__pyx_kp_s_664, __pyx_k_664, sizeof(__pyx_k_664), 0, 0, 1, 0},
+ {&__pyx_kp_s_665, __pyx_k_665, sizeof(__pyx_k_665), 0, 0, 1, 0},
+ {&__pyx_kp_s_666, __pyx_k_666, sizeof(__pyx_k_666), 0, 0, 1, 0},
+ {&__pyx_kp_s_667, __pyx_k_667, sizeof(__pyx_k_667), 0, 0, 1, 0},
+ {&__pyx_kp_s_668, __pyx_k_668, sizeof(__pyx_k_668), 0, 0, 1, 0},
+ {&__pyx_kp_u_669, __pyx_k_669, sizeof(__pyx_k_669), 0, 1, 0, 0},
{&__pyx_kp_u_67, __pyx_k_67, sizeof(__pyx_k_67), 0, 1, 0, 0},
+ {&__pyx_kp_s_671, __pyx_k_671, sizeof(__pyx_k_671), 0, 0, 1, 0},
+ {&__pyx_kp_s_672, __pyx_k_672, sizeof(__pyx_k_672), 0, 0, 1, 0},
+ {&__pyx_kp_s_673, __pyx_k_673, sizeof(__pyx_k_673), 0, 0, 1, 0},
+ {&__pyx_kp_u_674, __pyx_k_674, sizeof(__pyx_k_674), 0, 1, 0, 0},
+ {&__pyx_kp_u_675, __pyx_k_675, sizeof(__pyx_k_675), 0, 1, 0, 0},
{&__pyx_kp_u_68, __pyx_k_68, sizeof(__pyx_k_68), 0, 1, 0, 0},
{&__pyx_kp_u_69, __pyx_k_69, sizeof(__pyx_k_69), 0, 1, 0, 0},
{&__pyx_kp_u_70, __pyx_k_70, sizeof(__pyx_k_70), 0, 1, 0, 0},
{&__pyx_kp_u_71, __pyx_k_71, sizeof(__pyx_k_71), 0, 1, 0, 0},
- {&__pyx_kp_u_76, __pyx_k_76, sizeof(__pyx_k_76), 0, 1, 0, 0},
- {&__pyx_kp_u_77, __pyx_k_77, sizeof(__pyx_k_77), 0, 1, 0, 0},
- {&__pyx_n_s_78, __pyx_k_78, sizeof(__pyx_k_78), 0, 0, 1, 1},
- {&__pyx_kp_u_79, __pyx_k_79, sizeof(__pyx_k_79), 0, 1, 0, 0},
+ {&__pyx_kp_u_72, __pyx_k_72, sizeof(__pyx_k_72), 0, 1, 0, 0},
+ {&__pyx_kp_u_73, __pyx_k_73, sizeof(__pyx_k_73), 0, 1, 0, 0},
+ {&__pyx_kp_u_74, __pyx_k_74, sizeof(__pyx_k_74), 0, 1, 0, 0},
+ {&__pyx_kp_u_75, __pyx_k_75, sizeof(__pyx_k_75), 0, 1, 0, 0},
{&__pyx_kp_u_80, __pyx_k_80, sizeof(__pyx_k_80), 0, 1, 0, 0},
{&__pyx_kp_u_81, __pyx_k_81, sizeof(__pyx_k_81), 0, 1, 0, 0},
- {&__pyx_kp_u_82, __pyx_k_82, sizeof(__pyx_k_82), 0, 1, 0, 0},
+ {&__pyx_n_s_82, __pyx_k_82, sizeof(__pyx_k_82), 0, 0, 1, 1},
{&__pyx_kp_u_83, __pyx_k_83, sizeof(__pyx_k_83), 0, 1, 0, 0},
{&__pyx_kp_u_84, __pyx_k_84, sizeof(__pyx_k_84), 0, 1, 0, 0},
- {&__pyx_n_s_85, __pyx_k_85, sizeof(__pyx_k_85), 0, 0, 1, 1},
+ {&__pyx_kp_u_85, __pyx_k_85, sizeof(__pyx_k_85), 0, 1, 0, 0},
{&__pyx_kp_u_86, __pyx_k_86, sizeof(__pyx_k_86), 0, 1, 0, 0},
{&__pyx_kp_u_87, __pyx_k_87, sizeof(__pyx_k_87), 0, 1, 0, 0},
{&__pyx_kp_u_88, __pyx_k_88, sizeof(__pyx_k_88), 0, 1, 0, 0},
{&__pyx_n_s_89, __pyx_k_89, sizeof(__pyx_k_89), 0, 0, 1, 1},
- {&__pyx_kp_s_94, __pyx_k_94, sizeof(__pyx_k_94), 0, 0, 1, 0},
- {&__pyx_kp_s_96, __pyx_k_96, sizeof(__pyx_k_96), 0, 0, 1, 0},
+ {&__pyx_kp_u_90, __pyx_k_90, sizeof(__pyx_k_90), 0, 1, 0, 0},
+ {&__pyx_kp_u_91, __pyx_k_91, sizeof(__pyx_k_91), 0, 1, 0, 0},
+ {&__pyx_kp_u_92, __pyx_k_92, sizeof(__pyx_k_92), 0, 1, 0, 0},
+ {&__pyx_n_s_93, __pyx_k_93, sizeof(__pyx_k_93), 0, 0, 1, 1},
{&__pyx_kp_s_98, __pyx_k_98, sizeof(__pyx_k_98), 0, 0, 1, 0},
{&__pyx_n_b__A, __pyx_k__A, sizeof(__pyx_k__A), 0, 0, 0, 1},
{&__pyx_n_b__ASCII, __pyx_k__ASCII, sizeof(__pyx_k__ASCII), 0, 0, 0, 1},
{&__pyx_n_s____exit__, __pyx_k____exit__, sizeof(__pyx_k____exit__), 0, 0, 1, 1},
{&__pyx_n_s____getattribute__, __pyx_k____getattribute__, sizeof(__pyx_k____getattribute__), 0, 0, 1, 1},
{&__pyx_n_s____hash__, __pyx_k____hash__, sizeof(__pyx_k____hash__), 0, 0, 1, 1},
+ {&__pyx_n_s____import__, __pyx_k____import__, sizeof(__pyx_k____import__), 0, 0, 1, 1},
{&__pyx_n_s____init__, __pyx_k____init__, sizeof(__pyx_k____init__), 0, 0, 1, 1},
{&__pyx_n_s____main__, __pyx_k____main__, sizeof(__pyx_k____main__), 0, 0, 1, 1},
+ {&__pyx_n_s____metaclass__, __pyx_k____metaclass__, sizeof(__pyx_k____metaclass__), 0, 0, 1, 1},
{&__pyx_n_s____module__, __pyx_k____module__, sizeof(__pyx_k____module__), 0, 0, 1, 1},
{&__pyx_n_s____name__, __pyx_k____name__, sizeof(__pyx_k____name__), 0, 0, 1, 1},
{&__pyx_n_s____next__, __pyx_k____next__, sizeof(__pyx_k____next__), 0, 0, 1, 1},
+ {&__pyx_n_s____qualname__, __pyx_k____qualname__, sizeof(__pyx_k____qualname__), 0, 0, 1, 1},
{&__pyx_n_s____test__, __pyx_k____test__, sizeof(__pyx_k____test__), 0, 0, 1, 1},
{&__pyx_n_s____unicode__, __pyx_k____unicode__, sizeof(__pyx_k____unicode__), 0, 0, 1, 1},
{&__pyx_n_s____version__, __pyx_k____version__, sizeof(__pyx_k____version__), 0, 0, 1, 1},
{&__pyx_n_s__prefix, __pyx_k__prefix, sizeof(__pyx_k__prefix), 0, 0, 1, 1},
{&__pyx_n_s__prefix_utf, __pyx_k__prefix_utf, sizeof(__pyx_k__prefix_utf), 0, 0, 1, 1},
{&__pyx_n_s__pretty_print, __pyx_k__pretty_print, sizeof(__pyx_k__pretty_print), 0, 0, 1, 1},
+ {&__pyx_n_s__print, __pyx_k__print, sizeof(__pyx_k__print), 0, 0, 1, 1},
{&__pyx_n_s__profile_run, __pyx_k__profile_run, sizeof(__pyx_k__profile_run), 0, 0, 1, 1},
{&__pyx_n_s__public_id, __pyx_k__public_id, sizeof(__pyx_k__public_id), 0, 0, 1, 1},
{&__pyx_n_b__py, __pyx_k__py, sizeof(__pyx_k__py), 0, 0, 0, 1},
{&__pyx_n_s__search, __pyx_k__search, sizeof(__pyx_k__search), 0, 0, 1, 1},
{&__pyx_n_s__self, __pyx_k__self, sizeof(__pyx_k__self), 0, 0, 1, 1},
{&__pyx_n_s__self_node, __pyx_k__self_node, sizeof(__pyx_k__self_node), 0, 0, 1, 1},
+ {&__pyx_n_s__send, __pyx_k__send, sizeof(__pyx_k__send), 0, 0, 1, 1},
{&__pyx_n_s__seq, __pyx_k__seq, sizeof(__pyx_k__seq), 0, 0, 1, 1},
{&__pyx_n_s__set_default_parser, __pyx_k__set_default_parser, sizeof(__pyx_k__set_default_parser), 0, 0, 1, 1},
{&__pyx_n_s__smart_strings, __pyx_k__smart_strings, sizeof(__pyx_k__smart_strings), 0, 0, 1, 1},
{&__pyx_n_b__test, __pyx_k__test, sizeof(__pyx_k__test), 0, 0, 0, 1},
{&__pyx_n_s__test, __pyx_k__test, sizeof(__pyx_k__test), 0, 0, 1, 1},
{&__pyx_n_s__text, __pyx_k__text, sizeof(__pyx_k__text), 0, 0, 1, 1},
+ {&__pyx_n_s__throw, __pyx_k__throw, sizeof(__pyx_k__throw), 0, 0, 1, 1},
{&__pyx_n_s__tostring, __pyx_k__tostring, sizeof(__pyx_k__tostring), 0, 0, 1, 1},
{&__pyx_n_s__tostringlist, __pyx_k__tostringlist, sizeof(__pyx_k__tostringlist), 0, 0, 1, 1},
{&__pyx_n_s__tounicode, __pyx_k__tounicode, sizeof(__pyx_k__tounicode), 0, 0, 1, 1},
{0, 0, 0, 0, 0, 0, 0}
};
static int __Pyx_InitCachedBuiltins(void) {
- __pyx_builtin_ImportError = __Pyx_GetName(__pyx_b, __pyx_n_s__ImportError); if (!__pyx_builtin_ImportError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_builtin_AttributeError = __Pyx_GetName(__pyx_b, __pyx_n_s__AttributeError); if (!__pyx_builtin_AttributeError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_builtin_Exception = __Pyx_GetName(__pyx_b, __pyx_n_s__Exception); if (!__pyx_builtin_Exception) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_builtin_SyntaxError = __Pyx_GetName(__pyx_b, __pyx_n_s__SyntaxError); if (!__pyx_builtin_SyntaxError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_builtin_object = __Pyx_GetName(__pyx_b, __pyx_n_s__object); if (!__pyx_builtin_object) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 653; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_builtin_staticmethod = __Pyx_GetName(__pyx_b, __pyx_n_s__staticmethod); if (!__pyx_builtin_staticmethod) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 431; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_builtin_ValueError = __Pyx_GetName(__pyx_b, __pyx_n_s__ValueError); if (!__pyx_builtin_ValueError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_builtin_super = __Pyx_GetName(__pyx_b, __pyx_n_s__super); if (!__pyx_builtin_super) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_builtin_MemoryError = __Pyx_GetName(__pyx_b, __pyx_n_s__MemoryError); if (!__pyx_builtin_MemoryError) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 265; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_builtin_id = __Pyx_GetName(__pyx_b, __pyx_n_s__id); if (!__pyx_builtin_id) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_builtin_TypeError = __Pyx_GetName(__pyx_b, __pyx_n_s__TypeError); if (!__pyx_builtin_TypeError) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_builtin_sorted = __Pyx_GetName(__pyx_b, __pyx_n_s__sorted); if (!__pyx_builtin_sorted) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 260; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_builtin_range = __Pyx_GetName(__pyx_b, __pyx_n_s__range); if (!__pyx_builtin_range) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 343; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_builtin_KeyError = __Pyx_GetName(__pyx_b, __pyx_n_s__KeyError); if (!__pyx_builtin_KeyError) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 533; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s__ImportError); if (!__pyx_builtin_ImportError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_builtin_AttributeError = __Pyx_GetBuiltinName(__pyx_n_s__AttributeError); if (!__pyx_builtin_AttributeError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_builtin_Exception = __Pyx_GetBuiltinName(__pyx_n_s__Exception); if (!__pyx_builtin_Exception) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_builtin_SyntaxError = __Pyx_GetBuiltinName(__pyx_n_s__SyntaxError); if (!__pyx_builtin_SyntaxError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_builtin_object = __Pyx_GetBuiltinName(__pyx_n_s__object); if (!__pyx_builtin_object) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 653; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_builtin_staticmethod = __Pyx_GetBuiltinName(__pyx_n_s__staticmethod); if (!__pyx_builtin_staticmethod) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 431; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s__ValueError); if (!__pyx_builtin_ValueError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_builtin_super = __Pyx_GetBuiltinName(__pyx_n_s__super); if (!__pyx_builtin_super) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_builtin_MemoryError = __Pyx_GetBuiltinName(__pyx_n_s__MemoryError); if (!__pyx_builtin_MemoryError) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 265; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_builtin_id = __Pyx_GetBuiltinName(__pyx_n_s__id); if (!__pyx_builtin_id) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s__TypeError); if (!__pyx_builtin_TypeError) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_builtin_sorted = __Pyx_GetBuiltinName(__pyx_n_s__sorted); if (!__pyx_builtin_sorted) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 260; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s__range); if (!__pyx_builtin_range) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 343; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_builtin_KeyError = __Pyx_GetBuiltinName(__pyx_n_s__KeyError); if (!__pyx_builtin_KeyError) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 533; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
#if PY_MAJOR_VERSION >= 3
- __pyx_builtin_xrange = __Pyx_GetName(__pyx_b, __pyx_n_s__range); if (!__pyx_builtin_xrange) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 936; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_builtin_xrange = __Pyx_GetBuiltinName(__pyx_n_s__range); if (!__pyx_builtin_xrange) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 936; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
#else
- __pyx_builtin_xrange = __Pyx_GetName(__pyx_b, __pyx_n_s__xrange); if (!__pyx_builtin_xrange) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 936; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- #endif
- __pyx_builtin_UnicodeEncodeError = __Pyx_GetName(__pyx_b, __pyx_n_s__UnicodeEncodeError); if (!__pyx_builtin_UnicodeEncodeError) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1378; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_builtin_UnicodeDecodeError = __Pyx_GetName(__pyx_b, __pyx_n_s__UnicodeDecodeError); if (!__pyx_builtin_UnicodeDecodeError) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1392; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_builtin_IndexError = __Pyx_GetName(__pyx_b, __pyx_n_s__IndexError); if (!__pyx_builtin_IndexError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 643; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_builtin_FutureWarning = __Pyx_GetName(__pyx_b, __pyx_n_s__FutureWarning); if (!__pyx_builtin_FutureWarning) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1087; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_builtin_NotImplemented = __Pyx_GetName(__pyx_b, __pyx_n_s__NotImplemented); if (!__pyx_builtin_NotImplemented) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1727; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_builtin_StopIteration = __Pyx_GetName(__pyx_b, __pyx_n_s__StopIteration); if (!__pyx_builtin_StopIteration) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2364; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_builtin_IOError = __Pyx_GetName(__pyx_b, __pyx_n_s__IOError); if (!__pyx_builtin_IOError) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 594; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_builtin_LookupError = __Pyx_GetName(__pyx_b, __pyx_n_s__LookupError); if (!__pyx_builtin_LookupError) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 747; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_builtin_open = __Pyx_GetName(__pyx_b, __pyx_n_s__open); if (!__pyx_builtin_open) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 456; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_builtin_NotImplementedError = __Pyx_GetName(__pyx_b, __pyx_n_s__NotImplementedError); if (!__pyx_builtin_NotImplementedError) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 632; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_builtin_AssertionError = __Pyx_GetName(__pyx_b, __pyx_n_s__AssertionError); if (!__pyx_builtin_AssertionError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3271; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_builtin_xrange = __Pyx_GetBuiltinName(__pyx_n_s__xrange); if (!__pyx_builtin_xrange) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 936; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ #endif
+ __pyx_builtin_UnicodeEncodeError = __Pyx_GetBuiltinName(__pyx_n_s__UnicodeEncodeError); if (!__pyx_builtin_UnicodeEncodeError) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1378; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_builtin_UnicodeDecodeError = __Pyx_GetBuiltinName(__pyx_n_s__UnicodeDecodeError); if (!__pyx_builtin_UnicodeDecodeError) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1396; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_builtin_IndexError = __Pyx_GetBuiltinName(__pyx_n_s__IndexError); if (!__pyx_builtin_IndexError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 643; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_builtin_FutureWarning = __Pyx_GetBuiltinName(__pyx_n_s__FutureWarning); if (!__pyx_builtin_FutureWarning) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1087; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_builtin_NotImplemented = __Pyx_GetBuiltinName(__pyx_n_s__NotImplemented); if (!__pyx_builtin_NotImplemented) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1727; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_builtin_StopIteration = __Pyx_GetBuiltinName(__pyx_n_s__StopIteration); if (!__pyx_builtin_StopIteration) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2364; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_builtin_IOError = __Pyx_GetBuiltinName(__pyx_n_s__IOError); if (!__pyx_builtin_IOError) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 614; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_builtin_LookupError = __Pyx_GetBuiltinName(__pyx_n_s__LookupError); if (!__pyx_builtin_LookupError) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 767; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_builtin_open = __Pyx_GetBuiltinName(__pyx_n_s__open); if (!__pyx_builtin_open) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 456; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_builtin_NotImplementedError = __Pyx_GetBuiltinName(__pyx_n_s__NotImplementedError); if (!__pyx_builtin_NotImplementedError) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 632; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_builtin_AssertionError = __Pyx_GetBuiltinName(__pyx_n_s__AssertionError); if (!__pyx_builtin_AssertionError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3271; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
return 0;
__pyx_L1_error:;
return -1;
__pyx_k_tuple_7 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_5)); if (unlikely(!__pyx_k_tuple_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_k_tuple_7);
__Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_7));
+ __pyx_k_slice_8 = PySlice_New(Py_None, __pyx_int_4, Py_None); if (unlikely(!__pyx_k_slice_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_slice_8);
+ __Pyx_GIVEREF(__pyx_k_slice_8);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":215
* item = int(item)
* count = item[3:]
* item = -300
*/
- __pyx_k_tuple_8 = PyTuple_Pack(1, ((PyObject *)__pyx_n_u__dev)); if (unlikely(!__pyx_k_tuple_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_8);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_8));
+ __pyx_k_tuple_9 = PyTuple_Pack(1, ((PyObject *)__pyx_n_u__dev)); if (unlikely(!__pyx_k_tuple_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_9);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_9));
+
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":216
+ * except ValueError:
+ * if item.startswith(u'dev'):
+ * count = item[3:] # <<<<<<<<<<<<<<
+ * item = -300
+ * elif item.startswith(u'alpha'):
+ */
+ __pyx_k_slice_10 = PySlice_New(__pyx_int_3, Py_None, Py_None); if (unlikely(!__pyx_k_slice_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 216; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_slice_10);
+ __Pyx_GIVEREF(__pyx_k_slice_10);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":218
* count = item[3:]
* count = item[5:]
* item = -200
*/
- __pyx_k_tuple_9 = PyTuple_Pack(1, ((PyObject *)__pyx_n_u__alpha)); if (unlikely(!__pyx_k_tuple_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_9);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_9));
+ __pyx_k_tuple_11 = PyTuple_Pack(1, ((PyObject *)__pyx_n_u__alpha)); if (unlikely(!__pyx_k_tuple_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_11);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_11));
+
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":219
+ * item = -300
+ * elif item.startswith(u'alpha'):
+ * count = item[5:] # <<<<<<<<<<<<<<
+ * item = -200
+ * elif item.startswith(u'beta'):
+ */
+ __pyx_k_slice_12 = PySlice_New(__pyx_int_5, Py_None, Py_None); if (unlikely(!__pyx_k_slice_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_slice_12);
+ __Pyx_GIVEREF(__pyx_k_slice_12);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":221
* count = item[5:]
* count = item[4:]
* item = -100
*/
- __pyx_k_tuple_10 = PyTuple_Pack(1, ((PyObject *)__pyx_n_u__beta)); if (unlikely(!__pyx_k_tuple_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_10);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_10));
+ __pyx_k_tuple_13 = PyTuple_Pack(1, ((PyObject *)__pyx_n_u__beta)); if (unlikely(!__pyx_k_tuple_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_13);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_13));
+
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":222
+ * item = -200
+ * elif item.startswith(u'beta'):
+ * count = item[4:] # <<<<<<<<<<<<<<
+ * item = -100
+ * else:
+ */
+ __pyx_k_slice_14 = PySlice_New(__pyx_int_4, Py_None, Py_None); if (unlikely(!__pyx_k_slice_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_slice_14);
+ __Pyx_GIVEREF(__pyx_k_slice_14);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1335
* raise TypeError("Argument must be bytes or unicode, got '%.200s'" % type(s).__name__)
* "All strings must be XML compatible: Unicode or ASCII, no NULL bytes or control characters")
* return utf8_string
*/
- __pyx_k_tuple_27 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_26)); if (unlikely(!__pyx_k_tuple_27)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1335; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_27);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_27));
+ __pyx_k_tuple_31 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_30)); if (unlikely(!__pyx_k_tuple_31)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1335; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_31);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_31));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1382
* return filename8
*
* cdef object _decodeFilename(const_xmlChar* c_path):
*/
- __pyx_k_tuple_29 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_28)); if (unlikely(!__pyx_k_tuple_29)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1382; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_29);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_29));
+ __pyx_k_tuple_33 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_32)); if (unlikely(!__pyx_k_tuple_33)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1382; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_33);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_33));
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1427
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1431
* return (<unicode>filename).encode('utf8')
* else:
* raise TypeError("Argument must be string or unicode.") # <<<<<<<<<<<<<<
*
* cdef tuple _getNsTag(tag):
*/
- __pyx_k_tuple_30 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_28)); if (unlikely(!__pyx_k_tuple_30)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1427; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_30);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_30));
+ __pyx_k_tuple_34 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_32)); if (unlikely(!__pyx_k_tuple_34)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1431; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_34);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_34));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":510
* except KeyError:
* return log
*
*/
- __pyx_k_tuple_47 = PyTuple_Pack(1, __pyx_int_100); if (unlikely(!__pyx_k_tuple_47)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 510; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_47);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_47));
+ __pyx_k_tuple_51 = PyTuple_Pack(1, __pyx_int_100); if (unlikely(!__pyx_k_tuple_51)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 510; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_51);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_51));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":633
* u"Called at setup time to parse the constants and build the classes below."
* const_defs = ((ErrorLevels, __ERROR_LEVELS),
* (ErrorDomains, __ERROR_DOMAINS),
*/
- __pyx_k_tuple_55 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_54)); if (unlikely(!__pyx_k_tuple_55)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 633; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_55);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_55));
+ __pyx_k_tuple_59 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_58)); if (unlikely(!__pyx_k_tuple_59)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 633; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_59);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_59));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1885
* if method == 'c14n':
* if xml_declaration:
* raise ValueError("Cannot enable XML declaration in C14N")
*/
- __pyx_k_tuple_95 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_94)); if (unlikely(!__pyx_k_tuple_95)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1885; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_95);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_95));
+ __pyx_k_tuple_99 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_98)); if (unlikely(!__pyx_k_tuple_99)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1885; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_99);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_99));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1887
* raise ValueError("Cannot specify encoding with C14N")
*
* _tofilelikeC14N(file, self._context_node, exclusive, with_comments,
*/
- __pyx_k_tuple_97 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_96)); if (unlikely(!__pyx_k_tuple_97)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1887; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_97);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_97));
+ __pyx_k_tuple_101 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_100)); if (unlikely(!__pyx_k_tuple_101)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1887; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_101);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_101));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1893
* return
* # suppress decl. in default case (purely for ElementTree compatibility)
* if xml_declaration is not None:
*/
- __pyx_k_tuple_99 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_98)); if (unlikely(!__pyx_k_tuple_99)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1893; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_99);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_99));
+ __pyx_k_tuple_103 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_102)); if (unlikely(!__pyx_k_tuple_103)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1893; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_103);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_103));
+
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2004
+ * root = self.getroot()
+ * if _isString(path):
+ * start = path[:1] # <<<<<<<<<<<<<<
+ * if start == u"/":
+ * path = u"." + path
+ */
+ __pyx_k_slice_107 = PySlice_New(Py_None, __pyx_int_1, Py_None); if (unlikely(!__pyx_k_slice_107)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2004; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_slice_107);
+ __Pyx_GIVEREF(__pyx_k_slice_107);
+
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2024
+ * root = self.getroot()
+ * if _isString(path):
+ * start = path[:1] # <<<<<<<<<<<<<<
+ * if start == u"/":
+ * path = u"." + path
+ */
+ __pyx_k_slice_109 = PySlice_New(Py_None, __pyx_int_1, Py_None); if (unlikely(!__pyx_k_slice_109)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2024; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_slice_109);
+ __Pyx_GIVEREF(__pyx_k_slice_109);
+
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2044
+ * root = self.getroot()
+ * if _isString(path):
+ * start = path[:1] # <<<<<<<<<<<<<<
+ * if start == u"/":
+ * path = u"." + path
+ */
+ __pyx_k_slice_110 = PySlice_New(Py_None, __pyx_int_1, Py_None); if (unlikely(!__pyx_k_slice_110)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2044; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_slice_110);
+ __Pyx_GIVEREF(__pyx_k_slice_110);
+
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2064
+ * root = self.getroot()
+ * if _isString(path):
+ * start = path[:1] # <<<<<<<<<<<<<<
+ * if start == u"/":
+ * path = u"." + path
+ */
+ __pyx_k_slice_111 = PySlice_New(Py_None, __pyx_int_1, Py_None); if (unlikely(!__pyx_k_slice_111)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2064; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_slice_111);
+ __Pyx_GIVEREF(__pyx_k_slice_111);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2756
* _assertValidNode(element)
* else:
* events = (u"start",)
*/
- __pyx_k_tuple_114 = PyTuple_Pack(2, ((PyObject *)__pyx_n_u__start), ((PyObject *)__pyx_n_u__end)); if (unlikely(!__pyx_k_tuple_114)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2756; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_114);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_114));
+ __pyx_k_tuple_122 = PyTuple_Pack(2, ((PyObject *)__pyx_n_u__start), ((PyObject *)__pyx_n_u__end)); if (unlikely(!__pyx_k_tuple_122)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2756; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_122);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_122));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2758
* events = (u"start", u"end")
* self._start_element = element
* self._nextEvent = iterwalk(element, events=events, tag=tag).__next__
*/
- __pyx_k_tuple_115 = PyTuple_Pack(1, ((PyObject *)__pyx_n_u__start)); if (unlikely(!__pyx_k_tuple_115)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2758; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_115);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_115));
+ __pyx_k_tuple_123 = PyTuple_Pack(1, ((PyObject *)__pyx_n_u__start)); if (unlikely(!__pyx_k_tuple_123)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2758; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_123);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_123));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3085
* if method == 'c14n':
* if xml_declaration:
* raise ValueError("Cannot enable XML declaration in C14N")
*/
- __pyx_k_tuple_119 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_94)); if (unlikely(!__pyx_k_tuple_119)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3085; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_119);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_119));
+ __pyx_k_tuple_127 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_98)); if (unlikely(!__pyx_k_tuple_127)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3085; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_127);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_127));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3087
* raise ValueError("Cannot specify encoding with C14N")
* return _tostringC14N(element_or_tree, exclusive, with_comments, inclusive_ns_prefixes)
* if not with_comments:
*/
- __pyx_k_tuple_120 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_96)); if (unlikely(!__pyx_k_tuple_120)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3087; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_120);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_120));
+ __pyx_k_tuple_128 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_100)); if (unlikely(!__pyx_k_tuple_128)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3087; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_128);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_128));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3090
* return _tostringC14N(element_or_tree, exclusive, with_comments, inclusive_ns_prefixes)
* if encoding is _unicode or (encoding is not None and encoding.upper() == 'UNICODE'):
* if xml_declaration:
*/
- __pyx_k_tuple_121 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_98)); if (unlikely(!__pyx_k_tuple_121)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3090; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_121);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_121));
+ __pyx_k_tuple_129 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_102)); if (unlikely(!__pyx_k_tuple_129)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3090; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_129);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_129));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":195
* children = [ el for el in children if el.tag == tag ]
* return iter(children)
*
*/
- __pyx_k_slice_127 = PySlice_New(Py_None, Py_None, __pyx_int_neg_1); if (unlikely(!__pyx_k_slice_127)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_slice_127);
- __Pyx_GIVEREF(__pyx_k_slice_127);
+ __pyx_k_slice_135 = PySlice_New(Py_None, Py_None, __pyx_int_neg_1); if (unlikely(!__pyx_k_slice_135)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_slice_135);
+ __Pyx_GIVEREF(__pyx_k_slice_135);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":61
* tag = _utf8(_getattr(_getattr(self, '__class__'), '__name__'))
* try:
* parser = _getattr(self, 'PARSER')
*/
- __pyx_k_tuple_134 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_b_5)); if (unlikely(!__pyx_k_tuple_134)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_134);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_134));
+ __pyx_k_tuple_142 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_b_5)); if (unlikely(!__pyx_k_tuple_142)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_142);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_142));
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1584
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/nsclasses.pxi":46
+ * class_dict_iterable = class_dict_iterable.items()
+ * for name, item in class_dict_iterable:
+ * if (name is None or name[:1] != '_') and callable(item): # <<<<<<<<<<<<<<
+ * self[name] = item
+ *
+ */
+ __pyx_k_slice_152 = PySlice_New(Py_None, __pyx_int_1, Py_None); if (unlikely(!__pyx_k_slice_152)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_slice_152);
+ __Pyx_GIVEREF(__pyx_k_slice_152);
+
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1607
* if isinstance(text, unicode):
* if _hasEncodingDeclaration(text):
* raise ValueError( # <<<<<<<<<<<<<<
* u"Unicode strings with encoding declaration are not supported. "
* u"Please use bytes input or XML fragments without declaration.")
*/
- __pyx_k_tuple_210 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_209)); if (unlikely(!__pyx_k_tuple_210)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1584; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_210);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_210));
+ __pyx_k_tuple_219 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_218)); if (unlikely(!__pyx_k_tuple_219)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1607; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_219);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_219));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":112
* if enchandler is NULL and c_enc is not NULL:
* raise LookupError, u"unknown encoding: '%s'" % encoding
* c_buffer = tree.xmlAllocOutputBuffer(enchandler)
*/
- __pyx_k_tuple_220 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_101)); if (unlikely(!__pyx_k_tuple_220)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_220);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_220));
+ __pyx_k_tuple_229 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_105)); if (unlikely(!__pyx_k_tuple_229)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_229);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_229));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":562
* writer = _FilelikeWriter(f, compression=compression)
* bytes_count = c14n.xmlC14NDocSaveTo(
* c_doc, NULL, exclusive, c_inclusive_ns_prefixes,
*/
- __pyx_k_tuple_240 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_tuple_240)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_240);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_240));
+ __pyx_k_tuple_249 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_tuple_249)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_249);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_249));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":673
* cdef int c_standalone
* version = _utf8orNone(version)
* c_version = _xcstr(version) if version is not None else NULL
*/
- __pyx_k_tuple_242 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_241)); if (unlikely(!__pyx_k_tuple_242)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 673; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_242);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_242));
+ __pyx_k_tuple_251 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_250)); if (unlikely(!__pyx_k_tuple_251)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 673; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_251);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_251));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":698
* return
* doctype = _utf8(doctype)
* _writeDoctype(self._c_out, _xcstr(doctype))
*/
- __pyx_k_tuple_244 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_243)); if (unlikely(!__pyx_k_tuple_244)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 698; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_244);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_244));
+ __pyx_k_tuple_253 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_252)); if (unlikely(!__pyx_k_tuple_253)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 698; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_253);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_253));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":740
* cdef _write_start_element(self, element_config):
* ns, name, attributes, nsmap = element_config
* flat_namespace_map, new_namespaces = self._collect_namespaces(nsmap)
*/
- __pyx_k_tuple_247 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_246)); if (unlikely(!__pyx_k_tuple_247)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 740; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_247);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_247));
+ __pyx_k_tuple_256 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_255)); if (unlikely(!__pyx_k_tuple_256)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 740; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_256);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_256));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":778
* cdef _write_end_element(self, element_config):
* if not self._element_stack or self._element_stack[-1][:2] != element_config[:2]:
* raise LxmlSyntaxError("inconsistent exit action in context manager")
*/
- __pyx_k_tuple_252 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_251)); if (unlikely(!__pyx_k_tuple_252)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 778; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_252);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_252));
+ __pyx_k_tuple_261 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_260)); if (unlikely(!__pyx_k_tuple_261)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 778; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_261);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_261));
+
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":779
+ * if self._status != WRITER_IN_ELEMENT:
+ * raise LxmlSyntaxError("not in an element")
+ * if not self._element_stack or self._element_stack[-1][:2] != element_config[:2]: # <<<<<<<<<<<<<<
+ * raise LxmlSyntaxError("inconsistent exit action in context manager")
+ *
+ */
+ __pyx_k_slice_262 = PySlice_New(Py_None, __pyx_int_2, Py_None); if (unlikely(!__pyx_k_slice_262)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 779; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_slice_262);
+ __Pyx_GIVEREF(__pyx_k_slice_262);
+ __pyx_k_slice_263 = PySlice_New(Py_None, __pyx_int_2, Py_None); if (unlikely(!__pyx_k_slice_263)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 779; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_slice_263);
+ __Pyx_GIVEREF(__pyx_k_slice_263);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":780
* raise LxmlSyntaxError("not in an element")
*
* name, prefix = self._element_stack.pop()[1:3]
*/
- __pyx_k_tuple_254 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_253)); if (unlikely(!__pyx_k_tuple_254)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 780; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_254);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_254));
+ __pyx_k_tuple_265 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_264)); if (unlikely(!__pyx_k_tuple_265)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 780; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_265);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_265));
+
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":782
+ * raise LxmlSyntaxError("inconsistent exit action in context manager")
+ *
+ * name, prefix = self._element_stack.pop()[1:3] # <<<<<<<<<<<<<<
+ * tree.xmlOutputBufferWrite(self._c_out, 2, '</')
+ * self._write_qname(name, prefix)
+ */
+ __pyx_k_slice_266 = PySlice_New(__pyx_int_1, __pyx_int_3, Py_None); if (unlikely(!__pyx_k_slice_266)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 782; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_slice_266);
+ __Pyx_GIVEREF(__pyx_k_slice_266);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":834
* if self._status != WRITER_IN_ELEMENT:
* content = _utf8(content)
* tree.xmlOutputBufferWriteEscape(self._c_out, _xcstr(content), NULL)
*/
- __pyx_k_tuple_256 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_251)); if (unlikely(!__pyx_k_tuple_256)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 834; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_256);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_256));
+ __pyx_k_tuple_268 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_260)); if (unlikely(!__pyx_k_tuple_268)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 834; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_268);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_268));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":839
* elif iselement(content):
* _writeNodeToBuffer(self._c_out, (<_Element>content)._c_node,
* self._c_encoding, NULL, OUTPUT_METHOD_XML,
*/
- __pyx_k_tuple_257 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_246)); if (unlikely(!__pyx_k_tuple_257)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 839; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_257);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_257));
+ __pyx_k_tuple_269 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_255)); if (unlikely(!__pyx_k_tuple_269)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 839; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_269);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_269));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":853
* if raise_on_error:
* if self._element_stack:
* raise LxmlSyntaxError("pending open tags on close")
*/
- __pyx_k_tuple_260 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_259)); if (unlikely(!__pyx_k_tuple_260)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 853; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_260);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_260));
+ __pyx_k_tuple_272 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_271)); if (unlikely(!__pyx_k_tuple_272)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 853; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_272);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_272));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":855
* raise LxmlSyntaxError("no content written")
* error_result = self._c_out.error
* if error_result == xmlerror.XML_ERR_OK:
*/
- __pyx_k_tuple_262 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_261)); if (unlikely(!__pyx_k_tuple_262)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 855; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_262);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_262));
+ __pyx_k_tuple_274 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_273)); if (unlikely(!__pyx_k_tuple_274)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 855; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_274);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_274));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":166
* ns_count = self._ns_stack.pop()
* for i from 0 <= i < ns_count:
* self._events.append(event)
*/
- __pyx_k_tuple_266 = PyTuple_Pack(2, ((PyObject *)__pyx_kp_u_264), Py_None); if (unlikely(!__pyx_k_tuple_266)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_266);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_266));
+ __pyx_k_tuple_278 = PyTuple_Pack(2, ((PyObject *)__pyx_kp_u_276), Py_None); if (unlikely(!__pyx_k_tuple_278)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_278);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_278));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":368
* cdef bint _close_source_after_read
* attribute_defaults=False, dtd_validation=False,
* load_dtd=False, no_network=True, remove_blank_text=False,
*/
- __pyx_k_tuple_267 = PyTuple_Pack(1, ((PyObject *)__pyx_n_u__end)); if (unlikely(!__pyx_k_tuple_267)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 368; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_267);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_267));
+ __pyx_k_tuple_279 = PyTuple_Pack(1, ((PyObject *)__pyx_n_u__end)); if (unlikely(!__pyx_k_tuple_279)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 368; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_279);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_279));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":503
* while not events:
* if not isinstance(data, bytes):
* self._close_source()
*/
- __pyx_k_tuple_281 = PyTuple_Pack(1, __pyx_int_32768); if (unlikely(!__pyx_k_tuple_281)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 503; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_281);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_281));
+ __pyx_k_tuple_293 = PyTuple_Pack(1, __pyx_int_32768); if (unlikely(!__pyx_k_tuple_293)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 503; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_293);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_293));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":506
* if not isinstance(data, bytes):
* c_data_len = python.PyBytes_GET_SIZE(data)
* c_data = _cstr(data)
*/
- __pyx_k_tuple_283 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_282)); if (unlikely(!__pyx_k_tuple_283)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 506; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_283);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_283));
+ __pyx_k_tuple_295 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_294)); if (unlikely(!__pyx_k_tuple_295)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 506; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_295);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_295));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":553
* cdef int _event_filter
* cdef _Element root
* cdef int ns_count
*/
- __pyx_k_tuple_284 = PyTuple_Pack(1, ((PyObject *)__pyx_n_u__end)); if (unlikely(!__pyx_k_tuple_284)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 553; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_284);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_284));
+ __pyx_k_tuple_296 = PyTuple_Pack(1, ((PyObject *)__pyx_n_u__end)); if (unlikely(!__pyx_k_tuple_296)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 553; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_296);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_296));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":582
* cdef int ns_count = 0
* if self._matcher is not None and self._index >= 0:
* node = self._node_stack[self._index][0]
*/
- __pyx_k_tuple_285 = PyTuple_Pack(1, __pyx_int_0); if (unlikely(!__pyx_k_tuple_285)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 582; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_285);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_285));
+ __pyx_k_tuple_297 = PyTuple_Pack(1, __pyx_int_0); if (unlikely(!__pyx_k_tuple_297)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 582; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_297);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_297));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":614
* self._index += 1
* raise StopIteration
*
*/
- __pyx_k_tuple_286 = PyTuple_Pack(1, __pyx_int_0); if (unlikely(!__pyx_k_tuple_286)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 614; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_286);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_286));
+ __pyx_k_tuple_298 = PyTuple_Pack(1, __pyx_int_0); if (unlikely(!__pyx_k_tuple_298)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 614; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_298);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_298));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":638
* self._events.append( (u"end", node) )
* for i from 0 <= i < ns_count:
* self._events.append(event)
*/
- __pyx_k_tuple_287 = PyTuple_Pack(2, ((PyObject *)__pyx_kp_u_264), Py_None); if (unlikely(!__pyx_k_tuple_287)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 638; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_287);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_287));
+ __pyx_k_tuple_299 = PyTuple_Pack(2, ((PyObject *)__pyx_kp_u_276), Py_None); if (unlikely(!__pyx_k_tuple_299)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 638; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_299);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_299));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlid.pxi":15
* global _find_id_attributes
*
* # ElementTree compatible implementation: parse and look for 'id' attributes
*/
- __pyx_k_tuple_289 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_288)); if (unlikely(!__pyx_k_tuple_289)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_289);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_289));
+ __pyx_k_tuple_301 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_300)); if (unlikely(!__pyx_k_tuple_301)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_301);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_301));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlid.pxi":21
* dic = {}
* return (root, dic)
*
*/
- __pyx_k_tuple_290 = PyTuple_Pack(1, ((PyObject *)__pyx_n_u__id)); if (unlikely(!__pyx_k_tuple_290)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_290);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_290));
+ __pyx_k_tuple_302 = PyTuple_Pack(1, ((PyObject *)__pyx_n_u__id)); if (unlikely(!__pyx_k_tuple_302)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_302);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_302));
+
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlid.pxi":114
+ * if self._keys is None:
+ * self._keys = self._build_keys()
+ * return self._keys[:] # <<<<<<<<<<<<<<
+ *
+ * def __iter__(self):
+ */
+ __pyx_k_slice_306 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_slice_306)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_slice_306);
+ __Pyx_GIVEREF(__pyx_k_slice_306);
+
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlid.pxi":132
+ * if self._items is None:
+ * self._items = self._build_items()
+ * return self._items[:] # <<<<<<<<<<<<<<
+ *
+ * def iteritems(self):
+ */
+ __pyx_k_slice_307 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_slice_307)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_slice_307);
+ __Pyx_GIVEREF(__pyx_k_slice_307);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":445
* if function_mapping is None:
* for function_name in function_mapping:
* functions[(ns, function_name)] = getattr(module, function_name)
*/
- __pyx_k_tuple_304 = PyTuple_Pack(1, ((PyObject *)__pyx_n_u___)); if (unlikely(!__pyx_k_tuple_304)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 445; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_304);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_304));
+ __pyx_k_tuple_318 = PyTuple_Pack(1, ((PyObject *)__pyx_n_u___)); if (unlikely(!__pyx_k_tuple_318)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 445; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_318);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_318));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":520
* return ()
* result_list = []
* root = Element(u'matches')
*/
- __pyx_k_tuple_305 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_21)); if (unlikely(!__pyx_k_tuple_305)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_305);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_305));
+ __pyx_k_tuple_319 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_25)); if (unlikely(!__pyx_k_tuple_319)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_319);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_319));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":522
* results.extend( result.groups(u'') )
* join_groups = u''.join
* for s_match in results:
*/
- __pyx_k_tuple_306 = PyTuple_Pack(1, ((PyObject *)__pyx_n_u__matches)); if (unlikely(!__pyx_k_tuple_306)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 522; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_306);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_306));
+ __pyx_k_tuple_320 = PyTuple_Pack(1, ((PyObject *)__pyx_n_u__matches)); if (unlikely(!__pyx_k_tuple_320)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 522; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_320);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_320));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":146
* _XPATH_VERSION_WARNING_REQUIRED = 0
* u"Use it at your own risk.")
* self._context = _XPathContext(namespaces, extensions, self._error_log,
*/
- __pyx_k_tuple_318 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_317)); if (unlikely(!__pyx_k_tuple_318)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_318);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_318));
+ __pyx_k_tuple_332 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_331)); if (unlikely(!__pyx_k_tuple_332)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_332);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_332));
+
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":514
+ * i += 1
+ * namespace_defs.append(namespace_def)
+ * namespace = namespace_def[1:-1] # remove '{}' # <<<<<<<<<<<<<<
+ * namespace = (<bytes>namespace).decode('utf8')
+ * namespaces[prefix.decode('utf8')] = namespace
+ */
+ __pyx_k_slice_347 = PySlice_New(__pyx_int_1, __pyx_int_neg_1, Py_None); if (unlikely(!__pyx_k_slice_347)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 514; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_slice_347);
+ __Pyx_GIVEREF(__pyx_k_slice_347);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":520
* # FIXME: this also replaces {namespaces} within strings!
* path = path_utf.decode('utf8') # <<<<<<<<<<<<<<
* return path, namespaces
*/
- __pyx_k_tuple_333 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__utf8)); if (unlikely(!__pyx_k_tuple_333)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_333);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_333));
+ __pyx_k_tuple_348 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__utf8)); if (unlikely(!__pyx_k_tuple_348)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_348);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_348));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":395
* c_doc._private = <python.PyObject*>self._xslt_resolver_context
* c_style = xslt.xsltParseStylesheetDoc(c_doc)
*
*/
- __pyx_k_tuple_342 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_tuple_342)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_342);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_342));
+ __pyx_k_tuple_357 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_tuple_357)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_357);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_357));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":462
* """
* xslt.xsltMaxDepth = max_depth
*
*/
- __pyx_k_tuple_345 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_344)); if (unlikely(!__pyx_k_tuple_345)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 462; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_345);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_345));
+ __pyx_k_tuple_360 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_359)); if (unlikely(!__pyx_k_tuple_360)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 462; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_360);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_360));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":841
* global __findStylesheetByID
* u"//xsl:stylesheet[@xml:id = $id]",
* namespaces={u"xsl" : u"http://www.w3.org/1999/XSL/Transform"})
*/
- __pyx_k_tuple_352 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_351)); if (unlikely(!__pyx_k_tuple_352)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 841; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_352);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_352));
+ __pyx_k_tuple_367 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_366)); if (unlikely(!__pyx_k_tuple_367)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 841; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_367);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_367));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":204
* e = unicode(e).encode(u"UTF-8")
* message = python.PyBytes_FromFormat(
* "Error executing extension element '%s': %s",
*/
- __pyx_k_tuple_365 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_101)); if (unlikely(!__pyx_k_tuple_365)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 204; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_365);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_365));
+ __pyx_k_tuple_380 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_105)); if (unlikely(!__pyx_k_tuple_380)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 204; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_380);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_380));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/dtd.pxi":284
* if _isString(file):
* self._c_dtd = xmlparser.xmlParseDTD(NULL, _xcstr(file))
* elif hasattr(file, 'read'):
*/
- __pyx_k_tuple_375 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_tuple_375)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 284; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_375);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_375));
+ __pyx_k_tuple_390 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_tuple_390)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 284; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_390);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_390));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/dtd.pxi":291
* raise DTDParseError, u"file must be a filename or file-like object"
* self._c_dtd = xmlparser.xmlParseDTD(<const_xmlChar*>external_id, NULL)
* else:
*/
- __pyx_k_tuple_377 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_tuple_377)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 291; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_377);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_377));
+ __pyx_k_tuple_392 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_tuple_392)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 291; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_392);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_392));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/dtd.pxi":361
* valid_ctxt = dtdvalid.xmlNewValidCtxt()
*
* try:
*/
- __pyx_k_tuple_382 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_381)); if (unlikely(!__pyx_k_tuple_382)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 361; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_382);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_382));
+ __pyx_k_tuple_397 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_396)); if (unlikely(!__pyx_k_tuple_397)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 361; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_397);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_397));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/dtd.pxi":364
*
* c_doc = _fakeRootDoc(doc._c_doc, root_node._c_node)
* ret = dtdvalid.xmlValidateDtd(valid_ctxt, c_doc, self._c_dtd)
*/
- __pyx_k_tuple_383 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_tuple_383)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_383);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_383));
+ __pyx_k_tuple_398 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_tuple_398)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_398);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_398));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/dtd.pxi":389
* error_log = _ErrorLog()
* c_dtd = dtd_parser._readDtd()
*
*/
- __pyx_k_tuple_385 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_tuple_385)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_385);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_385));
+ __pyx_k_tuple_400 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_tuple_400)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_400);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_400));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/relaxng.pxi":58
* doc = None
* parser_ctxt = relaxng.xmlRelaxNGNewParserCtxt(_cstr(filename))
* else:
*/
- __pyx_k_tuple_388 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_tuple_388)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_388);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_388));
+ __pyx_k_tuple_403 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_tuple_403)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_403);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_403));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/schematron.pxi":98
* filename = file
* parser_ctxt = schematron.xmlSchematronNewParserCtxt(_cstr(filename))
* else:
*/
- __pyx_k_tuple_404 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_tuple_404)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_404);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_404));
+ __pyx_k_tuple_419 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_tuple_419)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_419);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_419));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/schematron.pxi":110
*
* self._c_schema = schematron.xmlSchematronParse(parser_ctxt)
* finally:
*/
- __pyx_k_tuple_406 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_tuple_406)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_406);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_406));
+ __pyx_k_tuple_421 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_tuple_421)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_421);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_421));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/schematron.pxi":167
* else:
* c_doc = _fakeRootDoc(doc._c_doc, root_node._c_node)
* with nogil:
*/
- __pyx_k_tuple_409 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_tuple_409)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_409);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_409));
+ __pyx_k_tuple_424 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_tuple_424)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_424);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_424));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":134
*
* cdef char* _C_FILENAME_ENCODING = _cstr(_FILENAME_ENCODING)
*
*/
- __pyx_k_tuple_466 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_101)); if (unlikely(!__pyx_k_tuple_466)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_466);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_466));
+ __pyx_k_tuple_481 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_105)); if (unlikely(!__pyx_k_tuple_481)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_481);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_481));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":153
* }
*
* def register_namespace(prefix, uri):
*/
- __pyx_k_tuple_475 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_b_474)); if (unlikely(!__pyx_k_tuple_475)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_475);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_475));
+ __pyx_k_tuple_490 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_b_489)); if (unlikely(!__pyx_k_tuple_490)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_490);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_490));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":155
* cdef object _check_internal_prefix = re.compile(b"ns\d+$").match
* u"""Registers a namespace prefix that newly created Elements in that
* namespace will use. The registry is global, and any existing
*/
- __pyx_k_tuple_476 = PyTuple_Pack(6, ((PyObject *)__pyx_n_s__prefix), ((PyObject *)__pyx_n_s__uri), ((PyObject *)__pyx_n_s__prefix_utf), ((PyObject *)__pyx_n_s__uri_utf), ((PyObject *)__pyx_n_s__k), ((PyObject *)__pyx_n_s__v)); if (unlikely(!__pyx_k_tuple_476)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_476);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_476));
- __pyx_k_codeobj_477 = (PyObject*)__Pyx_PyCode_New(2, 0, 6, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_476, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_478, __pyx_n_s__register_namespace, 155, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_477)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_k_tuple_491 = PyTuple_Pack(6, ((PyObject *)__pyx_n_s__prefix), ((PyObject *)__pyx_n_s__uri), ((PyObject *)__pyx_n_s__prefix_utf), ((PyObject *)__pyx_n_s__uri_utf), ((PyObject *)__pyx_n_s__k), ((PyObject *)__pyx_n_s__v)); if (unlikely(!__pyx_k_tuple_491)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_491);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_491));
+ __pyx_k_codeobj_492 = (PyObject*)__Pyx_PyCode_New(2, 0, 6, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_491, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_493, __pyx_n_s__register_namespace, 155, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_492)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":181
* this one.
* if python.PY_VERSION_HEX >= 0x02050000:
* # Python >= 2.5 uses new style class exceptions
*/
- __pyx_k_tuple_480 = PyTuple_Pack(3, ((PyObject *)__pyx_n_s__self), ((PyObject *)__pyx_n_s__message), ((PyObject *)__pyx_n_s__error_log)); if (unlikely(!__pyx_k_tuple_480)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_480);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_480));
- __pyx_k_codeobj_481 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_480, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_478, __pyx_n_s____init__, 181, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_481)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_k_tuple_482 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_k_tuple_482)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_482);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_482));
+ __pyx_k_tuple_495 = PyTuple_Pack(3, ((PyObject *)__pyx_n_s__self), ((PyObject *)__pyx_n_s__message), ((PyObject *)__pyx_n_s__error_log)); if (unlikely(!__pyx_k_tuple_495)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_495);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_495));
+ __pyx_k_codeobj_496 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_495, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_493, __pyx_n_s____init__, 181, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_496)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_k_tuple_497 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_k_tuple_497)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_497);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_497));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":241
* try:
* except Exception:
* print u"Unknown libxml2 version: %s" % (<unsigned char*>tree.xmlParserVersion).decode("ascii")
*/
- __pyx_k_tuple_488 = PyTuple_Pack(1, __pyx_int_0); if (unlikely(!__pyx_k_tuple_488)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_488);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_488));
+ __pyx_k_tuple_503 = PyTuple_Pack(1, __pyx_int_0); if (unlikely(!__pyx_k_tuple_503)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_503);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_503));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":8
* # module level API functions
* u"""clear_error_log()
*
*/
- __pyx_k_codeobj_491 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_492, __pyx_n_s__clear_error_log, 8, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_491)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_k_codeobj_506 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_507, __pyx_n_s__clear_error_log, 8, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_506)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":498
*
*
* cdef _BaseErrorLog _getGlobalErrorLog():
*/
- __pyx_k_tuple_493 = PyTuple_Pack(1, __pyx_int_100); if (unlikely(!__pyx_k_tuple_493)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 498; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_493);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_493));
+ __pyx_k_tuple_508 = PyTuple_Pack(1, __pyx_int_100); if (unlikely(!__pyx_k_tuple_508)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 498; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_508);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_508));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":527
* return _getGlobalErrorLog().copy()
* u"""use_global_python_log(log)
*
*/
- __pyx_k_tuple_494 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__log)); if (unlikely(!__pyx_k_tuple_494)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 527; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_494);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_494));
- __pyx_k_codeobj_495 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_494, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_492, __pyx_n_s_464, 527, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_495)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 527; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_k_tuple_509 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__log)); if (unlikely(!__pyx_k_tuple_509)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 527; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_509);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_509));
+ __pyx_k_codeobj_510 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_509, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_507, __pyx_n_s_479, 527, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_510)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 527; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":675
* # cannot handle strings that are a few thousand bytes in length.
* NONE=0
* WARNING=1
*/
- __pyx_k_tuple_501 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_500)); if (unlikely(!__pyx_k_tuple_501)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 675; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_501);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_501));
+ __pyx_k_tuple_516 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_515)); if (unlikely(!__pyx_k_tuple_516)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 675; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_516);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_516));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":682
* """,)
* NONE=0
* PARSER=1
*/
- __pyx_k_tuple_503 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_502)); if (unlikely(!__pyx_k_tuple_503)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 682; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_503);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_503));
+ __pyx_k_tuple_518 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_517)); if (unlikely(!__pyx_k_tuple_518)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 682; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_518);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_518));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":714
* """,)
* ERR_OK=0
* ERR_INTERNAL_ERROR=1
*/
- __pyx_k_tuple_515 = PyTuple_Pack(11, ((PyObject *)__pyx_kp_u_504), ((PyObject *)__pyx_kp_u_505), ((PyObject *)__pyx_kp_u_506), ((PyObject *)__pyx_kp_u_507), ((PyObject *)__pyx_kp_u_508), ((PyObject *)__pyx_kp_u_509), ((PyObject *)__pyx_kp_u_510), ((PyObject *)__pyx_kp_u_511), ((PyObject *)__pyx_kp_u_512), ((PyObject *)__pyx_kp_u_513), ((PyObject *)__pyx_kp_u_514)); if (unlikely(!__pyx_k_tuple_515)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 714; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_515);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_515));
+ __pyx_k_tuple_530 = PyTuple_Pack(11, ((PyObject *)__pyx_kp_u_519), ((PyObject *)__pyx_kp_u_520), ((PyObject *)__pyx_kp_u_521), ((PyObject *)__pyx_kp_u_522), ((PyObject *)__pyx_kp_u_523), ((PyObject *)__pyx_kp_u_524), ((PyObject *)__pyx_kp_u_525), ((PyObject *)__pyx_kp_u_526), ((PyObject *)__pyx_kp_u_527), ((PyObject *)__pyx_kp_u_528), ((PyObject *)__pyx_kp_u_529)); if (unlikely(!__pyx_k_tuple_530)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 714; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_530);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_530));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":1470
* """,)
* RELAXNG_OK=0
* RELAXNG_ERR_MEMORY=1
*/
- __pyx_k_tuple_517 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_516)); if (unlikely(!__pyx_k_tuple_517)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 1470; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_517);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_517));
+ __pyx_k_tuple_532 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_531)); if (unlikely(!__pyx_k_tuple_532)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 1470; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_532);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_532));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2798
* # module-level API for ElementTree
* u"""Element(_tag, attrib=None, nsmap=None, **_extra)
*
*/
- __pyx_k_tuple_519 = PyTuple_Pack(5, ((PyObject *)__pyx_n_s___tag), ((PyObject *)__pyx_n_s__attrib), ((PyObject *)__pyx_n_s__nsmap), ((PyObject *)__pyx_n_s___extra), ((PyObject *)__pyx_n_s___extra)); if (unlikely(!__pyx_k_tuple_519)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2798; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_519);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_519));
- __pyx_k_codeobj_520 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_519, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_478, __pyx_n_s__Element, 2798, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_520)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2798; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_k_tuple_534 = PyTuple_Pack(5, ((PyObject *)__pyx_n_s___tag), ((PyObject *)__pyx_n_s__attrib), ((PyObject *)__pyx_n_s__nsmap), ((PyObject *)__pyx_n_s___extra), ((PyObject *)__pyx_n_s___extra)); if (unlikely(!__pyx_k_tuple_534)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2798; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_534);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_534));
+ __pyx_k_codeobj_535 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_534, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_493, __pyx_n_s__Element, 2798, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_535)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2798; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2811
* attrib, nsmap, _extra)
* u"""Comment(text=None)
*
*/
- __pyx_k_tuple_521 = PyTuple_Pack(4, ((PyObject *)__pyx_n_s__text), ((PyObject *)__pyx_n_s__doc), ((PyObject *)__pyx_n_s__c_node), ((PyObject *)__pyx_n_s__c_doc)); if (unlikely(!__pyx_k_tuple_521)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2811; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_521);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_521));
- __pyx_k_codeobj_522 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_521, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_478, __pyx_n_s__Comment, 2811, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_522)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2811; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_k_tuple_536 = PyTuple_Pack(4, ((PyObject *)__pyx_n_s__text), ((PyObject *)__pyx_n_s__doc), ((PyObject *)__pyx_n_s__c_node), ((PyObject *)__pyx_n_s__c_doc)); if (unlikely(!__pyx_k_tuple_536)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2811; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_536);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_536));
+ __pyx_k_codeobj_537 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_536, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_493, __pyx_n_s__Comment, 2811, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_537)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2811; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2830
* return _elementFactory(doc, c_node)
* u"""ProcessingInstruction(target, text=None)
*
*/
- __pyx_k_tuple_523 = PyTuple_Pack(5, ((PyObject *)__pyx_n_s__target), ((PyObject *)__pyx_n_s__text), ((PyObject *)__pyx_n_s__doc), ((PyObject *)__pyx_n_s__c_node), ((PyObject *)__pyx_n_s__c_doc)); if (unlikely(!__pyx_k_tuple_523)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2830; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_523);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_523));
- __pyx_k_codeobj_524 = (PyObject*)__Pyx_PyCode_New(2, 0, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_523, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_478, __pyx_n_s_78, 2830, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_524)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2830; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_k_tuple_538 = PyTuple_Pack(5, ((PyObject *)__pyx_n_s__target), ((PyObject *)__pyx_n_s__text), ((PyObject *)__pyx_n_s__doc), ((PyObject *)__pyx_n_s__c_node), ((PyObject *)__pyx_n_s__c_doc)); if (unlikely(!__pyx_k_tuple_538)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2830; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_538);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_538));
+ __pyx_k_codeobj_539 = (PyObject*)__Pyx_PyCode_New(2, 0, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_538, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_493, __pyx_n_s_82, 2830, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_539)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2830; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2866
* self._utf8_data = _utf8(data)
* u"""Entity(name)
*
*/
- __pyx_k_tuple_525 = PyTuple_Pack(6, ((PyObject *)__pyx_n_s__name), ((PyObject *)__pyx_n_s__doc), ((PyObject *)__pyx_n_s__c_node), ((PyObject *)__pyx_n_s__c_doc), ((PyObject *)__pyx_n_s__name_utf), ((PyObject *)__pyx_n_s__c_name)); if (unlikely(!__pyx_k_tuple_525)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2866; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_525);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_525));
- __pyx_k_codeobj_526 = (PyObject*)__Pyx_PyCode_New(1, 0, 6, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_525, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_478, __pyx_n_s__Entity, 2866, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_526)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2866; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_k_tuple_540 = PyTuple_Pack(6, ((PyObject *)__pyx_n_s__name), ((PyObject *)__pyx_n_s__doc), ((PyObject *)__pyx_n_s__c_node), ((PyObject *)__pyx_n_s__c_doc), ((PyObject *)__pyx_n_s__name_utf), ((PyObject *)__pyx_n_s__c_name)); if (unlikely(!__pyx_k_tuple_540)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2866; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_540);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_540));
+ __pyx_k_codeobj_541 = (PyObject*)__Pyx_PyCode_New(1, 0, 6, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_540, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_493, __pyx_n_s__Entity, 2866, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_541)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2866; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2891
* return _elementFactory(doc, c_node)
* attrib=None, nsmap=None, **_extra):
* u"""SubElement(_parent, _tag, attrib=None, nsmap=None, **_extra)
*/
- __pyx_k_tuple_527 = PyTuple_Pack(6, ((PyObject *)__pyx_n_s___parent), ((PyObject *)__pyx_n_s___tag), ((PyObject *)__pyx_n_s__attrib), ((PyObject *)__pyx_n_s__nsmap), ((PyObject *)__pyx_n_s___extra), ((PyObject *)__pyx_n_s___extra)); if (unlikely(!__pyx_k_tuple_527)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2891; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_527);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_527));
- __pyx_k_codeobj_528 = (PyObject*)__Pyx_PyCode_New(4, 0, 6, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_527, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_478, __pyx_n_s__SubElement, 2891, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_528)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2891; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_k_tuple_542 = PyTuple_Pack(6, ((PyObject *)__pyx_n_s___parent), ((PyObject *)__pyx_n_s___tag), ((PyObject *)__pyx_n_s__attrib), ((PyObject *)__pyx_n_s__nsmap), ((PyObject *)__pyx_n_s___extra), ((PyObject *)__pyx_n_s___extra)); if (unlikely(!__pyx_k_tuple_542)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2891; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_542);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_542));
+ __pyx_k_codeobj_543 = (PyObject*)__Pyx_PyCode_New(4, 0, 6, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_542, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_493, __pyx_n_s__SubElement, 2891, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_543)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2891; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2900
* return _makeSubElement(_parent, _tag, None, None, attrib, nsmap, _extra)
* u"""ElementTree(element=None, file=None, parser=None)
*
*/
- __pyx_k_tuple_529 = PyTuple_Pack(10, ((PyObject *)__pyx_n_s__element), ((PyObject *)__pyx_n_s__file), ((PyObject *)__pyx_n_s__parser), ((PyObject *)__pyx_n_s__c_next), ((PyObject *)__pyx_n_s__c_node), ((PyObject *)__pyx_n_s__c_node_copy), ((PyObject *)__pyx_n_s__c_doc), ((PyObject *)__pyx_n_s__etree), ((PyObject *)__pyx_n_s__doc), ((PyObject *)__pyx_n_s__result_container)); if (unlikely(!__pyx_k_tuple_529)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2900; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_529);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_529));
- __pyx_k_codeobj_530 = (PyObject*)__Pyx_PyCode_New(3, 2, 10, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_529, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_478, __pyx_n_s__ElementTree, 2900, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_530)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2900; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_k_tuple_544 = PyTuple_Pack(10, ((PyObject *)__pyx_n_s__element), ((PyObject *)__pyx_n_s__file), ((PyObject *)__pyx_n_s__parser), ((PyObject *)__pyx_n_s__c_next), ((PyObject *)__pyx_n_s__c_node), ((PyObject *)__pyx_n_s__c_node_copy), ((PyObject *)__pyx_n_s__c_doc), ((PyObject *)__pyx_n_s__etree), ((PyObject *)__pyx_n_s__doc), ((PyObject *)__pyx_n_s__result_container)); if (unlikely(!__pyx_k_tuple_544)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2900; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_544);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_544));
+ __pyx_k_codeobj_545 = (PyObject*)__Pyx_PyCode_New(3, 2, 10, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_544, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_493, __pyx_n_s__ElementTree, 2900, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_545)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2900; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2925
* return _elementTreeFactory(doc, element)
* u"""HTML(text, parser=None, base_url=None)
*
*/
- __pyx_k_tuple_531 = PyTuple_Pack(5, ((PyObject *)__pyx_n_s__text), ((PyObject *)__pyx_n_s__parser), ((PyObject *)__pyx_n_s__base_url), ((PyObject *)__pyx_n_s__doc), ((PyObject *)__pyx_n_s__result_container)); if (unlikely(!__pyx_k_tuple_531)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2925; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_531);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_531));
- __pyx_k_codeobj_532 = (PyObject*)__Pyx_PyCode_New(3, 1, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_531, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_478, __pyx_n_s__HTML, 2925, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_532)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2925; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_k_tuple_546 = PyTuple_Pack(5, ((PyObject *)__pyx_n_s__text), ((PyObject *)__pyx_n_s__parser), ((PyObject *)__pyx_n_s__base_url), ((PyObject *)__pyx_n_s__doc), ((PyObject *)__pyx_n_s__result_container)); if (unlikely(!__pyx_k_tuple_546)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2925; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_546);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_546));
+ __pyx_k_codeobj_547 = (PyObject*)__Pyx_PyCode_New(3, 1, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_546, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_493, __pyx_n_s__HTML, 2925, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_547)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2925; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2950
* return result_container.result
* u"""XML(text, parser=None, base_url=None)
*
*/
- __pyx_k_tuple_533 = PyTuple_Pack(5, ((PyObject *)__pyx_n_s__text), ((PyObject *)__pyx_n_s__parser), ((PyObject *)__pyx_n_s__base_url), ((PyObject *)__pyx_n_s__doc), ((PyObject *)__pyx_n_s__result_container)); if (unlikely(!__pyx_k_tuple_533)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2950; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_533);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_533));
- __pyx_k_codeobj_534 = (PyObject*)__Pyx_PyCode_New(3, 1, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_533, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_478, __pyx_n_s__XML, 2950, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_534)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2950; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_k_tuple_548 = PyTuple_Pack(5, ((PyObject *)__pyx_n_s__text), ((PyObject *)__pyx_n_s__parser), ((PyObject *)__pyx_n_s__base_url), ((PyObject *)__pyx_n_s__doc), ((PyObject *)__pyx_n_s__result_container)); if (unlikely(!__pyx_k_tuple_548)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2950; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_548);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_548));
+ __pyx_k_codeobj_549 = (PyObject*)__Pyx_PyCode_New(3, 1, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_548, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_493, __pyx_n_s__XML, 2950, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_549)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2950; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2978
* return result_container.result
* u"""fromstring(text, parser=None, base_url=None)
*
*/
- __pyx_k_tuple_535 = PyTuple_Pack(5, ((PyObject *)__pyx_n_s__text), ((PyObject *)__pyx_n_s__parser), ((PyObject *)__pyx_n_s__base_url), ((PyObject *)__pyx_n_s__doc), ((PyObject *)__pyx_n_s__result_container)); if (unlikely(!__pyx_k_tuple_535)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2978; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_535);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_535));
- __pyx_k_codeobj_536 = (PyObject*)__Pyx_PyCode_New(3, 1, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_535, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_478, __pyx_n_s__fromstring, 2978, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_536)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2978; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_k_tuple_550 = PyTuple_Pack(5, ((PyObject *)__pyx_n_s__text), ((PyObject *)__pyx_n_s__parser), ((PyObject *)__pyx_n_s__base_url), ((PyObject *)__pyx_n_s__doc), ((PyObject *)__pyx_n_s__result_container)); if (unlikely(!__pyx_k_tuple_550)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2978; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_550);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_550));
+ __pyx_k_codeobj_551 = (PyObject*)__Pyx_PyCode_New(3, 1, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_550, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_493, __pyx_n_s__fromstring, 2978, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_551)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2978; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2998
* return result_container.result
* u"""fromstringlist(strings, parser=None)
*
*/
- __pyx_k_tuple_537 = PyTuple_Pack(5, ((PyObject *)__pyx_n_s__strings), ((PyObject *)__pyx_n_s__parser), ((PyObject *)__pyx_n_s__doc), ((PyObject *)__pyx_n_s__feed), ((PyObject *)__pyx_n_s__data)); if (unlikely(!__pyx_k_tuple_537)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2998; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_537);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_537));
- __pyx_k_codeobj_538 = (PyObject*)__Pyx_PyCode_New(2, 0, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_537, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_478, __pyx_n_s__fromstringlist, 2998, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_538)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2998; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_k_tuple_552 = PyTuple_Pack(5, ((PyObject *)__pyx_n_s__strings), ((PyObject *)__pyx_n_s__parser), ((PyObject *)__pyx_n_s__doc), ((PyObject *)__pyx_n_s__feed), ((PyObject *)__pyx_n_s__data)); if (unlikely(!__pyx_k_tuple_552)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2998; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_552);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_552));
+ __pyx_k_codeobj_553 = (PyObject*)__Pyx_PyCode_New(2, 0, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_552, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_493, __pyx_n_s__fromstringlist, 2998, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_553)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2998; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3015
* return parser.close()
* u"""iselement(element)
*
*/
- __pyx_k_tuple_539 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__element)); if (unlikely(!__pyx_k_tuple_539)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3015; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_539);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_539));
- __pyx_k_codeobj_540 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_539, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_478, __pyx_n_s__iselement, 3015, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_540)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3015; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_k_tuple_554 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__element)); if (unlikely(!__pyx_k_tuple_554)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3015; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_554);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_554));
+ __pyx_k_codeobj_555 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_554, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_493, __pyx_n_s__iselement, 3015, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_555)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3015; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3022
* return isinstance(element, _Element) and (<_Element>element)._c_node is not NULL
* u"""dump(elem, pretty_print=True, with_tail=True)
*
*/
- __pyx_k_tuple_541 = PyTuple_Pack(4, ((PyObject *)__pyx_n_s__elem), ((PyObject *)__pyx_n_s__pretty_print), ((PyObject *)__pyx_n_s__with_tail), ((PyObject *)__pyx_n_s__xml)); if (unlikely(!__pyx_k_tuple_541)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3022; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_541);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_541));
- __pyx_k_codeobj_542 = (PyObject*)__Pyx_PyCode_New(3, 2, 4, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_541, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_478, __pyx_n_s__dump, 3022, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_542)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3022; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_k_tuple_556 = PyTuple_Pack(4, ((PyObject *)__pyx_n_s__elem), ((PyObject *)__pyx_n_s__pretty_print), ((PyObject *)__pyx_n_s__with_tail), ((PyObject *)__pyx_n_s__xml)); if (unlikely(!__pyx_k_tuple_556)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3022; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_556);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_556));
+ __pyx_k_codeobj_557 = (PyObject*)__Pyx_PyCode_New(3, 2, 4, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_556, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_493, __pyx_n_s__dump, 3022, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_557)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3022; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3034
* sys.stdout.write(xml)
* xml_declaration=None, bint pretty_print=False, bint with_tail=True,
* standalone=None, doctype=None,
*/
- __pyx_k_tuple_543 = PyTuple_Pack(13, ((PyObject *)__pyx_n_s__element_or_tree), ((PyObject *)__pyx_n_s__encoding), ((PyObject *)__pyx_n_s__method), ((PyObject *)__pyx_n_s__xml_declaration), ((PyObject *)__pyx_n_s__pretty_print), ((PyObject *)__pyx_n_s__with_tail), ((PyObject *)__pyx_n_s__standalone), ((PyObject *)__pyx_n_s__doctype), ((PyObject *)__pyx_n_s__exclusive), ((PyObject *)__pyx_n_s__with_comments), ((PyObject *)__pyx_n_s_89), ((PyObject *)__pyx_n_s__write_declaration), ((PyObject *)__pyx_n_s__is_standalone)); if (unlikely(!__pyx_k_tuple_543)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3034; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_543);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_543));
- __pyx_k_codeobj_544 = (PyObject*)__Pyx_PyCode_New(11, 10, 13, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_543, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_478, __pyx_n_s__tostring, 3034, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_544)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3034; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_k_tuple_558 = PyTuple_Pack(13, ((PyObject *)__pyx_n_s__element_or_tree), ((PyObject *)__pyx_n_s__encoding), ((PyObject *)__pyx_n_s__method), ((PyObject *)__pyx_n_s__xml_declaration), ((PyObject *)__pyx_n_s__pretty_print), ((PyObject *)__pyx_n_s__with_tail), ((PyObject *)__pyx_n_s__standalone), ((PyObject *)__pyx_n_s__doctype), ((PyObject *)__pyx_n_s__exclusive), ((PyObject *)__pyx_n_s__with_comments), ((PyObject *)__pyx_n_s_93), ((PyObject *)__pyx_n_s__write_declaration), ((PyObject *)__pyx_n_s__is_standalone)); if (unlikely(!__pyx_k_tuple_558)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3034; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_558);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_558));
+ __pyx_k_codeobj_559 = (PyObject*)__Pyx_PyCode_New(11, 10, 13, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_558, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_493, __pyx_n_s__tostring, 3034, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_559)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3034; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3126
* python._fqtypename(element_or_tree)
* u"""tostringlist(element_or_tree, *args, **kwargs)
*
*/
- __pyx_k_tuple_545 = PyTuple_Pack(5, ((PyObject *)__pyx_n_s__element_or_tree), ((PyObject *)__pyx_n_s__args), ((PyObject *)__pyx_n_s__kwargs), ((PyObject *)__pyx_n_s__args), ((PyObject *)__pyx_n_s__kwargs)); if (unlikely(!__pyx_k_tuple_545)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_545);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_545));
- __pyx_k_codeobj_546 = (PyObject*)__Pyx_PyCode_New(1, 0, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_545, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_478, __pyx_n_s__tostringlist, 3126, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_546)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_k_tuple_560 = PyTuple_Pack(5, ((PyObject *)__pyx_n_s__element_or_tree), ((PyObject *)__pyx_n_s__args), ((PyObject *)__pyx_n_s__kwargs), ((PyObject *)__pyx_n_s__args), ((PyObject *)__pyx_n_s__kwargs)); if (unlikely(!__pyx_k_tuple_560)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_560);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_560));
+ __pyx_k_codeobj_561 = (PyObject*)__Pyx_PyCode_New(1, 0, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_560, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_493, __pyx_n_s__tostringlist, 3126, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_561)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3137
* return [tostring(element_or_tree, *args, **kwargs)]
* bint with_tail=True, doctype=None):
* u"""tounicode(element_or_tree, method="xml", pretty_print=False,
*/
- __pyx_k_tuple_547 = PyTuple_Pack(5, ((PyObject *)__pyx_n_s__element_or_tree), ((PyObject *)__pyx_n_s__method), ((PyObject *)__pyx_n_s__pretty_print), ((PyObject *)__pyx_n_s__with_tail), ((PyObject *)__pyx_n_s__doctype)); if (unlikely(!__pyx_k_tuple_547)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_547);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_547));
- __pyx_k_codeobj_548 = (PyObject*)__Pyx_PyCode_New(5, 4, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_547, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_478, __pyx_n_s__tounicode, 3137, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_548)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_k_tuple_562 = PyTuple_Pack(5, ((PyObject *)__pyx_n_s__element_or_tree), ((PyObject *)__pyx_n_s__method), ((PyObject *)__pyx_n_s__pretty_print), ((PyObject *)__pyx_n_s__with_tail), ((PyObject *)__pyx_n_s__doctype)); if (unlikely(!__pyx_k_tuple_562)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_562);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_562));
+ __pyx_k_codeobj_563 = (PyObject*)__Pyx_PyCode_New(5, 4, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_562, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_493, __pyx_n_s__tounicode, 3137, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_563)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3171
* type(element_or_tree)
* u"""parse(source, parser=None, base_url=None)
*
*/
- __pyx_k_tuple_549 = PyTuple_Pack(5, ((PyObject *)__pyx_n_s__source), ((PyObject *)__pyx_n_s__parser), ((PyObject *)__pyx_n_s__base_url), ((PyObject *)__pyx_n_s__doc), ((PyObject *)__pyx_n_s__result_container)); if (unlikely(!__pyx_k_tuple_549)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3171; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_549);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_549));
- __pyx_k_codeobj_550 = (PyObject*)__Pyx_PyCode_New(3, 1, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_549, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_478, __pyx_n_s__parse, 3171, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_550)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3171; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_k_tuple_564 = PyTuple_Pack(5, ((PyObject *)__pyx_n_s__source), ((PyObject *)__pyx_n_s__parser), ((PyObject *)__pyx_n_s__base_url), ((PyObject *)__pyx_n_s__doc), ((PyObject *)__pyx_n_s__result_container)); if (unlikely(!__pyx_k_tuple_564)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3171; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_564);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_564));
+ __pyx_k_codeobj_565 = (PyObject*)__Pyx_PyCode_New(3, 1, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_564, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_493, __pyx_n_s__parse, 3171, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_565)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3171; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":515
* LOOKUP_ELEMENT_CLASS = function
* u"""set_element_class_lookup(lookup = None)
*
*/
- __pyx_k_tuple_551 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__lookup)); if (unlikely(!__pyx_k_tuple_551)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 515; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_551);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_551));
- __pyx_k_codeobj_552 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_551, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_553, __pyx_n_s_170, 515, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_552)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 515; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_k_tuple_566 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__lookup)); if (unlikely(!__pyx_k_tuple_566)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 515; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_566);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_566));
+ __pyx_k_codeobj_567 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_566, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_568, __pyx_n_s_179, 515, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_567)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 515; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/nsclasses.pxi":175
* __FUNCTION_NAMESPACE_REGISTRIES = {}
* u"""FunctionNamespace(ns_uri)
*
*/
- __pyx_k_tuple_556 = PyTuple_Pack(3, ((PyObject *)__pyx_n_s__ns_uri), ((PyObject *)__pyx_n_s__ns_utf), ((PyObject *)__pyx_n_s__registry)); if (unlikely(!__pyx_k_tuple_556)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_556);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_556));
- __pyx_k_codeobj_557 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_556, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_558, __pyx_n_s__FunctionNamespace, 175, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_557)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_k_tuple_571 = PyTuple_Pack(3, ((PyObject *)__pyx_n_s__ns_uri), ((PyObject *)__pyx_n_s__ns_utf), ((PyObject *)__pyx_n_s__registry)); if (unlikely(!__pyx_k_tuple_571)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_571);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_571));
+ __pyx_k_codeobj_572 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_571, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_573, __pyx_n_s__FunctionNamespace, 175, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_572)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":18
* For compatibility with ElementTree 1.3 and later.
* if python.PY_VERSION_HEX >= 0x02050000:
* # Python >= 2.5 uses new style class exceptions
*/
- __pyx_k_tuple_559 = PyTuple_Pack(5, ((PyObject *)__pyx_n_s__self), ((PyObject *)__pyx_n_s__message), ((PyObject *)__pyx_n_s__code), ((PyObject *)__pyx_n_s__line), ((PyObject *)__pyx_n_s__column)); if (unlikely(!__pyx_k_tuple_559)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_559);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_559));
- __pyx_k_codeobj_560 = (PyObject*)__Pyx_PyCode_New(5, 0, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_559, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_561, __pyx_n_s____init__, 18, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_560)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_k_tuple_574 = PyTuple_Pack(5, ((PyObject *)__pyx_n_s__self), ((PyObject *)__pyx_n_s__message), ((PyObject *)__pyx_n_s__code), ((PyObject *)__pyx_n_s__line), ((PyObject *)__pyx_n_s__column)); if (unlikely(!__pyx_k_tuple_574)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_574);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_574));
+ __pyx_k_codeobj_575 = (PyObject*)__Pyx_PyCode_New(5, 0, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_574, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_576, __pyx_n_s____init__, 18, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_575)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1360
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1383
* __GLOBAL_PARSER_CONTEXT.setDefaultParser(__DEFAULT_XML_PARSER)
*
* def set_default_parser(_BaseParser parser=None): # <<<<<<<<<<<<<<
* u"""set_default_parser(parser=None)
*
*/
- __pyx_k_tuple_566 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__parser)); if (unlikely(!__pyx_k_tuple_566)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1360; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_566);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_566));
- __pyx_k_codeobj_567 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_566, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_561, __pyx_n_s__set_default_parser, 1360, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_567)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1360; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_k_tuple_581 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__parser)); if (unlikely(!__pyx_k_tuple_581)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1383; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_581);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_581));
+ __pyx_k_codeobj_582 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_581, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_576, __pyx_n_s__set_default_parser, 1383, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_582)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1383; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1376
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1399
* __GLOBAL_PARSER_CONTEXT.setDefaultParser(parser)
*
* def get_default_parser(): # <<<<<<<<<<<<<<
* u"get_default_parser()"
* return __GLOBAL_PARSER_CONTEXT.getDefaultParser()
*/
- __pyx_k_codeobj_568 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_561, __pyx_n_s__get_default_parser, 1376, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_568)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1376; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_k_codeobj_583 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_576, __pyx_n_s__get_default_parser, 1399, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_583)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1399; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parsertarget.pxi":10
* # to push the Python level parser result through the parser
* self.result = result
*
*/
- __pyx_k_tuple_569 = PyTuple_Pack(2, ((PyObject *)__pyx_n_s__self), ((PyObject *)__pyx_n_s__result)); if (unlikely(!__pyx_k_tuple_569)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_569);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_569));
- __pyx_k_codeobj_570 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_569, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_571, __pyx_n_s____init__, 10, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_570)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_k_tuple_584 = PyTuple_Pack(2, ((PyObject *)__pyx_n_s__self), ((PyObject *)__pyx_n_s__result)); if (unlikely(!__pyx_k_tuple_584)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_584);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_584));
+ __pyx_k_codeobj_585 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_584, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_586, __pyx_n_s____init__, 10, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_585)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlid.pxi":3
* cdef object _find_id_attributes
* u"""XMLID(text, parser=None, base_url=None)
*
*/
- __pyx_k_tuple_574 = PyTuple_Pack(6, ((PyObject *)__pyx_n_s__text), ((PyObject *)__pyx_n_s__parser), ((PyObject *)__pyx_n_s__base_url), ((PyObject *)__pyx_n_s__dic), ((PyObject *)__pyx_n_s__root), ((PyObject *)__pyx_n_s__elem)); if (unlikely(!__pyx_k_tuple_574)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_574);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_574));
- __pyx_k_codeobj_575 = (PyObject*)__Pyx_PyCode_New(3, 1, 6, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_574, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_576, __pyx_n_s__XMLID, 3, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_575)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_k_tuple_589 = PyTuple_Pack(6, ((PyObject *)__pyx_n_s__text), ((PyObject *)__pyx_n_s__parser), ((PyObject *)__pyx_n_s__base_url), ((PyObject *)__pyx_n_s__dic), ((PyObject *)__pyx_n_s__root), ((PyObject *)__pyx_n_s__elem)); if (unlikely(!__pyx_k_tuple_589)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_589);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_589));
+ __pyx_k_codeobj_590 = (PyObject*)__Pyx_PyCode_New(3, 1, 6, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_589, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_591, __pyx_n_s__XMLID, 3, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_590)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlid.pxi":24
* return (root, dic)
* u"""XMLDTDID(text, parser=None, base_url=None)
*
*/
- __pyx_k_tuple_577 = PyTuple_Pack(4, ((PyObject *)__pyx_n_s__text), ((PyObject *)__pyx_n_s__parser), ((PyObject *)__pyx_n_s__base_url), ((PyObject *)__pyx_n_s__root)); if (unlikely(!__pyx_k_tuple_577)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_577);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_577));
- __pyx_k_codeobj_578 = (PyObject*)__Pyx_PyCode_New(3, 1, 4, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_577, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_576, __pyx_n_s__XMLDTDID, 24, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_578)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_k_tuple_592 = PyTuple_Pack(4, ((PyObject *)__pyx_n_s__text), ((PyObject *)__pyx_n_s__parser), ((PyObject *)__pyx_n_s__base_url), ((PyObject *)__pyx_n_s__root)); if (unlikely(!__pyx_k_tuple_592)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_592);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_592));
+ __pyx_k_codeobj_593 = (PyObject*)__Pyx_PyCode_New(3, 1, 4, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_592, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_591, __pyx_n_s__XMLDTDID, 24, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_593)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlid.pxi":44
* return (root, _IDDict(root))
* u"""parseid(source, parser=None)
*
*/
- __pyx_k_tuple_579 = PyTuple_Pack(4, ((PyObject *)__pyx_n_s__source), ((PyObject *)__pyx_n_s__parser), ((PyObject *)__pyx_n_s__base_url), ((PyObject *)__pyx_n_s__doc)); if (unlikely(!__pyx_k_tuple_579)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_579);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_579));
- __pyx_k_codeobj_580 = (PyObject*)__Pyx_PyCode_New(3, 1, 4, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_579, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_576, __pyx_n_s__parseid, 44, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_580)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_k_tuple_594 = PyTuple_Pack(4, ((PyObject *)__pyx_n_s__source), ((PyObject *)__pyx_n_s__parser), ((PyObject *)__pyx_n_s__base_url), ((PyObject *)__pyx_n_s__doc)); if (unlikely(!__pyx_k_tuple_594)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_594);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_594));
+ __pyx_k_codeobj_595 = (PyObject*)__Pyx_PyCode_New(3, 1, 4, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_594, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_591, __pyx_n_s__parseid, 44, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_595)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/cleanup.pxi":3
* # functions for tree cleanup and removing elements from subtrees
* u"""cleanup_namespaces(tree_or_element)
*
*/
- __pyx_k_tuple_582 = PyTuple_Pack(2, ((PyObject *)__pyx_n_s__tree_or_element), ((PyObject *)__pyx_n_s__element)); if (unlikely(!__pyx_k_tuple_582)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_582);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_582));
- __pyx_k_codeobj_583 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_582, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_584, __pyx_n_s__cleanup_namespaces, 3, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_583)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_k_tuple_597 = PyTuple_Pack(2, ((PyObject *)__pyx_n_s__tree_or_element), ((PyObject *)__pyx_n_s__element)); if (unlikely(!__pyx_k_tuple_597)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_597);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_597));
+ __pyx_k_codeobj_598 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_597, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_599, __pyx_n_s__cleanup_namespaces, 3, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_598)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/cleanup.pxi":13
* _removeUnusedNamespaceDeclarations(element._c_node)
* u"""strip_attributes(tree_or_element, *attribute_names)
*
*/
- __pyx_k_tuple_585 = PyTuple_Pack(5, ((PyObject *)__pyx_n_s__tree_or_element), ((PyObject *)__pyx_n_s__attribute_names), ((PyObject *)__pyx_n_s__attribute_names), ((PyObject *)__pyx_n_s__matcher), ((PyObject *)__pyx_n_s__element)); if (unlikely(!__pyx_k_tuple_585)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_585);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_585));
- __pyx_k_codeobj_586 = (PyObject*)__Pyx_PyCode_New(1, 0, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_585, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_584, __pyx_n_s__strip_attributes, 13, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_586)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_k_tuple_600 = PyTuple_Pack(5, ((PyObject *)__pyx_n_s__tree_or_element), ((PyObject *)__pyx_n_s__attribute_names), ((PyObject *)__pyx_n_s__attribute_names), ((PyObject *)__pyx_n_s__matcher), ((PyObject *)__pyx_n_s__element)); if (unlikely(!__pyx_k_tuple_600)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_600);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_600));
+ __pyx_k_codeobj_601 = (PyObject*)__Pyx_PyCode_New(1, 0, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_600, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_599, __pyx_n_s__strip_attributes, 13, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_601)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/cleanup.pxi":54
* tree.END_FOR_EACH_ELEMENT_FROM(c_node)
* u"""strip_elements(tree_or_element, *tag_names, with_tail=True)
*
*/
- __pyx_k_tuple_587 = PyTuple_Pack(13, ((PyObject *)__pyx_n_s__tree_or_element), ((PyObject *)__pyx_n_s__with_tail), ((PyObject *)__pyx_n_s__tag_names), ((PyObject *)__pyx_n_s__tag_names), ((PyObject *)__pyx_n_s__matcher), ((PyObject *)__pyx_n_s__element), ((PyObject *)__pyx_n_s__doc), ((PyObject *)__pyx_n_s__ns_tags), ((PyObject *)__pyx_n_s__c_ns_tags), ((PyObject *)__pyx_n_s__c_tag_count), ((PyObject *)__pyx_n_s__strip_comments), ((PyObject *)__pyx_n_s__strip_pis), ((PyObject *)__pyx_n_s__strip_entities)); if (unlikely(!__pyx_k_tuple_587)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_587);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_587));
- __pyx_k_codeobj_588 = (PyObject*)__Pyx_PyCode_New(2, 1, 13, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_587, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_584, __pyx_n_s__strip_elements, 54, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_588)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_k_tuple_602 = PyTuple_Pack(13, ((PyObject *)__pyx_n_s__tree_or_element), ((PyObject *)__pyx_n_s__with_tail), ((PyObject *)__pyx_n_s__tag_names), ((PyObject *)__pyx_n_s__tag_names), ((PyObject *)__pyx_n_s__matcher), ((PyObject *)__pyx_n_s__element), ((PyObject *)__pyx_n_s__doc), ((PyObject *)__pyx_n_s__ns_tags), ((PyObject *)__pyx_n_s__c_ns_tags), ((PyObject *)__pyx_n_s__c_tag_count), ((PyObject *)__pyx_n_s__strip_comments), ((PyObject *)__pyx_n_s__strip_pis), ((PyObject *)__pyx_n_s__strip_entities)); if (unlikely(!__pyx_k_tuple_602)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_602);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_602));
+ __pyx_k_codeobj_603 = (PyObject*)__Pyx_PyCode_New(2, 1, 13, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_602, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_599, __pyx_n_s__strip_elements, 54, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_603)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/cleanup.pxi":132
*
* u"""strip_tags(tree_or_element, *tag_names)
*
*/
- __pyx_k_tuple_589 = PyTuple_Pack(12, ((PyObject *)__pyx_n_s__tree_or_element), ((PyObject *)__pyx_n_s__tag_names), ((PyObject *)__pyx_n_s__tag_names), ((PyObject *)__pyx_n_s__matcher), ((PyObject *)__pyx_n_s__element), ((PyObject *)__pyx_n_s__doc), ((PyObject *)__pyx_n_s__ns_tags), ((PyObject *)__pyx_n_s__strip_comments), ((PyObject *)__pyx_n_s__strip_pis), ((PyObject *)__pyx_n_s__strip_entities), ((PyObject *)__pyx_n_s__c_ns_tags), ((PyObject *)__pyx_n_s__c_tag_count)); if (unlikely(!__pyx_k_tuple_589)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_589);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_589));
- __pyx_k_codeobj_590 = (PyObject*)__Pyx_PyCode_New(1, 0, 12, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_589, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_584, __pyx_n_s__strip_tags, 132, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_590)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_k_tuple_604 = PyTuple_Pack(12, ((PyObject *)__pyx_n_s__tree_or_element), ((PyObject *)__pyx_n_s__tag_names), ((PyObject *)__pyx_n_s__tag_names), ((PyObject *)__pyx_n_s__matcher), ((PyObject *)__pyx_n_s__element), ((PyObject *)__pyx_n_s__doc), ((PyObject *)__pyx_n_s__ns_tags), ((PyObject *)__pyx_n_s__strip_comments), ((PyObject *)__pyx_n_s__strip_pis), ((PyObject *)__pyx_n_s__strip_entities), ((PyObject *)__pyx_n_s__c_ns_tags), ((PyObject *)__pyx_n_s__c_tag_count)); if (unlikely(!__pyx_k_tuple_604)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_604);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_604));
+ __pyx_k_codeobj_605 = (PyObject*)__Pyx_PyCode_New(1, 0, 12, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_604, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_599, __pyx_n_s__strip_tags, 132, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_605)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":425
*
* u"""Extension(module, function_mapping=None, ns=None)
*
*/
- __pyx_k_tuple_618 = PyTuple_Pack(7, ((PyObject *)__pyx_n_s__module), ((PyObject *)__pyx_n_s__function_mapping), ((PyObject *)__pyx_n_s__ns), ((PyObject *)__pyx_n_s__functions), ((PyObject *)__pyx_n_s__function_name), ((PyObject *)__pyx_n_s__xpath_name), ((PyObject *)__pyx_n_s__name)); if (unlikely(!__pyx_k_tuple_618)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_618);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_618));
- __pyx_k_codeobj_619 = (PyObject*)__Pyx_PyCode_New(3, 1, 7, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_618, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_620, __pyx_n_s__Extension, 425, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_619)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_k_tuple_633 = PyTuple_Pack(7, ((PyObject *)__pyx_n_s__module), ((PyObject *)__pyx_n_s__function_mapping), ((PyObject *)__pyx_n_s__ns), ((PyObject *)__pyx_n_s__functions), ((PyObject *)__pyx_n_s__function_name), ((PyObject *)__pyx_n_s__xpath_name), ((PyObject *)__pyx_n_s__name)); if (unlikely(!__pyx_k_tuple_633)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_633);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_633));
+ __pyx_k_codeobj_634 = (PyObject*)__Pyx_PyCode_New(3, 1, 7, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_633, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_635, __pyx_n_s__Extension, 425, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_634)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":734
* # we need to use a Python class here, bytes cannot be C-subclassed
* return self._parent
*
*/
- __pyx_k_tuple_621 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__self)); if (unlikely(!__pyx_k_tuple_621)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 734; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_621);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_621));
- __pyx_k_codeobj_622 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_621, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_620, __pyx_n_s__getparent, 734, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_622)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 734; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_k_tuple_636 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__self)); if (unlikely(!__pyx_k_tuple_636)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 734; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_636);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_636));
+ __pyx_k_codeobj_637 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_636, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_635, __pyx_n_s__getparent, 734, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_637)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 734; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":384
*
* regexp=True, smart_strings=True):
* u"""XPathEvaluator(etree_or_element, namespaces=None, extensions=None, regexp=True, smart_strings=True)
*/
- __pyx_k_tuple_624 = PyTuple_Pack(5, ((PyObject *)__pyx_n_s__etree_or_element), ((PyObject *)__pyx_n_s__namespaces), ((PyObject *)__pyx_n_s__extensions), ((PyObject *)__pyx_n_s__regexp), ((PyObject *)__pyx_n_s__smart_strings)); if (unlikely(!__pyx_k_tuple_624)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_624);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_624));
- __pyx_k_codeobj_625 = (PyObject*)__Pyx_PyCode_New(5, 4, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_624, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_626, __pyx_n_s__XPathEvaluator, 384, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_625)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_k_tuple_639 = PyTuple_Pack(5, ((PyObject *)__pyx_n_s__etree_or_element), ((PyObject *)__pyx_n_s__namespaces), ((PyObject *)__pyx_n_s__extensions), ((PyObject *)__pyx_n_s__regexp), ((PyObject *)__pyx_n_s__smart_strings)); if (unlikely(!__pyx_k_tuple_639)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_639);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_639));
+ __pyx_k_codeobj_640 = (PyObject*)__Pyx_PyCode_New(5, 4, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_639, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_641, __pyx_n_s__XPathEvaluator, 384, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_640)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":482
* cdef object _replace_strings
* _find_namespaces = re.compile(b'({[^}]+})').findall
*
*/
- __pyx_k_tuple_628 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_b_627)); if (unlikely(!__pyx_k_tuple_628)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 482; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_628);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_628));
+ __pyx_k_tuple_643 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_b_642)); if (unlikely(!__pyx_k_tuple_643)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 482; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_643);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_643));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":483
* cdef object _find_namespaces
*
* cdef class ETXPath(XPath):
*/
- __pyx_k_tuple_630 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_b_629)); if (unlikely(!__pyx_k_tuple_630)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 483; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_630);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_630));
+ __pyx_k_tuple_645 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_b_644)); if (unlikely(!__pyx_k_tuple_645)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 483; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_645);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_645));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":432
*
* u"""strparam(strval)
*
*/
- __pyx_k_tuple_636 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__strval)); if (unlikely(!__pyx_k_tuple_636)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_636);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_636));
- __pyx_k_codeobj_637 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_636, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_638, __pyx_n_s__strparam, 432, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_637)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_k_tuple_651 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__strval)); if (unlikely(!__pyx_k_tuple_651)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_651);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_651));
+ __pyx_k_codeobj_652 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_651, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_653, __pyx_n_s__strparam, 432, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_652)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":446
*
* u"""set_global_max_depth(max_depth)
*
*/
- __pyx_k_tuple_639 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__max_depth)); if (unlikely(!__pyx_k_tuple_639)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_639);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_639));
- __pyx_k_codeobj_640 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_639, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_638, __pyx_n_s_641, 446, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_640)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_k_tuple_654 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__max_depth)); if (unlikely(!__pyx_k_tuple_654)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_654);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_654));
+ __pyx_k_codeobj_655 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_654, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_653, __pyx_n_s_656, 446, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_655)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":833
* # XSLT PI support
* cdef object _FIND_PI_HREF = _RE_PI_HREF.findall
* cdef object _REPLACE_PI_HREF = _RE_PI_HREF.sub
*/
- __pyx_k_tuple_643 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_642)); if (unlikely(!__pyx_k_tuple_643)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 833; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_643);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_643));
+ __pyx_k_tuple_658 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_657)); if (unlikely(!__pyx_k_tuple_658)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 833; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_658);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_658));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlschema.pxi":22
* # XMLSchema
* u"boolean(//xs:attribute[@default or @fixed][1])",
* namespaces={u'xs': u'http://www.w3.org/2001/XMLSchema'})
*/
- __pyx_k_tuple_655 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_654)); if (unlikely(!__pyx_k_tuple_655)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_655);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_655));
+ __pyx_k_tuple_670 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_669)); if (unlikely(!__pyx_k_tuple_670)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_670);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_670));
__Pyx_RefNannyFinishContext();
return 0;
__pyx_L1_error:;
if (__Pyx_InitStrings(__pyx_string_tab) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
__pyx_int_0 = PyInt_FromLong(0); if (unlikely(!__pyx_int_0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
__pyx_int_1 = PyInt_FromLong(1); if (unlikely(!__pyx_int_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
+ __pyx_int_2 = PyInt_FromLong(2); if (unlikely(!__pyx_int_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
+ __pyx_int_3 = PyInt_FromLong(3); if (unlikely(!__pyx_int_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
+ __pyx_int_4 = PyInt_FromLong(4); if (unlikely(!__pyx_int_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
+ __pyx_int_5 = PyInt_FromLong(5); if (unlikely(!__pyx_int_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
__pyx_int_neg_1 = PyInt_FromLong(-1); if (unlikely(!__pyx_int_neg_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
__pyx_int_100 = PyInt_FromLong(100); if (unlikely(!__pyx_int_100)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
__pyx_int_neg_100 = PyInt_FromLong(-100); if (unlikely(!__pyx_int_neg_100)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
PyObject *__pyx_t_13 = NULL;
PyObject *__pyx_t_14 = NULL;
PyObject *__pyx_t_15 = NULL;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
__Pyx_RefNannyDeclarations
#if CYTHON_REFNANNY
__Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny");
#endif
/*--- Module creation code ---*/
#if PY_MAJOR_VERSION < 3
- __pyx_m = Py_InitModule4(__Pyx_NAMESTR("etree"), __pyx_methods, __Pyx_DOCSTR(__pyx_k_452), 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m);
+ __pyx_m = Py_InitModule4(__Pyx_NAMESTR("etree"), __pyx_methods, __Pyx_DOCSTR(__pyx_k_467), 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m);
#else
__pyx_m = PyModule_Create(&__pyx_moduledef);
#endif
if (unlikely(!__pyx_m)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_d = PyModule_GetDict(__pyx_m); if (unlikely(!__pyx_d)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_d);
#if PY_MAJOR_VERSION >= 3
{
PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
if (__Pyx_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
/*--- Initialize various global constants etc. ---*/
if (unlikely(__Pyx_InitGlobals() < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ #if PY_MAJOR_VERSION < 3 && (__PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT)
+ if (__Pyx_init_sys_getdefaultencoding_params() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ #endif
if (__pyx_module_is_main_lxml__etree) {
if (__Pyx_SetAttrString(__pyx_m, "__name__", __pyx_n_s____main__) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
}
__pyx_vtable_4lxml_5etree__BaseParser._parseDoc = (xmlDoc *(*)(struct __pyx_obj_4lxml_5etree__BaseParser *, char *, Py_ssize_t, char *))__pyx_f_4lxml_5etree_11_BaseParser__parseDoc;
__pyx_vtable_4lxml_5etree__BaseParser._parseDocFromFile = (xmlDoc *(*)(struct __pyx_obj_4lxml_5etree__BaseParser *, char *))__pyx_f_4lxml_5etree_11_BaseParser__parseDocFromFile;
__pyx_vtable_4lxml_5etree__BaseParser._parseDocFromFilelike = (xmlDoc *(*)(struct __pyx_obj_4lxml_5etree__BaseParser *, PyObject *, PyObject *))__pyx_f_4lxml_5etree_11_BaseParser__parseDocFromFilelike;
- if (PyType_Ready(&__pyx_type_4lxml_5etree__BaseParser) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 707; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__BaseParser.tp_dict, __pyx_vtabptr_4lxml_5etree__BaseParser) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 707; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyType_Ready(&__pyx_type_4lxml_5etree__BaseParser) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 727; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__BaseParser.tp_dict, __pyx_vtabptr_4lxml_5etree__BaseParser) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 727; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_ptype_4lxml_5etree__BaseParser = &__pyx_type_4lxml_5etree__BaseParser;
if (PyType_Ready(&__pyx_type_4lxml_5etree_QName) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1667; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
if (__Pyx_SetAttrString(__pyx_m, "QName", (PyObject *)&__pyx_type_4lxml_5etree_QName) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1667; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_vtable_4lxml_5etree__ParserContext._handleParseResult = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__ParserContext *, struct __pyx_obj_4lxml_5etree__BaseParser *, xmlDoc *, PyObject *))__pyx_f_4lxml_5etree_14_ParserContext__handleParseResult;
__pyx_vtable_4lxml_5etree__ParserContext._handleParseResultDoc = (xmlDoc *(*)(struct __pyx_obj_4lxml_5etree__ParserContext *, struct __pyx_obj_4lxml_5etree__BaseParser *, xmlDoc *, PyObject *))__pyx_f_4lxml_5etree_14_ParserContext__handleParseResultDoc;
__pyx_type_4lxml_5etree__ParserContext.tp_base = __pyx_ptype_4lxml_5etree__ResolverContext;
- if (PyType_Ready(&__pyx_type_4lxml_5etree__ParserContext) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 487; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__ParserContext.tp_dict, __pyx_vtabptr_4lxml_5etree__ParserContext) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 487; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyType_Ready(&__pyx_type_4lxml_5etree__ParserContext) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 499; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__ParserContext.tp_dict, __pyx_vtabptr_4lxml_5etree__ParserContext) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 499; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_ptype_4lxml_5etree__ParserContext = &__pyx_type_4lxml_5etree__ParserContext;
__pyx_vtabptr_4lxml_5etree__SaxParserContext = &__pyx_vtable_4lxml_5etree__SaxParserContext;
__pyx_vtable_4lxml_5etree__SaxParserContext.__pyx_base = *__pyx_vtabptr_4lxml_5etree__ParserContext;
__pyx_vtabptr_4lxml_5etree__FeedParser = &__pyx_vtable_4lxml_5etree__FeedParser;
__pyx_vtable_4lxml_5etree__FeedParser.__pyx_base = *__pyx_vtabptr_4lxml_5etree__BaseParser;
__pyx_type_4lxml_5etree__FeedParser.tp_base = __pyx_ptype_4lxml_5etree__BaseParser;
- if (PyType_Ready(&__pyx_type_4lxml_5etree__FeedParser) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1055; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__FeedParser.tp_dict, __pyx_vtabptr_4lxml_5etree__FeedParser) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1055; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- if (__Pyx_SetAttrString(__pyx_m, "_FeedParser", (PyObject *)&__pyx_type_4lxml_5etree__FeedParser) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1055; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyType_Ready(&__pyx_type_4lxml_5etree__FeedParser) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1078; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__FeedParser.tp_dict, __pyx_vtabptr_4lxml_5etree__FeedParser) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1078; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__Pyx_SetAttrString(__pyx_m, "_FeedParser", (PyObject *)&__pyx_type_4lxml_5etree__FeedParser) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1078; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_ptype_4lxml_5etree__FeedParser = &__pyx_type_4lxml_5etree__FeedParser;
__pyx_vtabptr_4lxml_5etree_XMLParser = &__pyx_vtable_4lxml_5etree_XMLParser;
__pyx_vtable_4lxml_5etree_XMLParser.__pyx_base = *__pyx_vtabptr_4lxml_5etree__FeedParser;
__pyx_type_4lxml_5etree_XMLParser.tp_base = __pyx_ptype_4lxml_5etree__FeedParser;
- if (PyType_Ready(&__pyx_type_4lxml_5etree_XMLParser) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1230; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_XMLParser.tp_dict, __pyx_vtabptr_4lxml_5etree_XMLParser) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1230; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- if (__Pyx_SetAttrString(__pyx_m, "XMLParser", (PyObject *)&__pyx_type_4lxml_5etree_XMLParser) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1230; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyType_Ready(&__pyx_type_4lxml_5etree_XMLParser) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_XMLParser.tp_dict, __pyx_vtabptr_4lxml_5etree_XMLParser) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__Pyx_SetAttrString(__pyx_m, "XMLParser", (PyObject *)&__pyx_type_4lxml_5etree_XMLParser) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_ptype_4lxml_5etree_XMLParser = &__pyx_type_4lxml_5etree_XMLParser;
__pyx_vtabptr_4lxml_5etree_ETCompatXMLParser = &__pyx_vtable_4lxml_5etree_ETCompatXMLParser;
__pyx_vtable_4lxml_5etree_ETCompatXMLParser.__pyx_base = *__pyx_vtabptr_4lxml_5etree_XMLParser;
__pyx_type_4lxml_5etree_ETCompatXMLParser.tp_base = __pyx_ptype_4lxml_5etree_XMLParser;
- if (PyType_Ready(&__pyx_type_4lxml_5etree_ETCompatXMLParser) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1312; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_ETCompatXMLParser.tp_dict, __pyx_vtabptr_4lxml_5etree_ETCompatXMLParser) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1312; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- if (__Pyx_SetAttrString(__pyx_m, "ETCompatXMLParser", (PyObject *)&__pyx_type_4lxml_5etree_ETCompatXMLParser) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1312; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyType_Ready(&__pyx_type_4lxml_5etree_ETCompatXMLParser) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1335; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_ETCompatXMLParser.tp_dict, __pyx_vtabptr_4lxml_5etree_ETCompatXMLParser) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1335; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__Pyx_SetAttrString(__pyx_m, "ETCompatXMLParser", (PyObject *)&__pyx_type_4lxml_5etree_ETCompatXMLParser) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1335; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_ptype_4lxml_5etree_ETCompatXMLParser = &__pyx_type_4lxml_5etree_ETCompatXMLParser;
__pyx_vtabptr_4lxml_5etree_HTMLParser = &__pyx_vtable_4lxml_5etree_HTMLParser;
__pyx_vtable_4lxml_5etree_HTMLParser.__pyx_base = *__pyx_vtabptr_4lxml_5etree__FeedParser;
__pyx_type_4lxml_5etree_HTMLParser.tp_base = __pyx_ptype_4lxml_5etree__FeedParser;
- if (PyType_Ready(&__pyx_type_4lxml_5etree_HTMLParser) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1391; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_HTMLParser.tp_dict, __pyx_vtabptr_4lxml_5etree_HTMLParser) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1391; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- if (__Pyx_SetAttrString(__pyx_m, "HTMLParser", (PyObject *)&__pyx_type_4lxml_5etree_HTMLParser) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1391; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyType_Ready(&__pyx_type_4lxml_5etree_HTMLParser) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1414; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_HTMLParser.tp_dict, __pyx_vtabptr_4lxml_5etree_HTMLParser) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1414; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__Pyx_SetAttrString(__pyx_m, "HTMLParser", (PyObject *)&__pyx_type_4lxml_5etree_HTMLParser) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1414; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_ptype_4lxml_5etree_HTMLParser = &__pyx_type_4lxml_5etree_HTMLParser;
__pyx_vtabptr_4lxml_5etree__SaxParserTarget = &__pyx_vtable_4lxml_5etree__SaxParserTarget;
__pyx_vtable_4lxml_5etree__SaxParserTarget._handleSaxStart = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__SaxParserTarget *, PyObject *, PyObject *, PyObject *))__pyx_f_4lxml_5etree_16_SaxParserTarget__handleSaxStart;
*
* __all__ = [
*/
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s____docformat__, ((PyObject *)__pyx_kp_u_453)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 7; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s____docformat__, ((PyObject *)__pyx_kp_u_468)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 7; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":9
* __docformat__ = u"restructuredtext en"
*/
__pyx_t_1 = PyList_New(111); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __Pyx_INCREF(((PyObject *)__pyx_n_s_454));
- PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_n_s_454));
- __Pyx_GIVEREF(((PyObject *)__pyx_n_s_454));
+ __Pyx_INCREF(((PyObject *)__pyx_n_s_469));
+ PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_n_s_469));
+ __Pyx_GIVEREF(((PyObject *)__pyx_n_s_469));
__Pyx_INCREF(((PyObject *)__pyx_n_s__C14NError));
PyList_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_n_s__C14NError));
__Pyx_GIVEREF(((PyObject *)__pyx_n_s__C14NError));
__Pyx_INCREF(((PyObject *)__pyx_n_s__CommentBase));
PyList_SET_ITEM(__pyx_t_1, 4, ((PyObject *)__pyx_n_s__CommentBase));
__Pyx_GIVEREF(((PyObject *)__pyx_n_s__CommentBase));
- __Pyx_INCREF(((PyObject *)__pyx_n_s_455));
- PyList_SET_ITEM(__pyx_t_1, 5, ((PyObject *)__pyx_n_s_455));
- __Pyx_GIVEREF(((PyObject *)__pyx_n_s_455));
+ __Pyx_INCREF(((PyObject *)__pyx_n_s_470));
+ PyList_SET_ITEM(__pyx_t_1, 5, ((PyObject *)__pyx_n_s_470));
+ __Pyx_GIVEREF(((PyObject *)__pyx_n_s_470));
__Pyx_INCREF(((PyObject *)__pyx_n_s__DEBUG));
PyList_SET_ITEM(__pyx_t_1, 6, ((PyObject *)__pyx_n_s__DEBUG));
__Pyx_GIVEREF(((PyObject *)__pyx_n_s__DEBUG));
__Pyx_INCREF(((PyObject *)__pyx_n_s__ElementClassLookup));
PyList_SET_ITEM(__pyx_t_1, 16, ((PyObject *)__pyx_n_s__ElementClassLookup));
__Pyx_GIVEREF(((PyObject *)__pyx_n_s__ElementClassLookup));
- __Pyx_INCREF(((PyObject *)__pyx_n_s_456));
- PyList_SET_ITEM(__pyx_t_1, 17, ((PyObject *)__pyx_n_s_456));
- __Pyx_GIVEREF(((PyObject *)__pyx_n_s_456));
- __Pyx_INCREF(((PyObject *)__pyx_n_s_457));
- PyList_SET_ITEM(__pyx_t_1, 18, ((PyObject *)__pyx_n_s_457));
- __Pyx_GIVEREF(((PyObject *)__pyx_n_s_457));
+ __Pyx_INCREF(((PyObject *)__pyx_n_s_471));
+ PyList_SET_ITEM(__pyx_t_1, 17, ((PyObject *)__pyx_n_s_471));
+ __Pyx_GIVEREF(((PyObject *)__pyx_n_s_471));
+ __Pyx_INCREF(((PyObject *)__pyx_n_s_472));
+ PyList_SET_ITEM(__pyx_t_1, 18, ((PyObject *)__pyx_n_s_472));
+ __Pyx_GIVEREF(((PyObject *)__pyx_n_s_472));
__Pyx_INCREF(((PyObject *)__pyx_n_s__ElementTree));
PyList_SET_ITEM(__pyx_t_1, 19, ((PyObject *)__pyx_n_s__ElementTree));
__Pyx_GIVEREF(((PyObject *)__pyx_n_s__ElementTree));
__Pyx_INCREF(((PyObject *)__pyx_n_s__Extension));
PyList_SET_ITEM(__pyx_t_1, 26, ((PyObject *)__pyx_n_s__Extension));
__Pyx_GIVEREF(((PyObject *)__pyx_n_s__Extension));
- __Pyx_INCREF(((PyObject *)__pyx_n_s_458));
- PyList_SET_ITEM(__pyx_t_1, 27, ((PyObject *)__pyx_n_s_458));
- __Pyx_GIVEREF(((PyObject *)__pyx_n_s_458));
+ __Pyx_INCREF(((PyObject *)__pyx_n_s_473));
+ PyList_SET_ITEM(__pyx_t_1, 27, ((PyObject *)__pyx_n_s_473));
+ __Pyx_GIVEREF(((PyObject *)__pyx_n_s_473));
__Pyx_INCREF(((PyObject *)__pyx_n_s__FunctionNamespace));
PyList_SET_ITEM(__pyx_t_1, 28, ((PyObject *)__pyx_n_s__FunctionNamespace));
__Pyx_GIVEREF(((PyObject *)__pyx_n_s__FunctionNamespace));
__Pyx_INCREF(((PyObject *)__pyx_n_s__HTMLParser));
PyList_SET_ITEM(__pyx_t_1, 30, ((PyObject *)__pyx_n_s__HTMLParser));
__Pyx_GIVEREF(((PyObject *)__pyx_n_s__HTMLParser));
- __Pyx_INCREF(((PyObject *)__pyx_n_s_459));
- PyList_SET_ITEM(__pyx_t_1, 31, ((PyObject *)__pyx_n_s_459));
- __Pyx_GIVEREF(((PyObject *)__pyx_n_s_459));
+ __Pyx_INCREF(((PyObject *)__pyx_n_s_474));
+ PyList_SET_ITEM(__pyx_t_1, 31, ((PyObject *)__pyx_n_s_474));
+ __Pyx_GIVEREF(((PyObject *)__pyx_n_s_474));
__Pyx_INCREF(((PyObject *)__pyx_n_s__LIBXML_VERSION));
PyList_SET_ITEM(__pyx_t_1, 32, ((PyObject *)__pyx_n_s__LIBXML_VERSION));
__Pyx_GIVEREF(((PyObject *)__pyx_n_s__LIBXML_VERSION));
- __Pyx_INCREF(((PyObject *)__pyx_n_s_460));
- PyList_SET_ITEM(__pyx_t_1, 33, ((PyObject *)__pyx_n_s_460));
- __Pyx_GIVEREF(((PyObject *)__pyx_n_s_460));
+ __Pyx_INCREF(((PyObject *)__pyx_n_s_475));
+ PyList_SET_ITEM(__pyx_t_1, 33, ((PyObject *)__pyx_n_s_475));
+ __Pyx_GIVEREF(((PyObject *)__pyx_n_s_475));
__Pyx_INCREF(((PyObject *)__pyx_n_s__LIBXSLT_VERSION));
PyList_SET_ITEM(__pyx_t_1, 34, ((PyObject *)__pyx_n_s__LIBXSLT_VERSION));
__Pyx_GIVEREF(((PyObject *)__pyx_n_s__LIBXSLT_VERSION));
__Pyx_INCREF(((PyObject *)__pyx_n_s__LxmlSyntaxError));
PyList_SET_ITEM(__pyx_t_1, 38, ((PyObject *)__pyx_n_s__LxmlSyntaxError));
__Pyx_GIVEREF(((PyObject *)__pyx_n_s__LxmlSyntaxError));
- __Pyx_INCREF(((PyObject *)__pyx_n_s_145));
- PyList_SET_ITEM(__pyx_t_1, 39, ((PyObject *)__pyx_n_s_145));
- __Pyx_GIVEREF(((PyObject *)__pyx_n_s_145));
+ __Pyx_INCREF(((PyObject *)__pyx_n_s_154));
+ PyList_SET_ITEM(__pyx_t_1, 39, ((PyObject *)__pyx_n_s_154));
+ __Pyx_GIVEREF(((PyObject *)__pyx_n_s_154));
__Pyx_INCREF(((PyObject *)__pyx_n_s__PI));
PyList_SET_ITEM(__pyx_t_1, 40, ((PyObject *)__pyx_n_s__PI));
__Pyx_GIVEREF(((PyObject *)__pyx_n_s__PI));
__Pyx_INCREF(((PyObject *)__pyx_n_s__ParseError));
PyList_SET_ITEM(__pyx_t_1, 42, ((PyObject *)__pyx_n_s__ParseError));
__Pyx_GIVEREF(((PyObject *)__pyx_n_s__ParseError));
- __Pyx_INCREF(((PyObject *)__pyx_n_s_461));
- PyList_SET_ITEM(__pyx_t_1, 43, ((PyObject *)__pyx_n_s_461));
- __Pyx_GIVEREF(((PyObject *)__pyx_n_s_461));
+ __Pyx_INCREF(((PyObject *)__pyx_n_s_476));
+ PyList_SET_ITEM(__pyx_t_1, 43, ((PyObject *)__pyx_n_s_476));
+ __Pyx_GIVEREF(((PyObject *)__pyx_n_s_476));
__Pyx_INCREF(((PyObject *)__pyx_n_s__ParserError));
PyList_SET_ITEM(__pyx_t_1, 44, ((PyObject *)__pyx_n_s__ParserError));
__Pyx_GIVEREF(((PyObject *)__pyx_n_s__ParserError));
- __Pyx_INCREF(((PyObject *)__pyx_n_s_78));
- PyList_SET_ITEM(__pyx_t_1, 45, ((PyObject *)__pyx_n_s_78));
- __Pyx_GIVEREF(((PyObject *)__pyx_n_s_78));
+ __Pyx_INCREF(((PyObject *)__pyx_n_s_82));
+ PyList_SET_ITEM(__pyx_t_1, 45, ((PyObject *)__pyx_n_s_82));
+ __Pyx_GIVEREF(((PyObject *)__pyx_n_s_82));
__Pyx_INCREF(((PyObject *)__pyx_n_s__PyErrorLog));
PyList_SET_ITEM(__pyx_t_1, 46, ((PyObject *)__pyx_n_s__PyErrorLog));
__Pyx_GIVEREF(((PyObject *)__pyx_n_s__PyErrorLog));
- __Pyx_INCREF(((PyObject *)__pyx_n_s_462));
- PyList_SET_ITEM(__pyx_t_1, 47, ((PyObject *)__pyx_n_s_462));
- __Pyx_GIVEREF(((PyObject *)__pyx_n_s_462));
+ __Pyx_INCREF(((PyObject *)__pyx_n_s_477));
+ PyList_SET_ITEM(__pyx_t_1, 47, ((PyObject *)__pyx_n_s_477));
+ __Pyx_GIVEREF(((PyObject *)__pyx_n_s_477));
__Pyx_INCREF(((PyObject *)__pyx_n_s__QName));
PyList_SET_ITEM(__pyx_t_1, 48, ((PyObject *)__pyx_n_s__QName));
__Pyx_GIVEREF(((PyObject *)__pyx_n_s__QName));
__Pyx_INCREF(((PyObject *)__pyx_n_s__RelaxNGParseError));
PyList_SET_ITEM(__pyx_t_1, 52, ((PyObject *)__pyx_n_s__RelaxNGParseError));
__Pyx_GIVEREF(((PyObject *)__pyx_n_s__RelaxNGParseError));
- __Pyx_INCREF(((PyObject *)__pyx_n_s_393));
- PyList_SET_ITEM(__pyx_t_1, 53, ((PyObject *)__pyx_n_s_393));
- __Pyx_GIVEREF(((PyObject *)__pyx_n_s_393));
+ __Pyx_INCREF(((PyObject *)__pyx_n_s_408));
+ PyList_SET_ITEM(__pyx_t_1, 53, ((PyObject *)__pyx_n_s_408));
+ __Pyx_GIVEREF(((PyObject *)__pyx_n_s_408));
__Pyx_INCREF(((PyObject *)__pyx_n_s__Resolver));
PyList_SET_ITEM(__pyx_t_1, 54, ((PyObject *)__pyx_n_s__Resolver));
__Pyx_GIVEREF(((PyObject *)__pyx_n_s__Resolver));
__Pyx_INCREF(((PyObject *)__pyx_n_s__SchematronError));
PyList_SET_ITEM(__pyx_t_1, 56, ((PyObject *)__pyx_n_s__SchematronError));
__Pyx_GIVEREF(((PyObject *)__pyx_n_s__SchematronError));
- __Pyx_INCREF(((PyObject *)__pyx_n_s_405));
- PyList_SET_ITEM(__pyx_t_1, 57, ((PyObject *)__pyx_n_s_405));
- __Pyx_GIVEREF(((PyObject *)__pyx_n_s_405));
- __Pyx_INCREF(((PyObject *)__pyx_n_s_410));
- PyList_SET_ITEM(__pyx_t_1, 58, ((PyObject *)__pyx_n_s_410));
- __Pyx_GIVEREF(((PyObject *)__pyx_n_s_410));
+ __Pyx_INCREF(((PyObject *)__pyx_n_s_420));
+ PyList_SET_ITEM(__pyx_t_1, 57, ((PyObject *)__pyx_n_s_420));
+ __Pyx_GIVEREF(((PyObject *)__pyx_n_s_420));
+ __Pyx_INCREF(((PyObject *)__pyx_n_s_425));
+ PyList_SET_ITEM(__pyx_t_1, 58, ((PyObject *)__pyx_n_s_425));
+ __Pyx_GIVEREF(((PyObject *)__pyx_n_s_425));
__Pyx_INCREF(((PyObject *)__pyx_n_s__SerialisationError));
PyList_SET_ITEM(__pyx_t_1, 59, ((PyObject *)__pyx_n_s__SerialisationError));
__Pyx_GIVEREF(((PyObject *)__pyx_n_s__SerialisationError));
__Pyx_INCREF(((PyObject *)__pyx_n_s__XMLSchemaParseError));
PyList_SET_ITEM(__pyx_t_1, 70, ((PyObject *)__pyx_n_s__XMLSchemaParseError));
__Pyx_GIVEREF(((PyObject *)__pyx_n_s__XMLSchemaParseError));
- __Pyx_INCREF(((PyObject *)__pyx_n_s_400));
- PyList_SET_ITEM(__pyx_t_1, 71, ((PyObject *)__pyx_n_s_400));
- __Pyx_GIVEREF(((PyObject *)__pyx_n_s_400));
+ __Pyx_INCREF(((PyObject *)__pyx_n_s_415));
+ PyList_SET_ITEM(__pyx_t_1, 71, ((PyObject *)__pyx_n_s_415));
+ __Pyx_GIVEREF(((PyObject *)__pyx_n_s_415));
__Pyx_INCREF(((PyObject *)__pyx_n_s__XMLSyntaxError));
PyList_SET_ITEM(__pyx_t_1, 72, ((PyObject *)__pyx_n_s__XMLSyntaxError));
__Pyx_GIVEREF(((PyObject *)__pyx_n_s__XMLSyntaxError));
__Pyx_INCREF(((PyObject *)__pyx_n_s__XPath));
PyList_SET_ITEM(__pyx_t_1, 74, ((PyObject *)__pyx_n_s__XPath));
__Pyx_GIVEREF(((PyObject *)__pyx_n_s__XPath));
- __Pyx_INCREF(((PyObject *)__pyx_n_s_463));
- PyList_SET_ITEM(__pyx_t_1, 75, ((PyObject *)__pyx_n_s_463));
- __Pyx_GIVEREF(((PyObject *)__pyx_n_s_463));
+ __Pyx_INCREF(((PyObject *)__pyx_n_s_478));
+ PyList_SET_ITEM(__pyx_t_1, 75, ((PyObject *)__pyx_n_s_478));
+ __Pyx_GIVEREF(((PyObject *)__pyx_n_s_478));
__Pyx_INCREF(((PyObject *)__pyx_n_s__XPathError));
PyList_SET_ITEM(__pyx_t_1, 76, ((PyObject *)__pyx_n_s__XPathError));
__Pyx_GIVEREF(((PyObject *)__pyx_n_s__XPathError));
__Pyx_INCREF(((PyObject *)__pyx_n_s__set_default_parser));
PyList_SET_ITEM(__pyx_t_1, 102, ((PyObject *)__pyx_n_s__set_default_parser));
__Pyx_GIVEREF(((PyObject *)__pyx_n_s__set_default_parser));
- __Pyx_INCREF(((PyObject *)__pyx_n_s_170));
- PyList_SET_ITEM(__pyx_t_1, 103, ((PyObject *)__pyx_n_s_170));
- __Pyx_GIVEREF(((PyObject *)__pyx_n_s_170));
+ __Pyx_INCREF(((PyObject *)__pyx_n_s_179));
+ PyList_SET_ITEM(__pyx_t_1, 103, ((PyObject *)__pyx_n_s_179));
+ __Pyx_GIVEREF(((PyObject *)__pyx_n_s_179));
__Pyx_INCREF(((PyObject *)__pyx_n_s__strip_attributes));
PyList_SET_ITEM(__pyx_t_1, 104, ((PyObject *)__pyx_n_s__strip_attributes));
__Pyx_GIVEREF(((PyObject *)__pyx_n_s__strip_attributes));
__Pyx_INCREF(((PyObject *)__pyx_n_s__tounicode));
PyList_SET_ITEM(__pyx_t_1, 109, ((PyObject *)__pyx_n_s__tounicode));
__Pyx_GIVEREF(((PyObject *)__pyx_n_s__tounicode));
- __Pyx_INCREF(((PyObject *)__pyx_n_s_464));
- PyList_SET_ITEM(__pyx_t_1, 110, ((PyObject *)__pyx_n_s_464));
- __Pyx_GIVEREF(((PyObject *)__pyx_n_s_464));
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s____all__, ((PyObject *)__pyx_t_1)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_INCREF(((PyObject *)__pyx_n_s_479));
+ PyList_SET_ITEM(__pyx_t_1, 110, ((PyObject *)__pyx_n_s_479));
+ __Pyx_GIVEREF(((PyObject *)__pyx_n_s_479));
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s____all__, ((PyObject *)__pyx_t_1)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":59
*/
__pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s____builtin__), 0, 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L2_error;}
__Pyx_GOTREF(__pyx_t_1);
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s____builtin__, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L2_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s____builtin__, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L2_error;}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
}
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
*/
__pyx_t_8 = __Pyx_Import(((PyObject *)__pyx_n_s__builtins), 0, 0); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L4_except_error;}
__Pyx_GOTREF(__pyx_t_8);
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s____builtin__, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L4_except_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s____builtin__, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L4_except_error;}
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
* except AttributeError:
* # Python 3
*/
- __pyx_t_7 = __Pyx_GetName(__pyx_m, __pyx_n_s____builtin__); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L12_error;}
+ __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s____builtin__); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L12_error;}
__Pyx_GOTREF(__pyx_t_7);
- __pyx_t_6 = PyObject_GetAttr(__pyx_t_7, __pyx_n_s__unicode); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L12_error;}
+ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s__unicode); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L12_error;}
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_XGOTREF(__pyx_v_4lxml_5etree__unicode);
*
* del __builtin__
*/
- __pyx_t_8 = __Pyx_GetName(__pyx_m, __pyx_n_s____builtin__); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L14_except_error;}
+ __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s____builtin__); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L14_except_error;}
__Pyx_GOTREF(__pyx_t_8);
- __pyx_t_9 = PyObject_GetAttr(__pyx_t_8, __pyx_n_s__str); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L14_except_error;}
+ __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s__str); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L14_except_error;}
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_XGOTREF(__pyx_v_4lxml_5etree__unicode);
*
* cdef object os_path_abspath
*/
- if (__Pyx_DelAttrString(__pyx_m, "__builtin__") < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s____builtin__) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":75
*
__Pyx_INCREF(((PyObject *)__pyx_n_s__abspath));
PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_n_s__abspath));
__Pyx_GIVEREF(((PyObject *)__pyx_n_s__abspath));
- __pyx_t_7 = __Pyx_Import(((PyObject *)__pyx_n_s_465), ((PyObject *)__pyx_t_1), 0); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = __Pyx_Import(((PyObject *)__pyx_n_s_480), ((PyObject *)__pyx_t_1), 0); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
- __pyx_t_1 = PyObject_GetAttr(__pyx_t_7, __pyx_n_s__abspath);
- if (__pyx_t_1 == NULL) {
- if (PyErr_ExceptionMatches(PyExc_AttributeError)) __Pyx_RaiseImportError(__pyx_n_s__abspath);
- if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- }
+ __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_7, __pyx_n_s__abspath); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__Pyx_INCREF(__pyx_t_1);
__Pyx_XGOTREF(__pyx_v_4lxml_5etree_os_path_abspath);
__pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__io), ((PyObject *)__pyx_t_7), 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L22_error;}
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
- __pyx_t_7 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__BytesIO);
- if (__pyx_t_7 == NULL) {
- if (PyErr_ExceptionMatches(PyExc_AttributeError)) __Pyx_RaiseImportError(__pyx_n_s__BytesIO);
- if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L22_error;}
- }
+ __pyx_t_7 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s__BytesIO); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L22_error;}
__Pyx_GOTREF(__pyx_t_7);
__Pyx_INCREF(__pyx_t_7);
__Pyx_XGOTREF(__pyx_v_4lxml_5etree_BytesIO);
__Pyx_GIVEREF(__pyx_t_7);
__pyx_v_4lxml_5etree_BytesIO = __pyx_t_7;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
- __pyx_t_7 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__StringIO);
- if (__pyx_t_7 == NULL) {
- if (PyErr_ExceptionMatches(PyExc_AttributeError)) __Pyx_RaiseImportError(__pyx_n_s__StringIO);
- if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L22_error;}
- }
+ __pyx_t_7 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s__StringIO); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L22_error;}
__Pyx_GOTREF(__pyx_t_7);
__Pyx_INCREF(__pyx_t_7);
__Pyx_XGOTREF(__pyx_v_4lxml_5etree_StringIO);
__pyx_t_8 = __Pyx_Import(((PyObject *)__pyx_n_s__StringIO), ((PyObject *)__pyx_t_9), 0); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L24_except_error;}
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0;
- __pyx_t_9 = PyObject_GetAttr(__pyx_t_8, __pyx_n_s__StringIO);
- if (__pyx_t_9 == NULL) {
- if (PyErr_ExceptionMatches(PyExc_AttributeError)) __Pyx_RaiseImportError(__pyx_n_s__StringIO);
- if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L24_except_error;}
- }
+ __pyx_t_9 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s__StringIO); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L24_except_error;}
__Pyx_GOTREF(__pyx_t_9);
__Pyx_INCREF(__pyx_t_9);
__Pyx_XGOTREF(__pyx_v_4lxml_5etree_StringIO);
__Pyx_GIVEREF(__pyx_t_9);
__pyx_v_4lxml_5etree_StringIO = __pyx_t_9;
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
- __pyx_t_9 = PyObject_GetAttr(__pyx_t_8, __pyx_n_s__StringIO);
- if (__pyx_t_9 == NULL) {
- if (PyErr_ExceptionMatches(PyExc_AttributeError)) __Pyx_RaiseImportError(__pyx_n_s__StringIO);
- if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L24_except_error;}
- }
+ __pyx_t_9 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s__StringIO); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L24_except_error;}
__Pyx_GOTREF(__pyx_t_9);
__Pyx_INCREF(__pyx_t_9);
__Pyx_XGOTREF(__pyx_v_4lxml_5etree_BytesIO);
__pyx_t_7 = __Pyx_Import(((PyObject *)__pyx_n_s__lxml), ((PyObject *)__pyx_t_6), 0); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
- __pyx_t_6 = PyObject_GetAttr(__pyx_t_7, __pyx_n_s___elementpath);
- if (__pyx_t_6 == NULL) {
- if (PyErr_ExceptionMatches(PyExc_AttributeError)) __Pyx_RaiseImportError(__pyx_n_s___elementpath);
- if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- }
+ __pyx_t_6 = __Pyx_ImportFrom(__pyx_t_7, __pyx_n_s___elementpath); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
__Pyx_INCREF(__pyx_t_6);
__Pyx_XGOTREF(__pyx_v_4lxml_5etree__elementpath);
*
* # A struct to store a cached qualified tag name+href pair.
*/
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__DEBUG, __pyx_int_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__DEBUG, __pyx_int_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":125
*
* cdef char* _C_FILENAME_ENCODING = _cstr(_FILENAME_ENCODING)
*
*/
- __pyx_t_6 = PyObject_GetAttr(__pyx_v_4lxml_5etree_sys, __pyx_n_s_413); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_sys, __pyx_n_s_428); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_7 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_10 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
if (!__pyx_t_10) {
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
- __pyx_t_6 = PyObject_GetAttr(__pyx_v_4lxml_5etree_sys, __pyx_n_s__getdefaultencoding); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_sys, __pyx_n_s__getdefaultencoding); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_1 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_1 = __pyx_t_7;
__pyx_t_7 = 0;
}
- __pyx_t_7 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__encode); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s__encode); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- __pyx_t_1 = PyObject_Call(__pyx_t_7, ((PyObject *)__pyx_k_tuple_466), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyObject_Call(__pyx_t_7, ((PyObject *)__pyx_k_tuple_481), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
if (!(likely(PyBytes_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected bytes, got %.200s", Py_TYPE(__pyx_t_1)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
*/
__pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_1));
- if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_kp_b_467), ((PyObject *)__pyx_n_b__xml)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_kp_b_468), ((PyObject *)__pyx_n_b__html)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_kp_b_353), ((PyObject *)__pyx_n_b__xsl)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_kp_b_469), ((PyObject *)__pyx_n_b__rdf)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_kp_b_470), ((PyObject *)__pyx_n_b__wsdl)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_kp_b_396), ((PyObject *)__pyx_n_b__xs)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_kp_b_471), ((PyObject *)__pyx_n_b__xsi)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_kp_b_472), ((PyObject *)__pyx_n_b__dc)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_kp_b_473), ((PyObject *)__pyx_n_b__py)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_kp_b_482), ((PyObject *)__pyx_n_b__xml)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_kp_b_483), ((PyObject *)__pyx_n_b__html)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_kp_b_368), ((PyObject *)__pyx_n_b__xsl)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_kp_b_484), ((PyObject *)__pyx_n_b__rdf)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_kp_b_485), ((PyObject *)__pyx_n_b__wsdl)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_kp_b_411), ((PyObject *)__pyx_n_b__xs)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_kp_b_486), ((PyObject *)__pyx_n_b__xsi)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_kp_b_487), ((PyObject *)__pyx_n_b__dc)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_kp_b_488), ((PyObject *)__pyx_n_b__py)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_XGOTREF(((PyObject *)__pyx_v_4lxml_5etree__DEFAULT_NAMESPACE_PREFIXES));
__Pyx_DECREF(((PyObject *)__pyx_v_4lxml_5etree__DEFAULT_NAMESPACE_PREFIXES));
__Pyx_GIVEREF(((PyObject *)__pyx_t_1));
*
* def register_namespace(prefix, uri):
*/
- __pyx_t_1 = PyObject_GetAttr(__pyx_v_4lxml_5etree_re, __pyx_n_s__compile); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_re, __pyx_n_s__compile); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_7 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_k_tuple_475), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_k_tuple_490), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- __pyx_t_1 = PyObject_GetAttr(__pyx_t_7, __pyx_n_s__match); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s__match); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_XGOTREF(__pyx_v_4lxml_5etree__check_internal_prefix);
* u"""Registers a namespace prefix that newly created Elements in that
* namespace will use. The registry is global, and any existing
*/
- __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_1register_namespace, NULL, __pyx_n_s_479); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_1register_namespace, NULL, __pyx_n_s_494); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__register_namespace, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__register_namespace, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":173
__Pyx_INCREF(__pyx_builtin_Exception);
PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_builtin_Exception);
__Pyx_GIVEREF(__pyx_builtin_Exception);
- __pyx_t_6 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_1), __pyx_n_s__Error, __pyx_n_s__Error, __pyx_n_s_479); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_1), __pyx_n_s__Error, __pyx_n_s__Error, __pyx_n_s_494); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__Error, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__Error, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
* if python.PY_VERSION_HEX >= 0x02050000:
* # Python >= 2.5 uses new style class exceptions
*/
- __pyx_t_6 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_9LxmlError_1__init__, 0, __pyx_n_s_483, NULL, __pyx_n_s_479, ((PyObject *)__pyx_k_codeobj_481)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_9LxmlError_1__init__, 0, __pyx_n_s_498, NULL, __pyx_n_s_494, ((PyObject *)__pyx_k_codeobj_496)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
- __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, ((PyObject *)__pyx_k_tuple_482));
+ __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, ((PyObject *)__pyx_k_tuple_497));
if (PyObject_SetItem(__pyx_t_1, __pyx_n_s____init__, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
* u"""Main exception base class for lxml. All other exceptions inherit from
* this one.
*/
- __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s__Error); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s__Error); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6);
__Pyx_GIVEREF(__pyx_t_6);
__pyx_t_6 = 0;
- if (PyDict_SetItemString(((PyObject *)__pyx_t_1), "__doc__", ((PyObject *)__pyx_kp_s_484)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_t_6 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_1), __pyx_n_s__LxmlError, __pyx_n_s__LxmlError, __pyx_n_s_479); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItemString(((PyObject *)__pyx_t_1), "__doc__", ((PyObject *)__pyx_kp_s_499)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_1), __pyx_n_s__LxmlError, __pyx_n_s__LxmlError, __pyx_n_s_494); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__LxmlError, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__LxmlError, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
*
*/
if ((PY_VERSION_HEX >= 0x02050000)) {
- __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s__Error); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s__Error); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_1 = __pyx_t_6;
__pyx_t_6 = 0;
*
*/
if ((PY_VERSION_HEX < 0x02050000)) {
- __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s__Error); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s__Error); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
- __pyx_t_7 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s____init__); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s____init__); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_1 = __pyx_t_7;
*/
__pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_1));
- __pyx_t_7 = __Pyx_GetName(__pyx_m, __pyx_n_s__LxmlError); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s__LxmlError); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_builtin_SyntaxError);
__Pyx_GIVEREF(__pyx_builtin_SyntaxError);
__pyx_t_7 = 0;
- if (PyDict_SetItemString(((PyObject *)__pyx_t_1), "__doc__", ((PyObject *)__pyx_kp_s_485)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_t_7 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_1), __pyx_n_s__LxmlSyntaxError, __pyx_n_s__LxmlSyntaxError, __pyx_n_s_479); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItemString(((PyObject *)__pyx_t_1), "__doc__", ((PyObject *)__pyx_kp_s_500)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_1), __pyx_n_s__LxmlSyntaxError, __pyx_n_s__LxmlSyntaxError, __pyx_n_s_494); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__LxmlSyntaxError, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__LxmlSyntaxError, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
*/
__pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_1));
- __pyx_t_7 = __Pyx_GetName(__pyx_m, __pyx_n_s__LxmlError); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s__LxmlError); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7);
__Pyx_GIVEREF(__pyx_t_7);
__pyx_t_7 = 0;
- if (PyDict_SetItemString(((PyObject *)__pyx_t_1), "__doc__", ((PyObject *)__pyx_kp_s_486)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_t_7 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_1), __pyx_n_s__C14NError, __pyx_n_s__C14NError, __pyx_n_s_479); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItemString(((PyObject *)__pyx_t_1), "__doc__", ((PyObject *)__pyx_kp_s_501)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_1), __pyx_n_s__C14NError, __pyx_n_s__C14NError, __pyx_n_s_494); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__C14NError, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__C14NError, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
* except Exception:
* print u"Unknown libxml2 version: %s" % (<unsigned char*>tree.xmlParserVersion).decode("ascii")
*/
- __pyx_t_1 = PyObject_GetAttr(__pyx_v_4lxml_5etree_re, __pyx_n_s__match); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L32_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_re, __pyx_n_s__match); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L32_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_11 = ((unsigned char *)xmlParserVersion);
__pyx_t_7 = ((PyObject *)__Pyx_decode_c_string(((char *)__pyx_t_11), 0, strlen(((char *)__pyx_t_11)), NULL, NULL, PyUnicode_DecodeASCII)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L32_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_7));
__pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L32_error;}
__Pyx_GOTREF(__pyx_t_6);
- __Pyx_INCREF(((PyObject *)__pyx_kp_u_487));
- PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_kp_u_487));
- __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_487));
+ __Pyx_INCREF(((PyObject *)__pyx_kp_u_502));
+ PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_kp_u_502));
+ __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_502));
__Pyx_INCREF(((PyObject *)__pyx_t_7));
PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_t_7));
__Pyx_GIVEREF(((PyObject *)__pyx_t_7));
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
- __pyx_t_6 = PyObject_GetAttr(__pyx_t_7, __pyx_n_s__group); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L32_error;}
+ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s__group); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L32_error;}
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
- __pyx_t_7 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_k_tuple_488), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L32_error;}
+ __pyx_t_7 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_k_tuple_503), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L32_error;}
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 240; __pyx_clineno = __LINE__; goto __pyx_L32_error;}
__pyx_t_11 = ((unsigned char *)xmlParserVersion);
__pyx_t_8 = ((PyObject *)__Pyx_decode_c_string(((char *)__pyx_t_11), 0, strlen(((char *)__pyx_t_11)), NULL, NULL, PyUnicode_DecodeASCII)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 243; __pyx_clineno = __LINE__; goto __pyx_L34_except_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_8));
- __pyx_t_9 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_489), ((PyObject *)__pyx_t_8)); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 243; __pyx_clineno = __LINE__; goto __pyx_L34_except_error;}
+ __pyx_t_9 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_504), ((PyObject *)__pyx_t_8)); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 243; __pyx_clineno = __LINE__; goto __pyx_L34_except_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_9));
__Pyx_DECREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0;
if (__Pyx_PrintOne(0, ((PyObject *)__pyx_t_9)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 243; __pyx_clineno = __LINE__; goto __pyx_L34_except_error;}
*/
__pyx_t_1 = __pyx_f_4lxml_5etree___unpackIntVersion(__pyx_v_4lxml_5etree__LIBXML_VERSION_INT); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 246; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__LIBXML_VERSION, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 246; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__LIBXML_VERSION, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 246; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":247
*/
__pyx_t_1 = __pyx_f_4lxml_5etree___unpackIntVersion(LIBXML_VERSION); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 247; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s_459, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 247; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s_474, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 247; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":248
*
* __version__ = tree.LXML_VERSION_STRING.decode("ascii")
*/
- __pyx_t_1 = PyBytes_FromString(LXML_VERSION_STRING); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 248; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyBytes_FromString(LXML_VERSION_STRING); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 248; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_1));
__pyx_t_6 = __pyx_f_4lxml_5etree___unpackDottedVersion(((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 248; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__LXML_VERSION, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 248; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__LXML_VERSION, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 248; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":250
*/
__pyx_t_6 = ((PyObject *)__Pyx_decode_c_string(LXML_VERSION_STRING, 0, strlen(LXML_VERSION_STRING), NULL, NULL, PyUnicode_DecodeASCII)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 250; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_6));
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s____version__, ((PyObject *)__pyx_t_6)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 250; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s____version__, ((PyObject *)__pyx_t_6)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 250; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":578
* ur'^(<\?xml[^>]+)\s+encoding\s*=\s*["\'][^"\']*["\'](\s*\?>|)', re.U)
*
*/
- __pyx_t_6 = PyObject_GetAttr(__pyx_v_4lxml_5etree_re, __pyx_n_s__compile); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 578; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_re, __pyx_n_s__compile); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 578; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":579
*
* cdef object __REPLACE_XML_ENCODING = __RE_XML_ENCODING.sub
*/
- __pyx_t_1 = PyObject_GetAttr(__pyx_v_4lxml_5etree_re, __pyx_n_s__U); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 579; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_re, __pyx_n_s__U); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 579; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 578; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
- __Pyx_INCREF(((PyObject *)__pyx_kp_u_490));
- PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_kp_u_490));
- __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_490));
+ __Pyx_INCREF(((PyObject *)__pyx_kp_u_505));
+ PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_kp_u_505));
+ __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_505));
PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_1);
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
* cdef object __HAS_XML_ENCODING = __RE_XML_ENCODING.match
*
*/
- __pyx_t_1 = PyObject_GetAttr(__pyx_v_4lxml_5etree___RE_XML_ENCODING, __pyx_n_s__sub); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 581; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree___RE_XML_ENCODING, __pyx_n_s__sub); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 581; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XGOTREF(__pyx_v_4lxml_5etree___REPLACE_XML_ENCODING);
__Pyx_DECREF(__pyx_v_4lxml_5etree___REPLACE_XML_ENCODING);
*
* cdef object _stripEncodingDeclaration(object xml_string):
*/
- __pyx_t_1 = PyObject_GetAttr(__pyx_v_4lxml_5etree___RE_XML_ENCODING, __pyx_n_s__match); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 582; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree___RE_XML_ENCODING, __pyx_n_s__match); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 582; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XGOTREF(__pyx_v_4lxml_5etree___HAS_XML_ENCODING);
__Pyx_DECREF(__pyx_v_4lxml_5etree___HAS_XML_ENCODING);
* u"""clear_error_log()
*
*/
- __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_3clear_error_log, NULL, __pyx_n_s_479); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_3clear_error_log, NULL, __pyx_n_s_494); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__clear_error_log, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__clear_error_log, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":498
*
* cdef _BaseErrorLog _getGlobalErrorLog():
*/
- __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__RotatingErrorLog)), ((PyObject *)__pyx_k_tuple_493), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 498; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__RotatingErrorLog)), ((PyObject *)__pyx_k_tuple_508), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 498; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XGOTREF(((PyObject *)__pyx_v_4lxml_5etree___GLOBAL_ERROR_LOG));
__Pyx_DECREF(((PyObject *)__pyx_v_4lxml_5etree___GLOBAL_ERROR_LOG));
* u"""use_global_python_log(log)
*
*/
- __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_5use_global_python_log, NULL, __pyx_n_s_479); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 527; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_5use_global_python_log, NULL, __pyx_n_s_494); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 527; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s_464, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 527; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s_479, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 527; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":653
__Pyx_INCREF(__pyx_builtin_object);
PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_builtin_object);
__Pyx_GIVEREF(__pyx_builtin_object);
- if (PyDict_SetItemString(((PyObject *)__pyx_t_1), "__doc__", ((PyObject *)__pyx_kp_s_496)) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 653; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_t_6 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_1), __pyx_n_s__ErrorLevels, __pyx_n_s__ErrorLevels, __pyx_n_s_479); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 653; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItemString(((PyObject *)__pyx_t_1), "__doc__", ((PyObject *)__pyx_kp_s_511)) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 653; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_1), __pyx_n_s__ErrorLevels, __pyx_n_s__ErrorLevels, __pyx_n_s_494); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 653; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ErrorLevels, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 653; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__ErrorLevels, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 653; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
__Pyx_INCREF(__pyx_builtin_object);
PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_builtin_object);
__Pyx_GIVEREF(__pyx_builtin_object);
- if (PyDict_SetItemString(((PyObject *)__pyx_t_1), "__doc__", ((PyObject *)__pyx_kp_s_497)) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 656; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_t_7 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_1), __pyx_n_s__ErrorDomains, __pyx_n_s__ErrorDomains, __pyx_n_s_479); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 656; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItemString(((PyObject *)__pyx_t_1), "__doc__", ((PyObject *)__pyx_kp_s_512)) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 656; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_1), __pyx_n_s__ErrorDomains, __pyx_n_s__ErrorDomains, __pyx_n_s_494); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 656; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ErrorDomains, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 656; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__ErrorDomains, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 656; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
__Pyx_INCREF(__pyx_builtin_object);
PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_builtin_object);
__Pyx_GIVEREF(__pyx_builtin_object);
- if (PyDict_SetItemString(((PyObject *)__pyx_t_1), "__doc__", ((PyObject *)__pyx_kp_s_498)) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 659; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_t_6 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_1), __pyx_n_s__ErrorTypes, __pyx_n_s__ErrorTypes, __pyx_n_s_479); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 659; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItemString(((PyObject *)__pyx_t_1), "__doc__", ((PyObject *)__pyx_kp_s_513)) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 659; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_1), __pyx_n_s__ErrorTypes, __pyx_n_s__ErrorTypes, __pyx_n_s_494); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 659; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ErrorTypes, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 659; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__ErrorTypes, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 659; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
__Pyx_INCREF(__pyx_builtin_object);
PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_builtin_object);
__Pyx_GIVEREF(__pyx_builtin_object);
- if (PyDict_SetItemString(((PyObject *)__pyx_t_1), "__doc__", ((PyObject *)__pyx_kp_s_499)) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 662; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_t_7 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_1), __pyx_n_s__RelaxNGErrorTypes, __pyx_n_s__RelaxNGErrorTypes, __pyx_n_s_479); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 662; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItemString(((PyObject *)__pyx_t_1), "__doc__", ((PyObject *)__pyx_kp_s_514)) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 662; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_1), __pyx_n_s__RelaxNGErrorTypes, __pyx_n_s__RelaxNGErrorTypes, __pyx_n_s_494); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 662; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__RelaxNGErrorTypes, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 662; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__RelaxNGErrorTypes, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 662; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
* NONE=0
* WARNING=1
*/
- __Pyx_INCREF(((PyObject *)__pyx_k_tuple_501));
+ __Pyx_INCREF(((PyObject *)__pyx_k_tuple_516));
__Pyx_XGOTREF(__pyx_v_4lxml_5etree___ERROR_LEVELS);
__Pyx_DECREF(__pyx_v_4lxml_5etree___ERROR_LEVELS);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_501));
- __pyx_v_4lxml_5etree___ERROR_LEVELS = ((PyObject *)__pyx_k_tuple_501);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_516));
+ __pyx_v_4lxml_5etree___ERROR_LEVELS = ((PyObject *)__pyx_k_tuple_516);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":682
* """,)
* NONE=0
* PARSER=1
*/
- __Pyx_INCREF(((PyObject *)__pyx_k_tuple_503));
+ __Pyx_INCREF(((PyObject *)__pyx_k_tuple_518));
__Pyx_XGOTREF(__pyx_v_4lxml_5etree___ERROR_DOMAINS);
__Pyx_DECREF(__pyx_v_4lxml_5etree___ERROR_DOMAINS);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_503));
- __pyx_v_4lxml_5etree___ERROR_DOMAINS = ((PyObject *)__pyx_k_tuple_503);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_518));
+ __pyx_v_4lxml_5etree___ERROR_DOMAINS = ((PyObject *)__pyx_k_tuple_518);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":714
* """,)
* ERR_OK=0
* ERR_INTERNAL_ERROR=1
*/
- __Pyx_INCREF(((PyObject *)__pyx_k_tuple_515));
+ __Pyx_INCREF(((PyObject *)__pyx_k_tuple_530));
__Pyx_XGOTREF(__pyx_v_4lxml_5etree___PARSER_ERROR_TYPES);
__Pyx_DECREF(__pyx_v_4lxml_5etree___PARSER_ERROR_TYPES);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_515));
- __pyx_v_4lxml_5etree___PARSER_ERROR_TYPES = ((PyObject *)__pyx_k_tuple_515);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_530));
+ __pyx_v_4lxml_5etree___PARSER_ERROR_TYPES = ((PyObject *)__pyx_k_tuple_530);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":1470
* """,)
* RELAXNG_OK=0
* RELAXNG_ERR_MEMORY=1
*/
- __Pyx_INCREF(((PyObject *)__pyx_k_tuple_517));
+ __Pyx_INCREF(((PyObject *)__pyx_k_tuple_532));
__Pyx_XGOTREF(__pyx_v_4lxml_5etree___RELAXNG_ERROR_TYPES);
__Pyx_DECREF(__pyx_v_4lxml_5etree___RELAXNG_ERROR_TYPES);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_517));
- __pyx_v_4lxml_5etree___RELAXNG_ERROR_TYPES = ((PyObject *)__pyx_k_tuple_517);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_532));
+ __pyx_v_4lxml_5etree___RELAXNG_ERROR_TYPES = ((PyObject *)__pyx_k_tuple_532);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":1514
* # --- END: GENERATED CONSTANTS ---
*/
__pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1280; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_k_72 = __pyx_t_1;
+ __pyx_k_76 = __pyx_t_1;
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
*/
__pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1323; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_k_73 = __pyx_t_1;
+ __pyx_k_77 = __pyx_t_1;
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
*/
__pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1392; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_k_74 = __pyx_t_1;
+ __pyx_k_78 = __pyx_t_1;
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
*/
__pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1469; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_k_75 = __pyx_t_1;
+ __pyx_k_79 = __pyx_t_1;
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
*
* cdef class _Entity(__ContentOnlyElement):
*/
- __pyx_t_1 = PyObject_GetAttr(__pyx_v_4lxml_5etree_re, __pyx_n_s__compile); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1636; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_re, __pyx_n_s__compile); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1636; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_7 = PyObject_GetAttr(__pyx_v_4lxml_5etree_re, __pyx_n_s__U); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1636; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_re, __pyx_n_s__U); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1636; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1636; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
- __Pyx_INCREF(((PyObject *)__pyx_kp_u_518));
- PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_kp_u_518));
- __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_518));
+ __Pyx_INCREF(((PyObject *)__pyx_kp_u_533));
+ PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_kp_u_533));
+ __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_533));
PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_7);
__Pyx_GIVEREF(__pyx_t_7);
__pyx_t_7 = 0;
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
- __pyx_t_6 = PyObject_GetAttr(__pyx_t_7, __pyx_n_s__findall); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1636; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s__findall); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1636; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_XGOTREF(__pyx_v_4lxml_5etree__FIND_PI_ATTRIBUTES);
*/
__pyx_t_6 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1839; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
- __pyx_k_90 = __pyx_t_6;
+ __pyx_k_94 = __pyx_t_6;
__Pyx_GIVEREF(__pyx_t_6);
__pyx_t_6 = 0;
__pyx_t_6 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1839; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
- __pyx_k_91 = __pyx_t_6;
+ __pyx_k_95 = __pyx_t_6;
__Pyx_GIVEREF(__pyx_t_6);
__pyx_t_6 = 0;
*/
__pyx_t_6 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1841; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
- __pyx_k_92 = __pyx_t_6;
+ __pyx_k_96 = __pyx_t_6;
__Pyx_GIVEREF(__pyx_t_6);
__pyx_t_6 = 0;
__pyx_t_6 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1841; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
- __pyx_k_93 = __pyx_t_6;
+ __pyx_k_97 = __pyx_t_6;
__Pyx_GIVEREF(__pyx_t_6);
__pyx_t_6 = 0;
*/
__pyx_t_6 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2072; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
- __pyx_k_104 = __pyx_t_6;
+ __pyx_k_112 = __pyx_t_6;
__Pyx_GIVEREF(__pyx_t_6);
__pyx_t_6 = 0;
*/
__pyx_t_6 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
- __pyx_k_105 = __pyx_t_6;
+ __pyx_k_113 = __pyx_t_6;
__Pyx_GIVEREF(__pyx_t_6);
__pyx_t_6 = 0;
__pyx_t_6 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
- __pyx_k_106 = __pyx_t_6;
+ __pyx_k_114 = __pyx_t_6;
__Pyx_GIVEREF(__pyx_t_6);
__pyx_t_6 = 0;
*/
__pyx_t_6 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2624; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
- __pyx_k_110 = __pyx_t_6;
+ __pyx_k_118 = __pyx_t_6;
__Pyx_GIVEREF(__pyx_t_6);
__pyx_t_6 = 0;
*/
__pyx_t_6 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2646; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
- __pyx_k_111 = __pyx_t_6;
+ __pyx_k_119 = __pyx_t_6;
__Pyx_GIVEREF(__pyx_t_6);
__pyx_t_6 = 0;
*/
__pyx_t_6 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2690; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
- __pyx_k_112 = __pyx_t_6;
+ __pyx_k_120 = __pyx_t_6;
__Pyx_GIVEREF(__pyx_t_6);
__pyx_t_6 = 0;
*/
__pyx_t_6 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2753; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
- __pyx_k_113 = __pyx_t_6;
+ __pyx_k_121 = __pyx_t_6;
__Pyx_GIVEREF(__pyx_t_6);
__pyx_t_6 = 0;
* u"""Element(_tag, attrib=None, nsmap=None, **_extra)
*
*/
- __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_7Element, NULL, __pyx_n_s_479); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2798; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_7Element, NULL, __pyx_n_s_494); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2798; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__Element, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2798; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__Element, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2798; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2811
* u"""Comment(text=None)
*
*/
- __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_9Comment, NULL, __pyx_n_s_479); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2811; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_9Comment, NULL, __pyx_n_s_494); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2811; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__Comment, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2811; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__Comment, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2811; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2830
* u"""ProcessingInstruction(target, text=None)
*
*/
- __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_11ProcessingInstruction, NULL, __pyx_n_s_479); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2830; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_11ProcessingInstruction, NULL, __pyx_n_s_494); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2830; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s_78, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2830; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s_82, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2830; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2850
*
* cdef class CDATA:
*/
- __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s_78); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2850; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_82); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2850; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__PI, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2850; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__PI, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2850; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2866
* u"""Entity(name)
*
*/
- __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_13Entity, NULL, __pyx_n_s_479); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2866; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_13Entity, NULL, __pyx_n_s_494); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2866; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__Entity, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2866; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__Entity, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2866; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2891
* attrib=None, nsmap=None, **_extra):
* u"""SubElement(_parent, _tag, attrib=None, nsmap=None, **_extra)
*/
- __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_15SubElement, NULL, __pyx_n_s_479); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2891; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_15SubElement, NULL, __pyx_n_s_494); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2891; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__SubElement, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2891; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__SubElement, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2891; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2900
* u"""ElementTree(element=None, file=None, parser=None)
*
*/
- __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_17ElementTree, NULL, __pyx_n_s_479); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2900; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_17ElementTree, NULL, __pyx_n_s_494); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2900; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ElementTree, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2900; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__ElementTree, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2900; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2925
* u"""HTML(text, parser=None, base_url=None)
*
*/
- __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_19HTML, NULL, __pyx_n_s_479); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2925; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_19HTML, NULL, __pyx_n_s_494); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2925; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__HTML, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2925; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__HTML, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2925; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2950
* u"""XML(text, parser=None, base_url=None)
*
*/
- __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_21XML, NULL, __pyx_n_s_479); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2950; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_21XML, NULL, __pyx_n_s_494); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2950; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__XML, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2950; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__XML, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2950; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2978
* u"""fromstring(text, parser=None, base_url=None)
*
*/
- __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_23fromstring, NULL, __pyx_n_s_479); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2978; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_23fromstring, NULL, __pyx_n_s_494); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2978; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__fromstring, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2978; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__fromstring, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2978; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2998
* u"""fromstringlist(strings, parser=None)
*
*/
- __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_25fromstringlist, NULL, __pyx_n_s_479); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2998; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_25fromstringlist, NULL, __pyx_n_s_494); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2998; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__fromstringlist, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2998; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__fromstringlist, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2998; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3015
* u"""iselement(element)
*
*/
- __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_27iselement, NULL, __pyx_n_s_479); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3015; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_27iselement, NULL, __pyx_n_s_494); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3015; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__iselement, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3015; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__iselement, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3015; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3022
*/
__pyx_t_6 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3022; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
- __pyx_k_118 = __pyx_t_6;
+ __pyx_k_126 = __pyx_t_6;
__Pyx_GIVEREF(__pyx_t_6);
__pyx_t_6 = 0;
- __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_29dump, NULL, __pyx_n_s_479); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3022; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_29dump, NULL, __pyx_n_s_494); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3022; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__dump, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3022; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__dump, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3022; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3034
* xml_declaration=None, bint pretty_print=False, bint with_tail=True,
* standalone=None, doctype=None,
*/
- __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_31tostring, NULL, __pyx_n_s_479); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3034; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_31tostring, NULL, __pyx_n_s_494); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3034; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__tostring, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3034; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__tostring, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3034; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3126
* u"""tostringlist(element_or_tree, *args, **kwargs)
*
*/
- __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_33tostringlist, NULL, __pyx_n_s_479); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_33tostringlist, NULL, __pyx_n_s_494); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__tostringlist, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__tostringlist, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3137
* bint with_tail=True, doctype=None):
* u"""tounicode(element_or_tree, method="xml", pretty_print=False,
*/
- __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_35tounicode, NULL, __pyx_n_s_479); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_35tounicode, NULL, __pyx_n_s_494); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__tounicode, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__tounicode, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3171
* u"""parse(source, parser=None, base_url=None)
*
*/
- __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_37parse, NULL, __pyx_n_s_479); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3171; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_37parse, NULL, __pyx_n_s_494); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3171; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__parse, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3171; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__parse, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3171; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":186
*/
__pyx_t_6 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
- __pyx_k_126 = __pyx_t_6;
+ __pyx_k_134 = __pyx_t_6;
__Pyx_GIVEREF(__pyx_t_6);
__pyx_t_6 = 0;
* u"""set_element_class_lookup(lookup = None)
*
*/
- __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_39set_element_class_lookup, NULL, __pyx_n_s_479); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 515; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_39set_element_class_lookup, NULL, __pyx_n_s_494); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 515; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s_170, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 515; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s_179, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 515; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":527
*
* set_element_class_lookup(DEFAULT_ELEMENT_CLASS_LOOKUP) # <<<<<<<<<<<<<<
*/
- __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s_170); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 529; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_179); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 529; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 529; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
*/
__pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_1));
- __pyx_t_7 = __Pyx_GetName(__pyx_m, __pyx_n_s__LxmlError); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s__LxmlError); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7);
__Pyx_GIVEREF(__pyx_t_7);
__pyx_t_7 = 0;
- if (PyDict_SetItemString(((PyObject *)__pyx_t_1), "__doc__", ((PyObject *)__pyx_kp_s_554)) < 0) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_t_7 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_1), __pyx_n_s__LxmlRegistryError, __pyx_n_s__LxmlRegistryError, __pyx_n_s_479); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItemString(((PyObject *)__pyx_t_1), "__doc__", ((PyObject *)__pyx_kp_s_569)) < 0) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_1), __pyx_n_s__LxmlRegistryError, __pyx_n_s__LxmlRegistryError, __pyx_n_s_494); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__LxmlRegistryError, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__LxmlRegistryError, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
*/
__pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_1));
- __pyx_t_7 = __Pyx_GetName(__pyx_m, __pyx_n_s__LxmlRegistryError); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s__LxmlRegistryError); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7);
__Pyx_GIVEREF(__pyx_t_7);
__pyx_t_7 = 0;
- if (PyDict_SetItemString(((PyObject *)__pyx_t_1), "__doc__", ((PyObject *)__pyx_kp_s_555)) < 0) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_t_7 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_1), __pyx_n_s_145, __pyx_n_s_145, __pyx_n_s_479); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItemString(((PyObject *)__pyx_t_1), "__doc__", ((PyObject *)__pyx_kp_s_570)) < 0) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_1), __pyx_n_s_154, __pyx_n_s_154, __pyx_n_s_494); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s_145, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s_154, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
* u"""FunctionNamespace(ns_uri)
*
*/
- __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_41FunctionNamespace, NULL, __pyx_n_s_479); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_41FunctionNamespace, NULL, __pyx_n_s_494); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__FunctionNamespace, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__FunctionNamespace, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":13
* if python.PY_VERSION_HEX >= 0x02050000:
* # Python >= 2.5 uses new style class exceptions
*/
- __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_10ParseError_1__init__, 0, __pyx_n_s_562, NULL, __pyx_n_s_479, ((PyObject *)__pyx_k_codeobj_560)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_10ParseError_1__init__, 0, __pyx_n_s_577, NULL, __pyx_n_s_494, ((PyObject *)__pyx_k_codeobj_575)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
if (PyObject_SetItem(__pyx_t_1, __pyx_n_s____init__, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
* u"""Syntax error while parsing an XML document.
*
*/
- __pyx_t_7 = __Pyx_GetName(__pyx_m, __pyx_n_s__LxmlSyntaxError); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s__LxmlSyntaxError); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7);
__Pyx_GIVEREF(__pyx_t_7);
__pyx_t_7 = 0;
- if (PyDict_SetItemString(((PyObject *)__pyx_t_1), "__doc__", ((PyObject *)__pyx_kp_s_563)) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_t_7 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_1), __pyx_n_s__ParseError, __pyx_n_s__ParseError, __pyx_n_s_479); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItemString(((PyObject *)__pyx_t_1), "__doc__", ((PyObject *)__pyx_kp_s_578)) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_1), __pyx_n_s__ParseError, __pyx_n_s__ParseError, __pyx_n_s_494); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ParseError, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__ParseError, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
* cdef object _ParseError = ParseError
*
*/
- __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__LxmlSyntaxError); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__LxmlSyntaxError); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XGOTREF(__pyx_v_4lxml_5etree__LxmlSyntaxError);
__Pyx_DECREF(__pyx_v_4lxml_5etree__LxmlSyntaxError);
*
* class XMLSyntaxError(ParseError):
*/
- __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__ParseError); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__ParseError); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XGOTREF(__pyx_v_4lxml_5etree__ParseError);
__Pyx_DECREF(__pyx_v_4lxml_5etree__ParseError);
*/
__pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_1));
- __pyx_t_7 = __Pyx_GetName(__pyx_m, __pyx_n_s__ParseError); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s__ParseError); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7);
__Pyx_GIVEREF(__pyx_t_7);
__pyx_t_7 = 0;
- if (PyDict_SetItemString(((PyObject *)__pyx_t_1), "__doc__", ((PyObject *)__pyx_kp_s_564)) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_t_7 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_1), __pyx_n_s__XMLSyntaxError, __pyx_n_s__XMLSyntaxError, __pyx_n_s_479); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItemString(((PyObject *)__pyx_t_1), "__doc__", ((PyObject *)__pyx_kp_s_579)) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_1), __pyx_n_s__XMLSyntaxError, __pyx_n_s__XMLSyntaxError, __pyx_n_s_494); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__XMLSyntaxError, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__XMLSyntaxError, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
*/
__pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_1));
- __pyx_t_7 = __Pyx_GetName(__pyx_m, __pyx_n_s__LxmlError); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s__LxmlError); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7);
__Pyx_GIVEREF(__pyx_t_7);
__pyx_t_7 = 0;
- if (PyDict_SetItemString(((PyObject *)__pyx_t_1), "__doc__", ((PyObject *)__pyx_kp_s_565)) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_t_7 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_1), __pyx_n_s__ParserError, __pyx_n_s__ParserError, __pyx_n_s_479); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItemString(((PyObject *)__pyx_t_1), "__doc__", ((PyObject *)__pyx_kp_s_580)) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_1), __pyx_n_s__ParserError, __pyx_n_s__ParserError, __pyx_n_s_494); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ParserError, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__ParserError, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
*/
__pyx_t_5 = __pyx_f_4lxml_5etree__setupPythonUnicode(); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 247; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":478
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":490
*
* cdef xmlparser.xmlExternalEntityLoader __DEFAULT_ENTITY_LOADER
* __DEFAULT_ENTITY_LOADER = xmlparser.xmlGetExternalEntityLoader() # <<<<<<<<<<<<<<
*/
__pyx_v_4lxml_5etree___DEFAULT_ENTITY_LOADER = xmlGetExternalEntityLoader();
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":480
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":492
* __DEFAULT_ENTITY_LOADER = xmlparser.xmlGetExternalEntityLoader()
*
* xmlparser.xmlSetExternalEntityLoader(<xmlparser.xmlExternalEntityLoader>_local_resolver) # <<<<<<<<<<<<<<
*/
xmlSetExternalEntityLoader(((xmlExternalEntityLoader)__pyx_f_4lxml_5etree__local_resolver));
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1227
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1250
* xmlparser.XML_PARSE_NOCDATA |
* xmlparser.XML_PARSE_NONET |
* xmlparser.XML_PARSE_COMPACT # <<<<<<<<<<<<<<
*/
__pyx_v_4lxml_5etree__XML_DEFAULT_PARSE_OPTIONS = (((XML_PARSE_NOENT | XML_PARSE_NOCDATA) | XML_PARSE_NONET) | XML_PARSE_COMPACT);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1274
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1297
* apply to the default parser.
* """
* def __init__(self, *, encoding=None, attribute_defaults=False, # <<<<<<<<<<<<<<
* dtd_validation=False, load_dtd=False, no_network=True,
* ns_clean=False, recover=False, XMLSchema schema=None,
*/
- __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1274; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1297; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_k_175 = __pyx_t_1;
+ __pyx_k_184 = __pyx_t_1;
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1275
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1298
* """
* def __init__(self, *, encoding=None, attribute_defaults=False,
* dtd_validation=False, load_dtd=False, no_network=True, # <<<<<<<<<<<<<<
* ns_clean=False, recover=False, XMLSchema schema=None,
* huge_tree=False, remove_blank_text=False, resolve_entities=True,
*/
- __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1298; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_k_176 = __pyx_t_1;
+ __pyx_k_185 = __pyx_t_1;
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
- __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1298; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_k_177 = __pyx_t_1;
+ __pyx_k_186 = __pyx_t_1;
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
- __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1298; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_k_178 = __pyx_t_1;
+ __pyx_k_187 = __pyx_t_1;
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1276
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1299
* def __init__(self, *, encoding=None, attribute_defaults=False,
* dtd_validation=False, load_dtd=False, no_network=True,
* ns_clean=False, recover=False, XMLSchema schema=None, # <<<<<<<<<<<<<<
* huge_tree=False, remove_blank_text=False, resolve_entities=True,
* remove_comments=False, remove_pis=False, strip_cdata=True,
*/
- __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1276; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1299; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_k_179 = __pyx_t_1;
+ __pyx_k_188 = __pyx_t_1;
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
- __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1276; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1299; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_k_180 = __pyx_t_1;
+ __pyx_k_189 = __pyx_t_1;
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1277
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1300
* dtd_validation=False, load_dtd=False, no_network=True,
* ns_clean=False, recover=False, XMLSchema schema=None,
* huge_tree=False, remove_blank_text=False, resolve_entities=True, # <<<<<<<<<<<<<<
* remove_comments=False, remove_pis=False, strip_cdata=True,
* target=None, compact=True):
*/
- __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1277; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1300; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_k_181 = __pyx_t_1;
+ __pyx_k_190 = __pyx_t_1;
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
- __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1277; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1300; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_k_182 = __pyx_t_1;
+ __pyx_k_191 = __pyx_t_1;
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
- __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1277; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1300; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_k_183 = __pyx_t_1;
+ __pyx_k_192 = __pyx_t_1;
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1278
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1301
* ns_clean=False, recover=False, XMLSchema schema=None,
* huge_tree=False, remove_blank_text=False, resolve_entities=True,
* remove_comments=False, remove_pis=False, strip_cdata=True, # <<<<<<<<<<<<<<
* target=None, compact=True):
* cdef int parse_options
*/
- __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1278; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1301; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_k_184 = __pyx_t_1;
+ __pyx_k_193 = __pyx_t_1;
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
- __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1278; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1301; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_k_185 = __pyx_t_1;
+ __pyx_k_194 = __pyx_t_1;
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
- __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1278; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1301; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_k_186 = __pyx_t_1;
+ __pyx_k_195 = __pyx_t_1;
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1279
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1302
* huge_tree=False, remove_blank_text=False, resolve_entities=True,
* remove_comments=False, remove_pis=False, strip_cdata=True,
* target=None, compact=True): # <<<<<<<<<<<<<<
* cdef int parse_options
* parse_options = _XML_DEFAULT_PARSE_OPTIONS
*/
- __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1279; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1302; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_k_187 = __pyx_t_1;
+ __pyx_k_196 = __pyx_t_1;
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1327
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1350
* and thus ignores comments and processing instructions.
* """
* def __init__(self, *, encoding=None, attribute_defaults=False, # <<<<<<<<<<<<<<
* dtd_validation=False, load_dtd=False, no_network=True,
* ns_clean=False, recover=False, schema=None,
*/
- __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1327; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1350; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_k_188 = __pyx_t_1;
+ __pyx_k_197 = __pyx_t_1;
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1328
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1351
* """
* def __init__(self, *, encoding=None, attribute_defaults=False,
* dtd_validation=False, load_dtd=False, no_network=True, # <<<<<<<<<<<<<<
* ns_clean=False, recover=False, schema=None,
* huge_tree=False, remove_blank_text=False, resolve_entities=True,
*/
- __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1328; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1351; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_k_189 = __pyx_t_1;
+ __pyx_k_198 = __pyx_t_1;
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
- __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1328; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1351; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_k_190 = __pyx_t_1;
+ __pyx_k_199 = __pyx_t_1;
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
- __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1328; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1351; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_k_191 = __pyx_t_1;
+ __pyx_k_200 = __pyx_t_1;
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1329
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1352
* def __init__(self, *, encoding=None, attribute_defaults=False,
* dtd_validation=False, load_dtd=False, no_network=True,
* ns_clean=False, recover=False, schema=None, # <<<<<<<<<<<<<<
* huge_tree=False, remove_blank_text=False, resolve_entities=True,
* remove_comments=True, remove_pis=True, strip_cdata=True,
*/
- __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1329; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1352; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_k_192 = __pyx_t_1;
+ __pyx_k_201 = __pyx_t_1;
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
- __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1329; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1352; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_k_193 = __pyx_t_1;
+ __pyx_k_202 = __pyx_t_1;
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1330
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1353
* dtd_validation=False, load_dtd=False, no_network=True,
* ns_clean=False, recover=False, schema=None,
* huge_tree=False, remove_blank_text=False, resolve_entities=True, # <<<<<<<<<<<<<<
* remove_comments=True, remove_pis=True, strip_cdata=True,
* target=None, compact=True):
*/
- __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1330; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1353; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_k_194 = __pyx_t_1;
+ __pyx_k_203 = __pyx_t_1;
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
- __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1330; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1353; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_k_195 = __pyx_t_1;
+ __pyx_k_204 = __pyx_t_1;
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
- __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1330; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1353; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_k_196 = __pyx_t_1;
+ __pyx_k_205 = __pyx_t_1;
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1331
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1354
* ns_clean=False, recover=False, schema=None,
* huge_tree=False, remove_blank_text=False, resolve_entities=True,
* remove_comments=True, remove_pis=True, strip_cdata=True, # <<<<<<<<<<<<<<
* target=None, compact=True):
* XMLParser.__init__(self,
*/
- __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1331; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1354; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_k_197 = __pyx_t_1;
+ __pyx_k_206 = __pyx_t_1;
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
- __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1331; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1354; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_k_198 = __pyx_t_1;
+ __pyx_k_207 = __pyx_t_1;
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
- __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1331; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1354; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_k_199 = __pyx_t_1;
+ __pyx_k_208 = __pyx_t_1;
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1332
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1355
* huge_tree=False, remove_blank_text=False, resolve_entities=True,
* remove_comments=True, remove_pis=True, strip_cdata=True,
* target=None, compact=True): # <<<<<<<<<<<<<<
* XMLParser.__init__(self,
* attribute_defaults=attribute_defaults,
*/
- __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1332; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1355; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_k_200 = __pyx_t_1;
+ __pyx_k_209 = __pyx_t_1;
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1352
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1375
*
* # ET 1.2 compatible name
* XMLTreeBuilder = ETCompatXMLParser # <<<<<<<<<<<<<<
*
*
*/
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__XMLTreeBuilder, ((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_ETCompatXMLParser))) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1352; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__XMLTreeBuilder, ((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_ETCompatXMLParser))) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1375; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1356
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1379
*
* cdef XMLParser __DEFAULT_XML_PARSER
* __DEFAULT_XML_PARSER = XMLParser() # <<<<<<<<<<<<<<
*
* __GLOBAL_PARSER_CONTEXT.setDefaultParser(__DEFAULT_XML_PARSER)
*/
- __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_XMLParser)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1356; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_XMLParser)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1379; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XGOTREF(((PyObject *)__pyx_v_4lxml_5etree___DEFAULT_XML_PARSER));
__Pyx_DECREF(((PyObject *)__pyx_v_4lxml_5etree___DEFAULT_XML_PARSER));
__pyx_v_4lxml_5etree___DEFAULT_XML_PARSER = ((struct __pyx_obj_4lxml_5etree_XMLParser *)__pyx_t_1);
__pyx_t_1 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1358
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1381
* __DEFAULT_XML_PARSER = XMLParser()
*
* __GLOBAL_PARSER_CONTEXT.setDefaultParser(__DEFAULT_XML_PARSER) # <<<<<<<<<<<<<<
__pyx_f_4lxml_5etree_24_ParserDictionaryContext_setDefaultParser(__pyx_v_4lxml_5etree___GLOBAL_PARSER_CONTEXT, ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_t_1));
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1360
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1383
* __GLOBAL_PARSER_CONTEXT.setDefaultParser(__DEFAULT_XML_PARSER)
*
* def set_default_parser(_BaseParser parser=None): # <<<<<<<<<<<<<<
* u"""set_default_parser(parser=None)
*
*/
- __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_43set_default_parser, NULL, __pyx_n_s_479); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1360; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_43set_default_parser, NULL, __pyx_n_s_494); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1383; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__set_default_parser, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1360; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__set_default_parser, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1383; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1376
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1399
* __GLOBAL_PARSER_CONTEXT.setDefaultParser(parser)
*
* def get_default_parser(): # <<<<<<<<<<<<<<
* u"get_default_parser()"
* return __GLOBAL_PARSER_CONTEXT.getDefaultParser()
*/
- __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_45get_default_parser, NULL, __pyx_n_s_479); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1376; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_45get_default_parser, NULL, __pyx_n_s_494); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1399; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__get_default_parser, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1376; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__get_default_parser, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1399; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1388
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1411
* htmlparser.HTML_PARSE_RECOVER |
* htmlparser.HTML_PARSE_NONET |
* htmlparser.HTML_PARSE_COMPACT # <<<<<<<<<<<<<<
*/
__pyx_v_4lxml_5etree__HTML_DEFAULT_PARSE_OPTIONS = ((HTML_PARSE_RECOVER | HTML_PARSE_NONET) | HTML_PARSE_COMPACT);
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1423
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1446
* reasons.
* """
* def __init__(self, *, encoding=None, remove_blank_text=False, # <<<<<<<<<<<<<<
* remove_comments=False, remove_pis=False, strip_cdata=True,
* no_network=True, target=None, XMLSchema schema=None,
*/
- __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1423; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_k_201 = __pyx_t_1;
+ __pyx_k_210 = __pyx_t_1;
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1424
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1447
* """
* def __init__(self, *, encoding=None, remove_blank_text=False,
* remove_comments=False, remove_pis=False, strip_cdata=True, # <<<<<<<<<<<<<<
* no_network=True, target=None, XMLSchema schema=None,
* recover=True, compact=True):
*/
- __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1424; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1447; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_k_202 = __pyx_t_1;
+ __pyx_k_211 = __pyx_t_1;
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
- __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1424; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1447; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_k_203 = __pyx_t_1;
+ __pyx_k_212 = __pyx_t_1;
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
- __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1424; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1447; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_k_204 = __pyx_t_1;
+ __pyx_k_213 = __pyx_t_1;
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1425
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1448
* def __init__(self, *, encoding=None, remove_blank_text=False,
* remove_comments=False, remove_pis=False, strip_cdata=True,
* no_network=True, target=None, XMLSchema schema=None, # <<<<<<<<<<<<<<
* recover=True, compact=True):
* cdef int parse_options
*/
- __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1448; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_k_205 = __pyx_t_1;
+ __pyx_k_214 = __pyx_t_1;
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1426
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1449
* remove_comments=False, remove_pis=False, strip_cdata=True,
* no_network=True, target=None, XMLSchema schema=None,
* recover=True, compact=True): # <<<<<<<<<<<<<<
* cdef int parse_options
* parse_options = _HTML_DEFAULT_PARSE_OPTIONS
*/
- __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1426; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1449; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_k_206 = __pyx_t_1;
+ __pyx_k_215 = __pyx_t_1;
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
- __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1426; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1449; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_k_207 = __pyx_t_1;
+ __pyx_k_216 = __pyx_t_1;
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
- /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1443
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1466
*
* cdef HTMLParser __DEFAULT_HTML_PARSER
* __DEFAULT_HTML_PARSER = HTMLParser() # <<<<<<<<<<<<<<
*
* ############################################################
*/
- __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_HTMLParser)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1443; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_HTMLParser)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1466; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XGOTREF(((PyObject *)__pyx_v_4lxml_5etree___DEFAULT_HTML_PARSER));
__Pyx_DECREF(((PyObject *)__pyx_v_4lxml_5etree___DEFAULT_HTML_PARSER));
__pyx_t_7 = __Pyx_Import(((PyObject *)__pyx_n_s__inspect), ((PyObject *)__pyx_t_1), 0); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
- __pyx_t_1 = PyObject_GetAttr(__pyx_t_7, __pyx_n_s__getargspec);
- if (__pyx_t_1 == NULL) {
- if (PyErr_ExceptionMatches(PyExc_AttributeError)) __Pyx_RaiseImportError(__pyx_n_s__getargspec);
- if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- }
+ __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_7, __pyx_n_s__getargspec); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__Pyx_INCREF(__pyx_t_1);
__Pyx_XGOTREF(__pyx_v_4lxml_5etree_inspect_getargspec);
* self.result = result
*
*/
- __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_19_TargetParserResult_1__init__, 0, __pyx_n_s_572, NULL, __pyx_n_s_479, ((PyObject *)__pyx_k_codeobj_570)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_19_TargetParserResult_1__init__, 0, __pyx_n_s_587, NULL, __pyx_n_s_494, ((PyObject *)__pyx_k_codeobj_585)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
if (PyObject_SetItem(__pyx_t_7, __pyx_n_s____init__, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_INCREF(__pyx_builtin_Exception);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_builtin_Exception);
__Pyx_GIVEREF(__pyx_builtin_Exception);
- __pyx_t_6 = __Pyx_CreateClass(((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_7), __pyx_n_s___TargetParserResult, __pyx_n_s___TargetParserResult, __pyx_n_s_479); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 6; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_CreateClass(((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_7), __pyx_n_s___TargetParserResult, __pyx_n_s___TargetParserResult, __pyx_n_s_494); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 6; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s___TargetParserResult, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 6; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s___TargetParserResult, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 6; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
*/
__pyx_t_7 = PyDict_New(); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_7));
- __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s__LxmlError); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s__LxmlError); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6);
__Pyx_GIVEREF(__pyx_t_6);
__pyx_t_6 = 0;
- if (PyDict_SetItemString(((PyObject *)__pyx_t_7), "__doc__", ((PyObject *)__pyx_kp_s_573)) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_t_6 = __Pyx_CreateClass(((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_7), __pyx_n_s__SerialisationError, __pyx_n_s__SerialisationError, __pyx_n_s_479); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItemString(((PyObject *)__pyx_t_7), "__doc__", ((PyObject *)__pyx_kp_s_588)) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_CreateClass(((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_7), __pyx_n_s__SerialisationError, __pyx_n_s__SerialisationError, __pyx_n_s_494); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__SerialisationError, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__SerialisationError, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
*/
__pyx_t_7 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 369; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
- __pyx_k_268 = __pyx_t_7;
+ __pyx_k_280 = __pyx_t_7;
__Pyx_GIVEREF(__pyx_t_7);
__pyx_t_7 = 0;
__pyx_t_7 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 369; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
- __pyx_k_269 = __pyx_t_7;
+ __pyx_k_281 = __pyx_t_7;
__Pyx_GIVEREF(__pyx_t_7);
__pyx_t_7 = 0;
*/
__pyx_t_7 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 370; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
- __pyx_k_270 = __pyx_t_7;
+ __pyx_k_282 = __pyx_t_7;
__Pyx_GIVEREF(__pyx_t_7);
__pyx_t_7 = 0;
__pyx_t_7 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 370; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
- __pyx_k_271 = __pyx_t_7;
+ __pyx_k_283 = __pyx_t_7;
__Pyx_GIVEREF(__pyx_t_7);
__pyx_t_7 = 0;
__pyx_t_7 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 370; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
- __pyx_k_272 = __pyx_t_7;
+ __pyx_k_284 = __pyx_t_7;
__Pyx_GIVEREF(__pyx_t_7);
__pyx_t_7 = 0;
*/
__pyx_t_7 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 371; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
- __pyx_k_273 = __pyx_t_7;
+ __pyx_k_285 = __pyx_t_7;
__Pyx_GIVEREF(__pyx_t_7);
__pyx_t_7 = 0;
__pyx_t_7 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 371; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
- __pyx_k_274 = __pyx_t_7;
+ __pyx_k_286 = __pyx_t_7;
__Pyx_GIVEREF(__pyx_t_7);
__pyx_t_7 = 0;
__pyx_t_7 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 371; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
- __pyx_k_275 = __pyx_t_7;
+ __pyx_k_287 = __pyx_t_7;
__Pyx_GIVEREF(__pyx_t_7);
__pyx_t_7 = 0;
*/
__pyx_t_7 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 372; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
- __pyx_k_276 = __pyx_t_7;
+ __pyx_k_288 = __pyx_t_7;
__Pyx_GIVEREF(__pyx_t_7);
__pyx_t_7 = 0;
__pyx_t_7 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 372; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
- __pyx_k_277 = __pyx_t_7;
+ __pyx_k_289 = __pyx_t_7;
__Pyx_GIVEREF(__pyx_t_7);
__pyx_t_7 = 0;
*/
__pyx_t_7 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
- __pyx_k_278 = __pyx_t_7;
+ __pyx_k_290 = __pyx_t_7;
__Pyx_GIVEREF(__pyx_t_7);
__pyx_t_7 = 0;
__pyx_t_7 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
- __pyx_k_279 = __pyx_t_7;
+ __pyx_k_291 = __pyx_t_7;
__Pyx_GIVEREF(__pyx_t_7);
__pyx_t_7 = 0;
* u"""XMLID(text, parser=None, base_url=None)
*
*/
- __pyx_t_7 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_47XMLID, NULL, __pyx_n_s_479); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_47XMLID, NULL, __pyx_n_s_494); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__XMLID, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__XMLID, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlid.pxi":24
* u"""XMLDTDID(text, parser=None, base_url=None)
*
*/
- __pyx_t_7 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_49XMLDTDID, NULL, __pyx_n_s_479); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_49XMLDTDID, NULL, __pyx_n_s_494); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__XMLDTDID, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__XMLDTDID, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlid.pxi":44
* u"""parseid(source, parser=None)
*
*/
- __pyx_t_7 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_51parseid, NULL, __pyx_n_s_479); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_51parseid, NULL, __pyx_n_s_494); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__parseid, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__parseid, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xinclude.pxi":5
*/
__pyx_t_7 = PyDict_New(); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[16]; __pyx_lineno = 5; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_7));
- __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s__LxmlError); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[16]; __pyx_lineno = 5; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s__LxmlError); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[16]; __pyx_lineno = 5; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[16]; __pyx_lineno = 5; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6);
__Pyx_GIVEREF(__pyx_t_6);
__pyx_t_6 = 0;
- if (PyDict_SetItemString(((PyObject *)__pyx_t_7), "__doc__", ((PyObject *)__pyx_kp_s_581)) < 0) {__pyx_filename = __pyx_f[16]; __pyx_lineno = 5; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_t_6 = __Pyx_CreateClass(((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_7), __pyx_n_s__XIncludeError, __pyx_n_s__XIncludeError, __pyx_n_s_479); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[16]; __pyx_lineno = 5; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItemString(((PyObject *)__pyx_t_7), "__doc__", ((PyObject *)__pyx_kp_s_596)) < 0) {__pyx_filename = __pyx_f[16]; __pyx_lineno = 5; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_CreateClass(((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_7), __pyx_n_s__XIncludeError, __pyx_n_s__XIncludeError, __pyx_n_s_494); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[16]; __pyx_lineno = 5; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__XIncludeError, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[16]; __pyx_lineno = 5; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__XIncludeError, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[16]; __pyx_lineno = 5; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
* u"""cleanup_namespaces(tree_or_element)
*
*/
- __pyx_t_7 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_53cleanup_namespaces, NULL, __pyx_n_s_479); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_53cleanup_namespaces, NULL, __pyx_n_s_494); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__cleanup_namespaces, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__cleanup_namespaces, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/cleanup.pxi":13
* u"""strip_attributes(tree_or_element, *attribute_names)
*
*/
- __pyx_t_7 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_55strip_attributes, NULL, __pyx_n_s_479); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_55strip_attributes, NULL, __pyx_n_s_494); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__strip_attributes, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__strip_attributes, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/cleanup.pxi":54
* u"""strip_elements(tree_or_element, *tag_names, with_tail=True)
*
*/
- __pyx_t_7 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_57strip_elements, NULL, __pyx_n_s_479); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_57strip_elements, NULL, __pyx_n_s_494); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__strip_elements, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__strip_elements, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/cleanup.pxi":132
* u"""strip_tags(tree_or_element, *tag_names)
*
*/
- __pyx_t_7 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_59strip_tags, NULL, __pyx_n_s_479); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_59strip_tags, NULL, __pyx_n_s_494); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__strip_tags, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__strip_tags, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":3
*/
__pyx_t_7 = PyDict_New(); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_7));
- __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s__LxmlError); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s__LxmlError); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6);
__Pyx_GIVEREF(__pyx_t_6);
__pyx_t_6 = 0;
- if (PyDict_SetItemString(((PyObject *)__pyx_t_7), "__doc__", ((PyObject *)__pyx_kp_s_591)) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_t_6 = __Pyx_CreateClass(((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_7), __pyx_n_s__XPathError, __pyx_n_s__XPathError, __pyx_n_s_479); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItemString(((PyObject *)__pyx_t_7), "__doc__", ((PyObject *)__pyx_kp_s_606)) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_CreateClass(((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_7), __pyx_n_s__XPathError, __pyx_n_s__XPathError, __pyx_n_s_494); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__XPathError, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__XPathError, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
*/
__pyx_t_7 = PyDict_New(); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_7));
- __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s__XPathError); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s__XPathError); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6);
__Pyx_GIVEREF(__pyx_t_6);
__pyx_t_6 = 0;
- if (PyDict_SetItemString(((PyObject *)__pyx_t_7), "__doc__", ((PyObject *)__pyx_kp_s_592)) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_t_6 = __Pyx_CreateClass(((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_7), __pyx_n_s__XPathEvalError, __pyx_n_s__XPathEvalError, __pyx_n_s_479); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItemString(((PyObject *)__pyx_t_7), "__doc__", ((PyObject *)__pyx_kp_s_607)) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_CreateClass(((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_7), __pyx_n_s__XPathEvalError, __pyx_n_s__XPathEvalError, __pyx_n_s_494); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__XPathEvalError, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__XPathEvalError, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
*/
__pyx_t_7 = PyDict_New(); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_7));
- __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s__XPathEvalError); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s__XPathEvalError); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6);
__Pyx_GIVEREF(__pyx_t_6);
__pyx_t_6 = 0;
- if (PyDict_SetItemString(((PyObject *)__pyx_t_7), "__doc__", ((PyObject *)__pyx_kp_s_593)) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_t_6 = __Pyx_CreateClass(((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_7), __pyx_n_s__XPathFunctionError, __pyx_n_s__XPathFunctionError, __pyx_n_s_479); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItemString(((PyObject *)__pyx_t_7), "__doc__", ((PyObject *)__pyx_kp_s_608)) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_CreateClass(((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_7), __pyx_n_s__XPathFunctionError, __pyx_n_s__XPathFunctionError, __pyx_n_s_494); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__XPathFunctionError, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__XPathFunctionError, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
*/
__pyx_t_7 = PyDict_New(); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_7));
- __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s__XPathEvalError); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s__XPathEvalError); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6);
__Pyx_GIVEREF(__pyx_t_6);
__pyx_t_6 = 0;
- if (PyDict_SetItemString(((PyObject *)__pyx_t_7), "__doc__", ((PyObject *)__pyx_kp_s_594)) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_t_6 = __Pyx_CreateClass(((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_7), __pyx_n_s__XPathResultError, __pyx_n_s__XPathResultError, __pyx_n_s_479); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItemString(((PyObject *)__pyx_t_7), "__doc__", ((PyObject *)__pyx_kp_s_609)) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_CreateClass(((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_7), __pyx_n_s__XPathResultError, __pyx_n_s__XPathResultError, __pyx_n_s_494); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__XPathResultError, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__XPathResultError, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
__Pyx_INCREF(((PyObject *)__pyx_n_b__Ok));
PyList_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_n_b__Ok));
__Pyx_GIVEREF(((PyObject *)__pyx_n_b__Ok));
- __Pyx_INCREF(((PyObject *)__pyx_kp_b_595));
- PyList_SET_ITEM(__pyx_t_7, 1, ((PyObject *)__pyx_kp_b_595));
- __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_595));
- __Pyx_INCREF(((PyObject *)__pyx_kp_b_596));
- PyList_SET_ITEM(__pyx_t_7, 2, ((PyObject *)__pyx_kp_b_596));
- __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_596));
- __Pyx_INCREF(((PyObject *)__pyx_kp_b_597));
- PyList_SET_ITEM(__pyx_t_7, 3, ((PyObject *)__pyx_kp_b_597));
- __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_597));
- __Pyx_INCREF(((PyObject *)__pyx_kp_b_598));
- PyList_SET_ITEM(__pyx_t_7, 4, ((PyObject *)__pyx_kp_b_598));
- __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_598));
- __Pyx_INCREF(((PyObject *)__pyx_kp_b_599));
- PyList_SET_ITEM(__pyx_t_7, 5, ((PyObject *)__pyx_kp_b_599));
- __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_599));
- __Pyx_INCREF(((PyObject *)__pyx_kp_b_600));
- PyList_SET_ITEM(__pyx_t_7, 6, ((PyObject *)__pyx_kp_b_600));
- __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_600));
- __Pyx_INCREF(((PyObject *)__pyx_kp_b_601));
- PyList_SET_ITEM(__pyx_t_7, 7, ((PyObject *)__pyx_kp_b_601));
- __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_601));
- __Pyx_INCREF(((PyObject *)__pyx_kp_b_602));
- PyList_SET_ITEM(__pyx_t_7, 8, ((PyObject *)__pyx_kp_b_602));
- __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_602));
- __Pyx_INCREF(((PyObject *)__pyx_kp_b_603));
- PyList_SET_ITEM(__pyx_t_7, 9, ((PyObject *)__pyx_kp_b_603));
- __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_603));
- __Pyx_INCREF(((PyObject *)__pyx_kp_b_604));
- PyList_SET_ITEM(__pyx_t_7, 10, ((PyObject *)__pyx_kp_b_604));
- __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_604));
- __Pyx_INCREF(((PyObject *)__pyx_kp_b_605));
- PyList_SET_ITEM(__pyx_t_7, 11, ((PyObject *)__pyx_kp_b_605));
- __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_605));
- __Pyx_INCREF(((PyObject *)__pyx_kp_b_606));
- PyList_SET_ITEM(__pyx_t_7, 12, ((PyObject *)__pyx_kp_b_606));
- __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_606));
- __Pyx_INCREF(((PyObject *)__pyx_kp_b_607));
- PyList_SET_ITEM(__pyx_t_7, 13, ((PyObject *)__pyx_kp_b_607));
- __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_607));
- __Pyx_INCREF(((PyObject *)__pyx_kp_b_608));
- PyList_SET_ITEM(__pyx_t_7, 14, ((PyObject *)__pyx_kp_b_608));
- __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_608));
- __Pyx_INCREF(((PyObject *)__pyx_kp_b_609));
- PyList_SET_ITEM(__pyx_t_7, 15, ((PyObject *)__pyx_kp_b_609));
- __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_609));
__Pyx_INCREF(((PyObject *)__pyx_kp_b_610));
- PyList_SET_ITEM(__pyx_t_7, 16, ((PyObject *)__pyx_kp_b_610));
+ PyList_SET_ITEM(__pyx_t_7, 1, ((PyObject *)__pyx_kp_b_610));
__Pyx_GIVEREF(((PyObject *)__pyx_kp_b_610));
__Pyx_INCREF(((PyObject *)__pyx_kp_b_611));
- PyList_SET_ITEM(__pyx_t_7, 17, ((PyObject *)__pyx_kp_b_611));
+ PyList_SET_ITEM(__pyx_t_7, 2, ((PyObject *)__pyx_kp_b_611));
__Pyx_GIVEREF(((PyObject *)__pyx_kp_b_611));
__Pyx_INCREF(((PyObject *)__pyx_kp_b_612));
- PyList_SET_ITEM(__pyx_t_7, 18, ((PyObject *)__pyx_kp_b_612));
+ PyList_SET_ITEM(__pyx_t_7, 3, ((PyObject *)__pyx_kp_b_612));
__Pyx_GIVEREF(((PyObject *)__pyx_kp_b_612));
__Pyx_INCREF(((PyObject *)__pyx_kp_b_613));
- PyList_SET_ITEM(__pyx_t_7, 19, ((PyObject *)__pyx_kp_b_613));
+ PyList_SET_ITEM(__pyx_t_7, 4, ((PyObject *)__pyx_kp_b_613));
__Pyx_GIVEREF(((PyObject *)__pyx_kp_b_613));
__Pyx_INCREF(((PyObject *)__pyx_kp_b_614));
- PyList_SET_ITEM(__pyx_t_7, 20, ((PyObject *)__pyx_kp_b_614));
+ PyList_SET_ITEM(__pyx_t_7, 5, ((PyObject *)__pyx_kp_b_614));
__Pyx_GIVEREF(((PyObject *)__pyx_kp_b_614));
__Pyx_INCREF(((PyObject *)__pyx_kp_b_615));
- PyList_SET_ITEM(__pyx_t_7, 21, ((PyObject *)__pyx_kp_b_615));
+ PyList_SET_ITEM(__pyx_t_7, 6, ((PyObject *)__pyx_kp_b_615));
__Pyx_GIVEREF(((PyObject *)__pyx_kp_b_615));
__Pyx_INCREF(((PyObject *)__pyx_kp_b_616));
- PyList_SET_ITEM(__pyx_t_7, 22, ((PyObject *)__pyx_kp_b_616));
+ PyList_SET_ITEM(__pyx_t_7, 7, ((PyObject *)__pyx_kp_b_616));
__Pyx_GIVEREF(((PyObject *)__pyx_kp_b_616));
__Pyx_INCREF(((PyObject *)__pyx_kp_b_617));
- PyList_SET_ITEM(__pyx_t_7, 23, ((PyObject *)__pyx_kp_b_617));
+ PyList_SET_ITEM(__pyx_t_7, 8, ((PyObject *)__pyx_kp_b_617));
__Pyx_GIVEREF(((PyObject *)__pyx_kp_b_617));
+ __Pyx_INCREF(((PyObject *)__pyx_kp_b_618));
+ PyList_SET_ITEM(__pyx_t_7, 9, ((PyObject *)__pyx_kp_b_618));
+ __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_618));
+ __Pyx_INCREF(((PyObject *)__pyx_kp_b_619));
+ PyList_SET_ITEM(__pyx_t_7, 10, ((PyObject *)__pyx_kp_b_619));
+ __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_619));
+ __Pyx_INCREF(((PyObject *)__pyx_kp_b_620));
+ PyList_SET_ITEM(__pyx_t_7, 11, ((PyObject *)__pyx_kp_b_620));
+ __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_620));
+ __Pyx_INCREF(((PyObject *)__pyx_kp_b_621));
+ PyList_SET_ITEM(__pyx_t_7, 12, ((PyObject *)__pyx_kp_b_621));
+ __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_621));
+ __Pyx_INCREF(((PyObject *)__pyx_kp_b_622));
+ PyList_SET_ITEM(__pyx_t_7, 13, ((PyObject *)__pyx_kp_b_622));
+ __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_622));
+ __Pyx_INCREF(((PyObject *)__pyx_kp_b_623));
+ PyList_SET_ITEM(__pyx_t_7, 14, ((PyObject *)__pyx_kp_b_623));
+ __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_623));
+ __Pyx_INCREF(((PyObject *)__pyx_kp_b_624));
+ PyList_SET_ITEM(__pyx_t_7, 15, ((PyObject *)__pyx_kp_b_624));
+ __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_624));
+ __Pyx_INCREF(((PyObject *)__pyx_kp_b_625));
+ PyList_SET_ITEM(__pyx_t_7, 16, ((PyObject *)__pyx_kp_b_625));
+ __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_625));
+ __Pyx_INCREF(((PyObject *)__pyx_kp_b_626));
+ PyList_SET_ITEM(__pyx_t_7, 17, ((PyObject *)__pyx_kp_b_626));
+ __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_626));
+ __Pyx_INCREF(((PyObject *)__pyx_kp_b_627));
+ PyList_SET_ITEM(__pyx_t_7, 18, ((PyObject *)__pyx_kp_b_627));
+ __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_627));
+ __Pyx_INCREF(((PyObject *)__pyx_kp_b_628));
+ PyList_SET_ITEM(__pyx_t_7, 19, ((PyObject *)__pyx_kp_b_628));
+ __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_628));
+ __Pyx_INCREF(((PyObject *)__pyx_kp_b_629));
+ PyList_SET_ITEM(__pyx_t_7, 20, ((PyObject *)__pyx_kp_b_629));
+ __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_629));
+ __Pyx_INCREF(((PyObject *)__pyx_kp_b_630));
+ PyList_SET_ITEM(__pyx_t_7, 21, ((PyObject *)__pyx_kp_b_630));
+ __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_630));
+ __Pyx_INCREF(((PyObject *)__pyx_kp_b_631));
+ PyList_SET_ITEM(__pyx_t_7, 22, ((PyObject *)__pyx_kp_b_631));
+ __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_631));
+ __Pyx_INCREF(((PyObject *)__pyx_kp_b_632));
+ PyList_SET_ITEM(__pyx_t_7, 23, ((PyObject *)__pyx_kp_b_632));
+ __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_632));
__Pyx_XGOTREF(((PyObject *)__pyx_v_4lxml_5etree_LIBXML2_XPATH_ERROR_MESSAGES));
__Pyx_DECREF(((PyObject *)__pyx_v_4lxml_5etree_LIBXML2_XPATH_ERROR_MESSAGES));
__Pyx_GIVEREF(((PyObject *)__pyx_t_7));
* u"""Extension(module, function_mapping=None, ns=None)
*
*/
- __pyx_t_7 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_61Extension, NULL, __pyx_n_s_479); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_61Extension, NULL, __pyx_n_s_494); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__Extension, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__Extension, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":731
* return self._parent
*
*/
- __pyx_t_6 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_20_ElementStringResult_1getparent, 0, __pyx_n_s_623, NULL, __pyx_n_s_479, ((PyObject *)__pyx_k_codeobj_622)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 734; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_20_ElementStringResult_1getparent, 0, __pyx_n_s_638, NULL, __pyx_n_s_494, ((PyObject *)__pyx_k_codeobj_637)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 734; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
if (PyObject_SetItem(__pyx_t_7, __pyx_n_s__getparent, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 734; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_INCREF(((PyObject *)((PyObject*)(&PyBytes_Type))));
PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)((PyObject*)(&PyBytes_Type))));
__Pyx_GIVEREF(((PyObject *)((PyObject*)(&PyBytes_Type))));
- __pyx_t_1 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_7), __pyx_n_s_315, __pyx_n_s_315, __pyx_n_s_479); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 731; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_7), __pyx_n_s_329, __pyx_n_s_329, __pyx_n_s_494); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 731; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s_315, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 731; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s_329, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 731; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
*/
__pyx_t_7 = PyDict_New(); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_7));
- __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__LxmlSyntaxError); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__LxmlSyntaxError); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s__XPathError); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s__XPathError); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_9);
__Pyx_GIVEREF(__pyx_t_6);
__pyx_t_1 = 0;
__pyx_t_6 = 0;
- __pyx_t_6 = __Pyx_CreateClass(((PyObject *)__pyx_t_9), ((PyObject *)__pyx_t_7), __pyx_n_s__XPathSyntaxError, __pyx_n_s__XPathSyntaxError, __pyx_n_s_479); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_CreateClass(((PyObject *)__pyx_t_9), ((PyObject *)__pyx_t_7), __pyx_n_s__XPathSyntaxError, __pyx_n_s__XPathSyntaxError, __pyx_n_s_494); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0;
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__XPathSyntaxError, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__XPathSyntaxError, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
*/
__pyx_t_15 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 268; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_15);
- __pyx_k_321 = __pyx_t_15;
+ __pyx_k_335 = __pyx_t_15;
__Pyx_GIVEREF(__pyx_t_15);
__pyx_t_15 = 0;
__pyx_t_15 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 268; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_15);
- __pyx_k_322 = __pyx_t_15;
+ __pyx_k_336 = __pyx_t_15;
__Pyx_GIVEREF(__pyx_t_15);
__pyx_t_15 = 0;
*/
__pyx_t_15 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 341; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_15);
- __pyx_k_324 = __pyx_t_15;
+ __pyx_k_338 = __pyx_t_15;
__Pyx_GIVEREF(__pyx_t_15);
__pyx_t_15 = 0;
__pyx_t_15 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 341; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_15);
- __pyx_k_325 = __pyx_t_15;
+ __pyx_k_339 = __pyx_t_15;
__Pyx_GIVEREF(__pyx_t_15);
__pyx_t_15 = 0;
*/
__pyx_t_15 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 385; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_15);
- __pyx_k_326 = __pyx_t_15;
+ __pyx_k_340 = __pyx_t_15;
__Pyx_GIVEREF(__pyx_t_15);
__pyx_t_15 = 0;
__pyx_t_15 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 385; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_15);
- __pyx_k_327 = __pyx_t_15;
+ __pyx_k_341 = __pyx_t_15;
__Pyx_GIVEREF(__pyx_t_15);
__pyx_t_15 = 0;
* regexp=True, smart_strings=True):
* u"""XPathEvaluator(etree_or_element, namespaces=None, extensions=None, regexp=True, smart_strings=True)
*/
- __pyx_t_15 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_63XPathEvaluator, NULL, __pyx_n_s_479); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_15 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_63XPathEvaluator, NULL, __pyx_n_s_494); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_15);
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__XPathEvaluator, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__XPathEvaluator, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":427
*/
__pyx_t_15 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 427; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_15);
- __pyx_k_328 = __pyx_t_15;
+ __pyx_k_342 = __pyx_t_15;
__Pyx_GIVEREF(__pyx_t_15);
__pyx_t_15 = 0;
__pyx_t_15 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 427; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_15);
- __pyx_k_329 = __pyx_t_15;
+ __pyx_k_343 = __pyx_t_15;
__Pyx_GIVEREF(__pyx_t_15);
__pyx_t_15 = 0;
* _find_namespaces = re.compile(b'({[^}]+})').findall
*
*/
- __pyx_t_15 = PyObject_GetAttr(__pyx_v_4lxml_5etree_re, __pyx_n_s__compile); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 482; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_re, __pyx_n_s__compile); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 482; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_15);
- __pyx_t_14 = PyObject_Call(__pyx_t_15, ((PyObject *)__pyx_k_tuple_628), NULL); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 482; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_14 = PyObject_Call(__pyx_t_15, ((PyObject *)__pyx_k_tuple_643), NULL); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 482; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_14);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
- __pyx_t_15 = PyObject_GetAttr(__pyx_t_14, __pyx_n_s__sub); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 482; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s__sub); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 482; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_XGOTREF(__pyx_v_4lxml_5etree__replace_strings);
*
* cdef class ETXPath(XPath):
*/
- __pyx_t_15 = PyObject_GetAttr(__pyx_v_4lxml_5etree_re, __pyx_n_s__compile); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 483; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_re, __pyx_n_s__compile); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 483; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_15);
- __pyx_t_14 = PyObject_Call(__pyx_t_15, ((PyObject *)__pyx_k_tuple_630), NULL); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 483; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_14 = PyObject_Call(__pyx_t_15, ((PyObject *)__pyx_k_tuple_645), NULL); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 483; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_14);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
- __pyx_t_15 = PyObject_GetAttr(__pyx_t_14, __pyx_n_s__findall); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 483; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s__findall); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 483; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_XGOTREF(__pyx_v_4lxml_5etree__find_namespaces);
*/
__pyx_t_15 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 494; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_15);
- __pyx_k_330 = __pyx_t_15;
+ __pyx_k_344 = __pyx_t_15;
__Pyx_GIVEREF(__pyx_t_15);
__pyx_t_15 = 0;
*/
__pyx_t_15 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 495; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_15);
- __pyx_k_331 = __pyx_t_15;
+ __pyx_k_345 = __pyx_t_15;
__Pyx_GIVEREF(__pyx_t_15);
__pyx_t_15 = 0;
*/
__pyx_t_15 = PyDict_New(); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 5; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_15));
- __pyx_t_14 = __Pyx_GetName(__pyx_m, __pyx_n_s__LxmlError); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 5; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s__LxmlError); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 5; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_14);
__pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 5; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_14);
__Pyx_GIVEREF(__pyx_t_14);
__pyx_t_14 = 0;
- if (PyDict_SetItemString(((PyObject *)__pyx_t_15), "__doc__", ((PyObject *)__pyx_kp_s_631)) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 5; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_t_14 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_15), __pyx_n_s__XSLTError, __pyx_n_s__XSLTError, __pyx_n_s_479); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 5; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItemString(((PyObject *)__pyx_t_15), "__doc__", ((PyObject *)__pyx_kp_s_646)) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 5; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_14 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_15), __pyx_n_s__XSLTError, __pyx_n_s__XSLTError, __pyx_n_s_494); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 5; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_14);
__Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__XSLTError, __pyx_t_14) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 5; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__XSLTError, __pyx_t_14) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 5; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_DECREF(((PyObject *)__pyx_t_15)); __pyx_t_15 = 0;
*/
__pyx_t_15 = PyDict_New(); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_15));
- __pyx_t_14 = __Pyx_GetName(__pyx_m, __pyx_n_s__XSLTError); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s__XSLTError); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_14);
__pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_14);
__Pyx_GIVEREF(__pyx_t_14);
__pyx_t_14 = 0;
- if (PyDict_SetItemString(((PyObject *)__pyx_t_15), "__doc__", ((PyObject *)__pyx_kp_s_632)) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_t_14 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_15), __pyx_n_s__XSLTParseError, __pyx_n_s__XSLTParseError, __pyx_n_s_479); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItemString(((PyObject *)__pyx_t_15), "__doc__", ((PyObject *)__pyx_kp_s_647)) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_14 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_15), __pyx_n_s__XSLTParseError, __pyx_n_s__XSLTParseError, __pyx_n_s_494); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_14);
__Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__XSLTParseError, __pyx_t_14) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__XSLTParseError, __pyx_t_14) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_DECREF(((PyObject *)__pyx_t_15)); __pyx_t_15 = 0;
*/
__pyx_t_15 = PyDict_New(); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_15));
- __pyx_t_14 = __Pyx_GetName(__pyx_m, __pyx_n_s__XSLTError); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s__XSLTError); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_14);
__pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_14);
__Pyx_GIVEREF(__pyx_t_14);
__pyx_t_14 = 0;
- if (PyDict_SetItemString(((PyObject *)__pyx_t_15), "__doc__", ((PyObject *)__pyx_kp_s_633)) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_t_14 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_15), __pyx_n_s__XSLTApplyError, __pyx_n_s__XSLTApplyError, __pyx_n_s_479); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItemString(((PyObject *)__pyx_t_15), "__doc__", ((PyObject *)__pyx_kp_s_648)) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_14 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_15), __pyx_n_s__XSLTApplyError, __pyx_n_s__XSLTApplyError, __pyx_n_s_494); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_14);
__Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__XSLTApplyError, __pyx_t_14) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__XSLTApplyError, __pyx_t_14) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_DECREF(((PyObject *)__pyx_t_15)); __pyx_t_15 = 0;
*/
__pyx_t_15 = PyDict_New(); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_15));
- __pyx_t_14 = __Pyx_GetName(__pyx_m, __pyx_n_s__XSLTError); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s__XSLTError); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_14);
__pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_14);
__Pyx_GIVEREF(__pyx_t_14);
__pyx_t_14 = 0;
- if (PyDict_SetItemString(((PyObject *)__pyx_t_15), "__doc__", ((PyObject *)__pyx_kp_s_634)) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_t_14 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_15), __pyx_n_s__XSLTSaveError, __pyx_n_s__XSLTSaveError, __pyx_n_s_479); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItemString(((PyObject *)__pyx_t_15), "__doc__", ((PyObject *)__pyx_kp_s_649)) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_14 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_15), __pyx_n_s__XSLTSaveError, __pyx_n_s__XSLTSaveError, __pyx_n_s_494); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_14);
__Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__XSLTSaveError, __pyx_t_14) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__XSLTSaveError, __pyx_t_14) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_DECREF(((PyObject *)__pyx_t_15)); __pyx_t_15 = 0;
*/
__pyx_t_15 = PyDict_New(); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_15));
- __pyx_t_14 = __Pyx_GetName(__pyx_m, __pyx_n_s__XSLTError); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s__XSLTError); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_14);
__pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_14);
__Pyx_GIVEREF(__pyx_t_14);
__pyx_t_14 = 0;
- if (PyDict_SetItemString(((PyObject *)__pyx_t_15), "__doc__", ((PyObject *)__pyx_kp_s_635)) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_t_14 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_15), __pyx_n_s__XSLTExtensionError, __pyx_n_s__XSLTExtensionError, __pyx_n_s_479); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItemString(((PyObject *)__pyx_t_15), "__doc__", ((PyObject *)__pyx_kp_s_650)) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_14 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_15), __pyx_n_s__XSLTExtensionError, __pyx_n_s__XSLTExtensionError, __pyx_n_s_494); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_14);
__Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__XSLTExtensionError, __pyx_t_14) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__XSLTExtensionError, __pyx_t_14) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_DECREF(((PyObject *)__pyx_t_15)); __pyx_t_15 = 0;
*/
__pyx_t_15 = __pyx_f_4lxml_5etree___unpackIntVersion(LIBXSLT_VERSION); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_15);
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s_460, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s_475, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":32
*/
__pyx_t_15 = __pyx_f_4lxml_5etree___unpackIntVersion(xsltLibxsltVersion); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 32; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_15);
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__LIBXSLT_VERSION, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 32; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__LIBXSLT_VERSION, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 32; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":160
*/
__pyx_t_15 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 366; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_15);
- __pyx_k_340 = __pyx_t_15;
+ __pyx_k_355 = __pyx_t_15;
__Pyx_GIVEREF(__pyx_t_15);
__pyx_t_15 = 0;
* u"""strparam(strval)
*
*/
- __pyx_t_15 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_4XSLT_7strparam, NULL, __pyx_n_s_479); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_15 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_4XSLT_7strparam, NULL, __pyx_n_s_494); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 431; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_14);
* def strparam(strval):
* u"""strparam(strval)
*/
- __pyx_t_15 = __Pyx_GetName((PyObject *)__pyx_ptype_4lxml_5etree_XSLT, __pyx_n_s__strparam); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_15 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_4lxml_5etree_XSLT, __pyx_n_s__strparam); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 431; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_14);
* u"""set_global_max_depth(max_depth)
*
*/
- __pyx_t_15 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_4XSLT_9set_global_max_depth, NULL, __pyx_n_s_479); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_15 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_4XSLT_9set_global_max_depth, NULL, __pyx_n_s_494); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 445; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_14);
__pyx_t_15 = PyObject_Call(__pyx_builtin_staticmethod, ((PyObject *)__pyx_t_14), NULL); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 445; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(((PyObject *)__pyx_t_14)); __pyx_t_14 = 0;
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree_XSLT->tp_dict, __pyx_n_s_641, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree_XSLT->tp_dict, __pyx_n_s_656, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree_XSLT);
* def set_global_max_depth(int max_depth):
* u"""set_global_max_depth(max_depth)
*/
- __pyx_t_15 = __Pyx_GetName((PyObject *)__pyx_ptype_4lxml_5etree_XSLT, __pyx_n_s_641); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_15 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_4lxml_5etree_XSLT, __pyx_n_s_656); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 445; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_14);
__pyx_t_15 = PyObject_Call(__pyx_builtin_staticmethod, ((PyObject *)__pyx_t_14), NULL); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 445; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(((PyObject *)__pyx_t_14)); __pyx_t_14 = 0;
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree_XSLT->tp_dict, __pyx_n_s_641, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree_XSLT->tp_dict, __pyx_n_s_656, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree_XSLT);
*/
__pyx_t_15 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 465; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_15);
- __pyx_k_346 = __pyx_t_15;
+ __pyx_k_361 = __pyx_t_15;
__Pyx_GIVEREF(__pyx_t_15);
__pyx_t_15 = 0;
*/
__pyx_t_15 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 486; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_15);
- __pyx_k_347 = __pyx_t_15;
+ __pyx_k_362 = __pyx_t_15;
__Pyx_GIVEREF(__pyx_t_15);
__pyx_t_15 = 0;
* cdef object _FIND_PI_HREF = _RE_PI_HREF.findall
* cdef object _REPLACE_PI_HREF = _RE_PI_HREF.sub
*/
- __pyx_t_15 = PyObject_GetAttr(__pyx_v_4lxml_5etree_re, __pyx_n_s__compile); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 833; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_re, __pyx_n_s__compile); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 833; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_15);
- __pyx_t_14 = PyObject_Call(__pyx_t_15, ((PyObject *)__pyx_k_tuple_643), NULL); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 833; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_14 = PyObject_Call(__pyx_t_15, ((PyObject *)__pyx_k_tuple_658), NULL); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 833; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_14);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_XGOTREF(__pyx_v_4lxml_5etree__RE_PI_HREF);
* cdef object _REPLACE_PI_HREF = _RE_PI_HREF.sub
* cdef XPath __findStylesheetByID = None
*/
- __pyx_t_14 = PyObject_GetAttr(__pyx_v_4lxml_5etree__RE_PI_HREF, __pyx_n_s__findall); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 834; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree__RE_PI_HREF, __pyx_n_s__findall); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 834; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_14);
__Pyx_XGOTREF(__pyx_v_4lxml_5etree__FIND_PI_HREF);
__Pyx_DECREF(__pyx_v_4lxml_5etree__FIND_PI_HREF);
* cdef XPath __findStylesheetByID = None
*
*/
- __pyx_t_14 = PyObject_GetAttr(__pyx_v_4lxml_5etree__RE_PI_HREF, __pyx_n_s__sub); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 835; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree__RE_PI_HREF, __pyx_n_s__sub); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 835; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_14);
__Pyx_XGOTREF(__pyx_v_4lxml_5etree__REPLACE_PI_HREF);
__Pyx_DECREF(__pyx_v_4lxml_5etree__REPLACE_PI_HREF);
*/
__pyx_t_14 = PyDict_New(); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3232; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_14));
- __pyx_t_15 = __Pyx_GetName(__pyx_m, __pyx_n_s__LxmlError); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3232; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_15 = __Pyx_GetModuleGlobalName(__pyx_n_s__LxmlError); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3232; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3232; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_15);
__Pyx_GIVEREF(__pyx_t_15);
__pyx_t_15 = 0;
- if (PyDict_SetItemString(((PyObject *)__pyx_t_14), "__doc__", ((PyObject *)__pyx_kp_s_644)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3232; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_t_15 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_14), __pyx_n_s__DocumentInvalid, __pyx_n_s__DocumentInvalid, __pyx_n_s_479); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3232; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItemString(((PyObject *)__pyx_t_14), "__doc__", ((PyObject *)__pyx_kp_s_659)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3232; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_15 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_14), __pyx_n_s__DocumentInvalid, __pyx_n_s__DocumentInvalid, __pyx_n_s_494); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3232; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__DocumentInvalid, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3232; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__DocumentInvalid, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3232; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_DECREF(((PyObject *)__pyx_t_14)); __pyx_t_14 = 0;
*/
__pyx_t_14 = PyDict_New(); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_14));
- __pyx_t_15 = __Pyx_GetName(__pyx_m, __pyx_n_s__LxmlError); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_15 = __Pyx_GetModuleGlobalName(__pyx_n_s__LxmlError); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_15);
__Pyx_GIVEREF(__pyx_t_15);
__pyx_t_15 = 0;
- if (PyDict_SetItemString(((PyObject *)__pyx_t_14), "__doc__", ((PyObject *)__pyx_kp_s_645)) < 0) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_t_15 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_14), __pyx_n_s__DTDError, __pyx_n_s__DTDError, __pyx_n_s_479); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItemString(((PyObject *)__pyx_t_14), "__doc__", ((PyObject *)__pyx_kp_s_660)) < 0) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_15 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_14), __pyx_n_s__DTDError, __pyx_n_s__DTDError, __pyx_n_s_494); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__DTDError, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__DTDError, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_DECREF(((PyObject *)__pyx_t_14)); __pyx_t_14 = 0;
*/
__pyx_t_14 = PyDict_New(); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_14));
- __pyx_t_15 = __Pyx_GetName(__pyx_m, __pyx_n_s__DTDError); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_15 = __Pyx_GetModuleGlobalName(__pyx_n_s__DTDError); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_15);
__Pyx_GIVEREF(__pyx_t_15);
__pyx_t_15 = 0;
- if (PyDict_SetItemString(((PyObject *)__pyx_t_14), "__doc__", ((PyObject *)__pyx_kp_s_646)) < 0) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_t_15 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_14), __pyx_n_s__DTDParseError, __pyx_n_s__DTDParseError, __pyx_n_s_479); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItemString(((PyObject *)__pyx_t_14), "__doc__", ((PyObject *)__pyx_kp_s_661)) < 0) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_15 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_14), __pyx_n_s__DTDParseError, __pyx_n_s__DTDParseError, __pyx_n_s_494); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__DTDParseError, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__DTDParseError, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_DECREF(((PyObject *)__pyx_t_14)); __pyx_t_14 = 0;
*/
__pyx_t_14 = PyDict_New(); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_14));
- __pyx_t_15 = __Pyx_GetName(__pyx_m, __pyx_n_s__DTDError); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_15 = __Pyx_GetModuleGlobalName(__pyx_n_s__DTDError); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_15);
__Pyx_GIVEREF(__pyx_t_15);
__pyx_t_15 = 0;
- if (PyDict_SetItemString(((PyObject *)__pyx_t_14), "__doc__", ((PyObject *)__pyx_kp_s_647)) < 0) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_t_15 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_14), __pyx_n_s__DTDValidateError, __pyx_n_s__DTDValidateError, __pyx_n_s_479); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItemString(((PyObject *)__pyx_t_14), "__doc__", ((PyObject *)__pyx_kp_s_662)) < 0) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_15 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_14), __pyx_n_s__DTDValidateError, __pyx_n_s__DTDValidateError, __pyx_n_s_494); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__DTDValidateError, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__DTDValidateError, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_DECREF(((PyObject *)__pyx_t_14)); __pyx_t_14 = 0;
*/
__pyx_t_14 = PyDict_New(); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_14));
- __pyx_t_15 = __Pyx_GetName(__pyx_m, __pyx_n_s__LxmlError); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_15 = __Pyx_GetModuleGlobalName(__pyx_n_s__LxmlError); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_15);
__Pyx_GIVEREF(__pyx_t_15);
__pyx_t_15 = 0;
- if (PyDict_SetItemString(((PyObject *)__pyx_t_14), "__doc__", ((PyObject *)__pyx_kp_s_648)) < 0) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_t_15 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_14), __pyx_n_s__RelaxNGError, __pyx_n_s__RelaxNGError, __pyx_n_s_479); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItemString(((PyObject *)__pyx_t_14), "__doc__", ((PyObject *)__pyx_kp_s_663)) < 0) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_15 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_14), __pyx_n_s__RelaxNGError, __pyx_n_s__RelaxNGError, __pyx_n_s_494); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__RelaxNGError, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__RelaxNGError, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_DECREF(((PyObject *)__pyx_t_14)); __pyx_t_14 = 0;
*/
__pyx_t_14 = PyDict_New(); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_14));
- __pyx_t_15 = __Pyx_GetName(__pyx_m, __pyx_n_s__RelaxNGError); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_15 = __Pyx_GetModuleGlobalName(__pyx_n_s__RelaxNGError); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_15);
__Pyx_GIVEREF(__pyx_t_15);
__pyx_t_15 = 0;
- if (PyDict_SetItemString(((PyObject *)__pyx_t_14), "__doc__", ((PyObject *)__pyx_kp_s_649)) < 0) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_t_15 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_14), __pyx_n_s__RelaxNGParseError, __pyx_n_s__RelaxNGParseError, __pyx_n_s_479); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItemString(((PyObject *)__pyx_t_14), "__doc__", ((PyObject *)__pyx_kp_s_664)) < 0) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_15 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_14), __pyx_n_s__RelaxNGParseError, __pyx_n_s__RelaxNGParseError, __pyx_n_s_494); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__RelaxNGParseError, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__RelaxNGParseError, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_DECREF(((PyObject *)__pyx_t_14)); __pyx_t_14 = 0;
*/
__pyx_t_14 = PyDict_New(); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_14));
- __pyx_t_15 = __Pyx_GetName(__pyx_m, __pyx_n_s__RelaxNGError); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_15 = __Pyx_GetModuleGlobalName(__pyx_n_s__RelaxNGError); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_15);
__Pyx_GIVEREF(__pyx_t_15);
__pyx_t_15 = 0;
- if (PyDict_SetItemString(((PyObject *)__pyx_t_14), "__doc__", ((PyObject *)__pyx_kp_s_650)) < 0) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_t_15 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_14), __pyx_n_s_393, __pyx_n_s_393, __pyx_n_s_479); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItemString(((PyObject *)__pyx_t_14), "__doc__", ((PyObject *)__pyx_kp_s_665)) < 0) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_15 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_14), __pyx_n_s_408, __pyx_n_s_408, __pyx_n_s_494); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s_393, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s_408, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_DECREF(((PyObject *)__pyx_t_14)); __pyx_t_14 = 0;
*/
__pyx_t_14 = PyDict_New(); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_14));
- __pyx_t_15 = __Pyx_GetName(__pyx_m, __pyx_n_s__LxmlError); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_15 = __Pyx_GetModuleGlobalName(__pyx_n_s__LxmlError); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_15);
__Pyx_GIVEREF(__pyx_t_15);
__pyx_t_15 = 0;
- if (PyDict_SetItemString(((PyObject *)__pyx_t_14), "__doc__", ((PyObject *)__pyx_kp_s_651)) < 0) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_t_15 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_14), __pyx_n_s__XMLSchemaError, __pyx_n_s__XMLSchemaError, __pyx_n_s_479); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItemString(((PyObject *)__pyx_t_14), "__doc__", ((PyObject *)__pyx_kp_s_666)) < 0) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_15 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_14), __pyx_n_s__XMLSchemaError, __pyx_n_s__XMLSchemaError, __pyx_n_s_494); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__XMLSchemaError, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__XMLSchemaError, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_DECREF(((PyObject *)__pyx_t_14)); __pyx_t_14 = 0;
*/
__pyx_t_14 = PyDict_New(); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_14));
- __pyx_t_15 = __Pyx_GetName(__pyx_m, __pyx_n_s__XMLSchemaError); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_15 = __Pyx_GetModuleGlobalName(__pyx_n_s__XMLSchemaError); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_15);
__Pyx_GIVEREF(__pyx_t_15);
__pyx_t_15 = 0;
- if (PyDict_SetItemString(((PyObject *)__pyx_t_14), "__doc__", ((PyObject *)__pyx_kp_s_652)) < 0) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_t_15 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_14), __pyx_n_s__XMLSchemaParseError, __pyx_n_s__XMLSchemaParseError, __pyx_n_s_479); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItemString(((PyObject *)__pyx_t_14), "__doc__", ((PyObject *)__pyx_kp_s_667)) < 0) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_15 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_14), __pyx_n_s__XMLSchemaParseError, __pyx_n_s__XMLSchemaParseError, __pyx_n_s_494); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__XMLSchemaParseError, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__XMLSchemaParseError, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_DECREF(((PyObject *)__pyx_t_14)); __pyx_t_14 = 0;
*/
__pyx_t_14 = PyDict_New(); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_14));
- __pyx_t_15 = __Pyx_GetName(__pyx_m, __pyx_n_s__XMLSchemaError); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_15 = __Pyx_GetModuleGlobalName(__pyx_n_s__XMLSchemaError); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_15);
__Pyx_GIVEREF(__pyx_t_15);
__pyx_t_15 = 0;
- if (PyDict_SetItemString(((PyObject *)__pyx_t_14), "__doc__", ((PyObject *)__pyx_kp_s_653)) < 0) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_t_15 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_14), __pyx_n_s_400, __pyx_n_s_400, __pyx_n_s_479); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItemString(((PyObject *)__pyx_t_14), "__doc__", ((PyObject *)__pyx_kp_s_668)) < 0) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_15 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_14), __pyx_n_s_415, __pyx_n_s_415, __pyx_n_s_494); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s_400, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s_415, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_DECREF(((PyObject *)__pyx_t_14)); __pyx_t_14 = 0;
*/
__pyx_t_15 = PyDict_New(); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_15));
- if (PyDict_SetItem(__pyx_t_15, ((PyObject *)__pyx_n_u__xs), ((PyObject *)__pyx_kp_u_396)) < 0) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_t_15, ((PyObject *)__pyx_n_u__xs), ((PyObject *)__pyx_kp_u_411)) < 0) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
if (PyDict_SetItem(__pyx_t_14, ((PyObject *)__pyx_n_s__namespaces), ((PyObject *)__pyx_t_15)) < 0) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(((PyObject *)__pyx_t_15)); __pyx_t_15 = 0;
- __pyx_t_15 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_XPath)), ((PyObject *)__pyx_k_tuple_655), ((PyObject *)__pyx_t_14)); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_15 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_XPath)), ((PyObject *)__pyx_k_tuple_670), ((PyObject *)__pyx_t_14)); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(((PyObject *)__pyx_t_14)); __pyx_t_14 = 0;
__Pyx_XGOTREF(((PyObject *)__pyx_v_4lxml_5etree__check_for_default_attributes));
*/
__pyx_t_15 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_15);
- __pyx_k_395 = __pyx_t_15;
+ __pyx_k_410 = __pyx_t_15;
__Pyx_GIVEREF(__pyx_t_15);
__pyx_t_15 = 0;
*/
__pyx_t_15 = PyDict_New(); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_15));
- __pyx_t_14 = __Pyx_GetName(__pyx_m, __pyx_n_s__LxmlError); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s__LxmlError); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_14);
__pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_14);
__Pyx_GIVEREF(__pyx_t_14);
__pyx_t_14 = 0;
- if (PyDict_SetItemString(((PyObject *)__pyx_t_15), "__doc__", ((PyObject *)__pyx_kp_s_656)) < 0) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_t_14 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_15), __pyx_n_s__SchematronError, __pyx_n_s__SchematronError, __pyx_n_s_479); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItemString(((PyObject *)__pyx_t_15), "__doc__", ((PyObject *)__pyx_kp_s_671)) < 0) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_14 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_15), __pyx_n_s__SchematronError, __pyx_n_s__SchematronError, __pyx_n_s_494); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_14);
__Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__SchematronError, __pyx_t_14) < 0) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__SchematronError, __pyx_t_14) < 0) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_DECREF(((PyObject *)__pyx_t_15)); __pyx_t_15 = 0;
*/
__pyx_t_15 = PyDict_New(); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_15));
- __pyx_t_14 = __Pyx_GetName(__pyx_m, __pyx_n_s__SchematronError); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s__SchematronError); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_14);
__pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_14);
__Pyx_GIVEREF(__pyx_t_14);
__pyx_t_14 = 0;
- if (PyDict_SetItemString(((PyObject *)__pyx_t_15), "__doc__", ((PyObject *)__pyx_kp_s_657)) < 0) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_t_14 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_15), __pyx_n_s_405, __pyx_n_s_405, __pyx_n_s_479); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItemString(((PyObject *)__pyx_t_15), "__doc__", ((PyObject *)__pyx_kp_s_672)) < 0) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_14 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_15), __pyx_n_s_420, __pyx_n_s_420, __pyx_n_s_494); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_14);
__Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s_405, __pyx_t_14) < 0) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s_420, __pyx_t_14) < 0) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_DECREF(((PyObject *)__pyx_t_15)); __pyx_t_15 = 0;
*/
__pyx_t_15 = PyDict_New(); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_15));
- __pyx_t_14 = __Pyx_GetName(__pyx_m, __pyx_n_s__SchematronError); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s__SchematronError); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_14);
__pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_14);
__Pyx_GIVEREF(__pyx_t_14);
__pyx_t_14 = 0;
- if (PyDict_SetItemString(((PyObject *)__pyx_t_15), "__doc__", ((PyObject *)__pyx_kp_s_658)) < 0) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_t_14 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_15), __pyx_n_s_410, __pyx_n_s_410, __pyx_n_s_479); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItemString(((PyObject *)__pyx_t_15), "__doc__", ((PyObject *)__pyx_kp_s_673)) < 0) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_14 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_15), __pyx_n_s_425, __pyx_n_s_425, __pyx_n_s_494); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_14);
__Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s_410, __pyx_t_14) < 0) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s_425, __pyx_t_14) < 0) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_DECREF(((PyObject *)__pyx_t_15)); __pyx_t_15 = 0;
*/
__pyx_t_15 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__MemDebug)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_15);
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__memory_debugger, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__memory_debugger, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1
*/
__pyx_t_15 = PyDict_New(); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_15));
- if (PyDict_SetItem(__pyx_t_15, ((PyObject *)__pyx_kp_u_659), ((PyObject *)__pyx_kp_u_660)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s____test__, ((PyObject *)__pyx_t_15)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_t_15, ((PyObject *)__pyx_kp_u_674), ((PyObject *)__pyx_kp_u_675)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s____test__, ((PyObject *)__pyx_t_15)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(((PyObject *)__pyx_t_15)); __pyx_t_15 = 0;
if (__Pyx_RegisterCleanup()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
goto __pyx_L0;
Py_CLEAR(__pyx_k_tuple_3);
Py_CLEAR(__pyx_k_tuple_6);
Py_CLEAR(__pyx_k_tuple_7);
- Py_CLEAR(__pyx_k_tuple_8);
+ Py_CLEAR(__pyx_k_slice_8);
Py_CLEAR(__pyx_k_tuple_9);
- Py_CLEAR(__pyx_k_tuple_10);
- Py_CLEAR(__pyx_k_tuple_27);
- Py_CLEAR(__pyx_k_tuple_29);
- Py_CLEAR(__pyx_k_tuple_30);
- Py_CLEAR(__pyx_k_tuple_47);
- Py_CLEAR(__pyx_k_tuple_55);
- Py_CLEAR(__pyx_k_tuple_95);
- Py_CLEAR(__pyx_k_tuple_97);
+ Py_CLEAR(__pyx_k_slice_10);
+ Py_CLEAR(__pyx_k_tuple_11);
+ Py_CLEAR(__pyx_k_slice_12);
+ Py_CLEAR(__pyx_k_tuple_13);
+ Py_CLEAR(__pyx_k_slice_14);
+ Py_CLEAR(__pyx_k_tuple_31);
+ Py_CLEAR(__pyx_k_tuple_33);
+ Py_CLEAR(__pyx_k_tuple_34);
+ Py_CLEAR(__pyx_k_tuple_51);
+ Py_CLEAR(__pyx_k_tuple_59);
Py_CLEAR(__pyx_k_tuple_99);
- Py_CLEAR(__pyx_k_tuple_114);
- Py_CLEAR(__pyx_k_tuple_115);
- Py_CLEAR(__pyx_k_tuple_119);
- Py_CLEAR(__pyx_k_tuple_120);
- Py_CLEAR(__pyx_k_tuple_121);
- Py_CLEAR(__pyx_k_slice_127);
- Py_CLEAR(__pyx_k_tuple_134);
- Py_CLEAR(__pyx_k_tuple_210);
- Py_CLEAR(__pyx_k_tuple_220);
- Py_CLEAR(__pyx_k_tuple_240);
- Py_CLEAR(__pyx_k_tuple_242);
- Py_CLEAR(__pyx_k_tuple_244);
- Py_CLEAR(__pyx_k_tuple_247);
- Py_CLEAR(__pyx_k_tuple_252);
- Py_CLEAR(__pyx_k_tuple_254);
+ Py_CLEAR(__pyx_k_tuple_101);
+ Py_CLEAR(__pyx_k_tuple_103);
+ Py_CLEAR(__pyx_k_slice_107);
+ Py_CLEAR(__pyx_k_slice_109);
+ Py_CLEAR(__pyx_k_slice_110);
+ Py_CLEAR(__pyx_k_slice_111);
+ Py_CLEAR(__pyx_k_tuple_122);
+ Py_CLEAR(__pyx_k_tuple_123);
+ Py_CLEAR(__pyx_k_tuple_127);
+ Py_CLEAR(__pyx_k_tuple_128);
+ Py_CLEAR(__pyx_k_tuple_129);
+ Py_CLEAR(__pyx_k_slice_135);
+ Py_CLEAR(__pyx_k_tuple_142);
+ Py_CLEAR(__pyx_k_slice_152);
+ Py_CLEAR(__pyx_k_tuple_219);
+ Py_CLEAR(__pyx_k_tuple_229);
+ Py_CLEAR(__pyx_k_tuple_249);
+ Py_CLEAR(__pyx_k_tuple_251);
+ Py_CLEAR(__pyx_k_tuple_253);
Py_CLEAR(__pyx_k_tuple_256);
- Py_CLEAR(__pyx_k_tuple_257);
- Py_CLEAR(__pyx_k_tuple_260);
- Py_CLEAR(__pyx_k_tuple_262);
- Py_CLEAR(__pyx_k_tuple_266);
- Py_CLEAR(__pyx_k_tuple_267);
- Py_CLEAR(__pyx_k_tuple_281);
- Py_CLEAR(__pyx_k_tuple_283);
- Py_CLEAR(__pyx_k_tuple_284);
- Py_CLEAR(__pyx_k_tuple_285);
- Py_CLEAR(__pyx_k_tuple_286);
- Py_CLEAR(__pyx_k_tuple_287);
- Py_CLEAR(__pyx_k_tuple_289);
- Py_CLEAR(__pyx_k_tuple_290);
- Py_CLEAR(__pyx_k_tuple_304);
- Py_CLEAR(__pyx_k_tuple_305);
- Py_CLEAR(__pyx_k_tuple_306);
+ Py_CLEAR(__pyx_k_tuple_261);
+ Py_CLEAR(__pyx_k_slice_262);
+ Py_CLEAR(__pyx_k_slice_263);
+ Py_CLEAR(__pyx_k_tuple_265);
+ Py_CLEAR(__pyx_k_slice_266);
+ Py_CLEAR(__pyx_k_tuple_268);
+ Py_CLEAR(__pyx_k_tuple_269);
+ Py_CLEAR(__pyx_k_tuple_272);
+ Py_CLEAR(__pyx_k_tuple_274);
+ Py_CLEAR(__pyx_k_tuple_278);
+ Py_CLEAR(__pyx_k_tuple_279);
+ Py_CLEAR(__pyx_k_tuple_293);
+ Py_CLEAR(__pyx_k_tuple_295);
+ Py_CLEAR(__pyx_k_tuple_296);
+ Py_CLEAR(__pyx_k_tuple_297);
+ Py_CLEAR(__pyx_k_tuple_298);
+ Py_CLEAR(__pyx_k_tuple_299);
+ Py_CLEAR(__pyx_k_tuple_301);
+ Py_CLEAR(__pyx_k_tuple_302);
+ Py_CLEAR(__pyx_k_slice_306);
+ Py_CLEAR(__pyx_k_slice_307);
Py_CLEAR(__pyx_k_tuple_318);
- Py_CLEAR(__pyx_k_tuple_333);
- Py_CLEAR(__pyx_k_tuple_342);
- Py_CLEAR(__pyx_k_tuple_345);
- Py_CLEAR(__pyx_k_tuple_352);
- Py_CLEAR(__pyx_k_tuple_365);
- Py_CLEAR(__pyx_k_tuple_375);
- Py_CLEAR(__pyx_k_tuple_377);
- Py_CLEAR(__pyx_k_tuple_382);
- Py_CLEAR(__pyx_k_tuple_383);
- Py_CLEAR(__pyx_k_tuple_385);
- Py_CLEAR(__pyx_k_tuple_388);
- Py_CLEAR(__pyx_k_tuple_404);
- Py_CLEAR(__pyx_k_tuple_406);
- Py_CLEAR(__pyx_k_tuple_409);
- Py_CLEAR(__pyx_k_tuple_466);
- Py_CLEAR(__pyx_k_tuple_475);
- Py_CLEAR(__pyx_k_tuple_476);
- Py_CLEAR(__pyx_k_codeobj_477);
- Py_CLEAR(__pyx_k_tuple_480);
- Py_CLEAR(__pyx_k_codeobj_481);
- Py_CLEAR(__pyx_k_tuple_482);
- Py_CLEAR(__pyx_k_tuple_488);
- Py_CLEAR(__pyx_k_codeobj_491);
- Py_CLEAR(__pyx_k_tuple_493);
- Py_CLEAR(__pyx_k_tuple_494);
- Py_CLEAR(__pyx_k_codeobj_495);
- Py_CLEAR(__pyx_k_tuple_501);
+ Py_CLEAR(__pyx_k_tuple_319);
+ Py_CLEAR(__pyx_k_tuple_320);
+ Py_CLEAR(__pyx_k_tuple_332);
+ Py_CLEAR(__pyx_k_slice_347);
+ Py_CLEAR(__pyx_k_tuple_348);
+ Py_CLEAR(__pyx_k_tuple_357);
+ Py_CLEAR(__pyx_k_tuple_360);
+ Py_CLEAR(__pyx_k_tuple_367);
+ Py_CLEAR(__pyx_k_tuple_380);
+ Py_CLEAR(__pyx_k_tuple_390);
+ Py_CLEAR(__pyx_k_tuple_392);
+ Py_CLEAR(__pyx_k_tuple_397);
+ Py_CLEAR(__pyx_k_tuple_398);
+ Py_CLEAR(__pyx_k_tuple_400);
+ Py_CLEAR(__pyx_k_tuple_403);
+ Py_CLEAR(__pyx_k_tuple_419);
+ Py_CLEAR(__pyx_k_tuple_421);
+ Py_CLEAR(__pyx_k_tuple_424);
+ Py_CLEAR(__pyx_k_tuple_481);
+ Py_CLEAR(__pyx_k_tuple_490);
+ Py_CLEAR(__pyx_k_tuple_491);
+ Py_CLEAR(__pyx_k_codeobj_492);
+ Py_CLEAR(__pyx_k_tuple_495);
+ Py_CLEAR(__pyx_k_codeobj_496);
+ Py_CLEAR(__pyx_k_tuple_497);
Py_CLEAR(__pyx_k_tuple_503);
- Py_CLEAR(__pyx_k_tuple_515);
- Py_CLEAR(__pyx_k_tuple_517);
- Py_CLEAR(__pyx_k_tuple_519);
- Py_CLEAR(__pyx_k_codeobj_520);
- Py_CLEAR(__pyx_k_tuple_521);
- Py_CLEAR(__pyx_k_codeobj_522);
- Py_CLEAR(__pyx_k_tuple_523);
- Py_CLEAR(__pyx_k_codeobj_524);
- Py_CLEAR(__pyx_k_tuple_525);
- Py_CLEAR(__pyx_k_codeobj_526);
- Py_CLEAR(__pyx_k_tuple_527);
- Py_CLEAR(__pyx_k_codeobj_528);
- Py_CLEAR(__pyx_k_tuple_529);
- Py_CLEAR(__pyx_k_codeobj_530);
- Py_CLEAR(__pyx_k_tuple_531);
- Py_CLEAR(__pyx_k_codeobj_532);
- Py_CLEAR(__pyx_k_tuple_533);
- Py_CLEAR(__pyx_k_codeobj_534);
- Py_CLEAR(__pyx_k_tuple_535);
- Py_CLEAR(__pyx_k_codeobj_536);
- Py_CLEAR(__pyx_k_tuple_537);
- Py_CLEAR(__pyx_k_codeobj_538);
- Py_CLEAR(__pyx_k_tuple_539);
- Py_CLEAR(__pyx_k_codeobj_540);
- Py_CLEAR(__pyx_k_tuple_541);
- Py_CLEAR(__pyx_k_codeobj_542);
- Py_CLEAR(__pyx_k_tuple_543);
- Py_CLEAR(__pyx_k_codeobj_544);
- Py_CLEAR(__pyx_k_tuple_545);
- Py_CLEAR(__pyx_k_codeobj_546);
- Py_CLEAR(__pyx_k_tuple_547);
- Py_CLEAR(__pyx_k_codeobj_548);
- Py_CLEAR(__pyx_k_tuple_549);
- Py_CLEAR(__pyx_k_codeobj_550);
- Py_CLEAR(__pyx_k_tuple_551);
- Py_CLEAR(__pyx_k_codeobj_552);
+ Py_CLEAR(__pyx_k_codeobj_506);
+ Py_CLEAR(__pyx_k_tuple_508);
+ Py_CLEAR(__pyx_k_tuple_509);
+ Py_CLEAR(__pyx_k_codeobj_510);
+ Py_CLEAR(__pyx_k_tuple_516);
+ Py_CLEAR(__pyx_k_tuple_518);
+ Py_CLEAR(__pyx_k_tuple_530);
+ Py_CLEAR(__pyx_k_tuple_532);
+ Py_CLEAR(__pyx_k_tuple_534);
+ Py_CLEAR(__pyx_k_codeobj_535);
+ Py_CLEAR(__pyx_k_tuple_536);
+ Py_CLEAR(__pyx_k_codeobj_537);
+ Py_CLEAR(__pyx_k_tuple_538);
+ Py_CLEAR(__pyx_k_codeobj_539);
+ Py_CLEAR(__pyx_k_tuple_540);
+ Py_CLEAR(__pyx_k_codeobj_541);
+ Py_CLEAR(__pyx_k_tuple_542);
+ Py_CLEAR(__pyx_k_codeobj_543);
+ Py_CLEAR(__pyx_k_tuple_544);
+ Py_CLEAR(__pyx_k_codeobj_545);
+ Py_CLEAR(__pyx_k_tuple_546);
+ Py_CLEAR(__pyx_k_codeobj_547);
+ Py_CLEAR(__pyx_k_tuple_548);
+ Py_CLEAR(__pyx_k_codeobj_549);
+ Py_CLEAR(__pyx_k_tuple_550);
+ Py_CLEAR(__pyx_k_codeobj_551);
+ Py_CLEAR(__pyx_k_tuple_552);
+ Py_CLEAR(__pyx_k_codeobj_553);
+ Py_CLEAR(__pyx_k_tuple_554);
+ Py_CLEAR(__pyx_k_codeobj_555);
Py_CLEAR(__pyx_k_tuple_556);
Py_CLEAR(__pyx_k_codeobj_557);
- Py_CLEAR(__pyx_k_tuple_559);
- Py_CLEAR(__pyx_k_codeobj_560);
+ Py_CLEAR(__pyx_k_tuple_558);
+ Py_CLEAR(__pyx_k_codeobj_559);
+ Py_CLEAR(__pyx_k_tuple_560);
+ Py_CLEAR(__pyx_k_codeobj_561);
+ Py_CLEAR(__pyx_k_tuple_562);
+ Py_CLEAR(__pyx_k_codeobj_563);
+ Py_CLEAR(__pyx_k_tuple_564);
+ Py_CLEAR(__pyx_k_codeobj_565);
Py_CLEAR(__pyx_k_tuple_566);
Py_CLEAR(__pyx_k_codeobj_567);
- Py_CLEAR(__pyx_k_codeobj_568);
- Py_CLEAR(__pyx_k_tuple_569);
- Py_CLEAR(__pyx_k_codeobj_570);
+ Py_CLEAR(__pyx_k_tuple_571);
+ Py_CLEAR(__pyx_k_codeobj_572);
Py_CLEAR(__pyx_k_tuple_574);
Py_CLEAR(__pyx_k_codeobj_575);
- Py_CLEAR(__pyx_k_tuple_577);
- Py_CLEAR(__pyx_k_codeobj_578);
- Py_CLEAR(__pyx_k_tuple_579);
- Py_CLEAR(__pyx_k_codeobj_580);
- Py_CLEAR(__pyx_k_tuple_582);
+ Py_CLEAR(__pyx_k_tuple_581);
+ Py_CLEAR(__pyx_k_codeobj_582);
Py_CLEAR(__pyx_k_codeobj_583);
- Py_CLEAR(__pyx_k_tuple_585);
- Py_CLEAR(__pyx_k_codeobj_586);
- Py_CLEAR(__pyx_k_tuple_587);
- Py_CLEAR(__pyx_k_codeobj_588);
+ Py_CLEAR(__pyx_k_tuple_584);
+ Py_CLEAR(__pyx_k_codeobj_585);
Py_CLEAR(__pyx_k_tuple_589);
Py_CLEAR(__pyx_k_codeobj_590);
- Py_CLEAR(__pyx_k_tuple_618);
- Py_CLEAR(__pyx_k_codeobj_619);
- Py_CLEAR(__pyx_k_tuple_621);
- Py_CLEAR(__pyx_k_codeobj_622);
- Py_CLEAR(__pyx_k_tuple_624);
- Py_CLEAR(__pyx_k_codeobj_625);
- Py_CLEAR(__pyx_k_tuple_628);
- Py_CLEAR(__pyx_k_tuple_630);
+ Py_CLEAR(__pyx_k_tuple_592);
+ Py_CLEAR(__pyx_k_codeobj_593);
+ Py_CLEAR(__pyx_k_tuple_594);
+ Py_CLEAR(__pyx_k_codeobj_595);
+ Py_CLEAR(__pyx_k_tuple_597);
+ Py_CLEAR(__pyx_k_codeobj_598);
+ Py_CLEAR(__pyx_k_tuple_600);
+ Py_CLEAR(__pyx_k_codeobj_601);
+ Py_CLEAR(__pyx_k_tuple_602);
+ Py_CLEAR(__pyx_k_codeobj_603);
+ Py_CLEAR(__pyx_k_tuple_604);
+ Py_CLEAR(__pyx_k_codeobj_605);
+ Py_CLEAR(__pyx_k_tuple_633);
+ Py_CLEAR(__pyx_k_codeobj_634);
Py_CLEAR(__pyx_k_tuple_636);
Py_CLEAR(__pyx_k_codeobj_637);
Py_CLEAR(__pyx_k_tuple_639);
Py_CLEAR(__pyx_k_codeobj_640);
Py_CLEAR(__pyx_k_tuple_643);
- Py_CLEAR(__pyx_k_tuple_655);
+ Py_CLEAR(__pyx_k_tuple_645);
+ Py_CLEAR(__pyx_k_tuple_651);
+ Py_CLEAR(__pyx_k_codeobj_652);
+ Py_CLEAR(__pyx_k_tuple_654);
+ Py_CLEAR(__pyx_k_codeobj_655);
+ Py_CLEAR(__pyx_k_tuple_658);
+ Py_CLEAR(__pyx_k_tuple_670);
#if CYTHON_COMPILING_IN_PYPY || PY_MAJOR_VERSION >= 3
Py_CLEAR(__pyx_print);
Py_CLEAR(__pyx_print_kwargs);
Py_CLEAR(__pyx_builtin_AssertionError);
/*--- Intern cleanup code ---*/
Py_CLEAR(__pyx_empty_tuple);
+ while (__pyx_freecount_4lxml_5etree___pyx_scope_struct__itervalues > 0) {
+ PyObject* o = (PyObject*)__pyx_freelist_4lxml_5etree___pyx_scope_struct__itervalues[--__pyx_freecount_4lxml_5etree___pyx_scope_struct__itervalues];
+ (*Py_TYPE(o)->tp_free)(o);
+ }
+ while (__pyx_freecount_4lxml_5etree___pyx_scope_struct_1_iterattributes > 0) {
+ PyObject* o = (PyObject*)__pyx_freelist_4lxml_5etree___pyx_scope_struct_1_iterattributes[--__pyx_freecount_4lxml_5etree___pyx_scope_struct_1_iterattributes];
+ (*Py_TYPE(o)->tp_free)(o);
+ }
+ while (__pyx_freecount_4lxml_5etree___pyx_scope_struct_2_iterelements > 0) {
+ PyObject* o = (PyObject*)__pyx_freelist_4lxml_5etree___pyx_scope_struct_2_iterelements[--__pyx_freecount_4lxml_5etree___pyx_scope_struct_2_iterelements];
+ (*Py_TYPE(o)->tp_free)(o);
+ }
+ while (__pyx_freecount_4lxml_5etree___pyx_scope_struct_3_iterentities > 0) {
+ PyObject* o = (PyObject*)__pyx_freelist_4lxml_5etree___pyx_scope_struct_3_iterentities[--__pyx_freecount_4lxml_5etree___pyx_scope_struct_3_iterentities];
+ (*Py_TYPE(o)->tp_free)(o);
+ }
#if CYTHON_COMPILING_IN_PYPY
Py_CLEAR(__pyx_b);
#endif
}
#endif /* CYTHON_REFNANNY */
-static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name) {
- PyObject *result;
- result = PyObject_GetAttr(dict, name);
- if (!result) {
- if (dict != __pyx_b) {
- PyErr_Clear();
- result = PyObject_GetAttr(__pyx_b, name);
- }
- if (!result) {
- PyErr_SetObject(PyExc_NameError, name);
- }
+static PyObject *__Pyx_GetBuiltinName(PyObject *name) {
+ PyObject* result = __Pyx_PyObject_GetAttrStr(__pyx_b, name);
+ if (unlikely(!result)) {
+ PyErr_Format(PyExc_NameError,
+#if PY_MAJOR_VERSION >= 3
+ "name '%U' is not defined", name);
+#else
+ "name '%s' is not defined", PyString_AS_STRING(name));
+#endif
}
return result;
}
}
value = type;
#if PY_VERSION_HEX < 0x02050000
- if (PyInstance_Check(type)) {
- type = (PyObject*) ((PyInstanceObject*)type)->in_class;
- Py_INCREF(type);
- }
- else {
- type = 0;
- PyErr_SetString(PyExc_TypeError,
- "raise: exception must be an old-style class or instance");
- goto raise_error;
- }
- #else
- type = (PyObject*) Py_TYPE(type);
+ if (PyInstance_Check(type)) {
+ type = (PyObject*) ((PyInstanceObject*)type)->in_class;
Py_INCREF(type);
- if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) {
- PyErr_SetString(PyExc_TypeError,
- "raise: exception class must be a subclass of BaseException");
- goto raise_error;
- }
+ } else {
+ type = 0;
+ PyErr_SetString(PyExc_TypeError,
+ "raise: exception must be an old-style class or instance");
+ goto raise_error;
+ }
+ #else
+ type = (PyObject*) Py_TYPE(type);
+ Py_INCREF(type);
+ if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) {
+ PyErr_SetString(PyExc_TypeError,
+ "raise: exception class must be a subclass of BaseException");
+ goto raise_error;
+ }
#endif
}
__Pyx_ErrRestore(type, value, tb);
else if (PyTuple_Check(value)) {
Py_INCREF(value);
args = value;
- }
- else
+ } else
args = PyTuple_Pack(1, value);
if (!args)
goto bad;
"raise: exception class must be a subclass of BaseException");
goto bad;
}
+#if PY_VERSION_HEX >= 0x03030000
+ if (cause) {
+#else
if (cause && cause != Py_None) {
+#endif
PyObject *fixed_cause;
- if (PyExceptionClass_Check(cause)) {
+ if (cause == Py_None) {
+ fixed_cause = NULL;
+ } else if (PyExceptionClass_Check(cause)) {
fixed_cause = PyObject_CallObject(cause, NULL);
if (fixed_cause == NULL)
goto bad;
- }
- else if (PyExceptionInstance_Check(cause)) {
+ } else if (PyExceptionInstance_Check(cause)) {
fixed_cause = cause;
Py_INCREF(fixed_cause);
- }
- else {
+ } else {
PyErr_SetString(PyExc_TypeError,
"exception causes must derive from "
"BaseException");
}
#endif
+#if PY_MAJOR_VERSION >= 3
+static CYTHON_INLINE PyObject* __Pyx_PyDict_Items(PyObject* d) {
+ return PyObject_CallMethodObjArgs(d, __pyx_n_s__items, NULL);
+}
+#endif
+
static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) {
PyErr_Format(PyExc_ValueError,
"too many values to unpack (expected %" CYTHON_FORMAT_SSIZE_T "d)", expected);
PyErr_Format(PyExc_UnboundLocalError, "local variable '%s' referenced before assignment", varname);
}
+static CYTHON_INLINE PyObject* __Pyx_PyObject_GetSlice(
+ PyObject* obj, Py_ssize_t cstart, Py_ssize_t cstop,
+ PyObject** _py_start, PyObject** _py_stop, PyObject** _py_slice,
+ int has_cstart, int has_cstop, CYTHON_UNUSED int wraparound) {
+#if CYTHON_COMPILING_IN_CPYTHON
+ PyMappingMethods* mp;
+#if PY_MAJOR_VERSION < 3
+ PySequenceMethods* ms = Py_TYPE(obj)->tp_as_sequence;
+ if (likely(ms && ms->sq_slice)) {
+ if (!has_cstart) {
+ if (_py_start && (*_py_start != Py_None)) {
+ cstart = __Pyx_PyIndex_AsSsize_t(*_py_start);
+ if ((cstart == (Py_ssize_t)-1) && PyErr_Occurred()) goto bad;
+ } else
+ cstart = 0;
+ }
+ if (!has_cstop) {
+ if (_py_stop && (*_py_stop != Py_None)) {
+ cstop = __Pyx_PyIndex_AsSsize_t(*_py_stop);
+ if ((cstop == (Py_ssize_t)-1) && PyErr_Occurred()) goto bad;
+ } else
+ cstop = PY_SSIZE_T_MAX;
+ }
+ if (wraparound && unlikely((cstart < 0) | (cstop < 0)) && likely(ms->sq_length)) {
+ Py_ssize_t l = ms->sq_length(obj);
+ if (likely(l >= 0)) {
+ if (cstop < 0) {
+ cstop += l;
+ if (cstop < 0) cstop = 0;
+ }
+ if (cstart < 0) {
+ cstart += l;
+ if (cstart < 0) cstart = 0;
+ }
+ } else {
+ if (PyErr_ExceptionMatches(PyExc_OverflowError))
+ PyErr_Clear();
+ else
+ goto bad;
+ }
+ }
+ return ms->sq_slice(obj, cstart, cstop);
+ }
+#endif
+ mp = Py_TYPE(obj)->tp_as_mapping;
+ if (likely(mp && mp->mp_subscript))
+#endif
+ {
+ PyObject* result;
+ PyObject *py_slice, *py_start, *py_stop;
+ if (_py_slice) {
+ py_slice = *_py_slice;
+ } else {
+ PyObject* owned_start = NULL;
+ PyObject* owned_stop = NULL;
+ if (_py_start) {
+ py_start = *_py_start;
+ } else {
+ if (has_cstart) {
+ owned_start = py_start = PyInt_FromSsize_t(cstart);
+ if (unlikely(!py_start)) goto bad;
+ } else
+ py_start = Py_None;
+ }
+ if (_py_stop) {
+ py_stop = *_py_stop;
+ } else {
+ if (has_cstop) {
+ owned_stop = py_stop = PyInt_FromSsize_t(cstop);
+ if (unlikely(!py_stop)) {
+ Py_XDECREF(owned_start);
+ goto bad;
+ }
+ } else
+ py_stop = Py_None;
+ }
+ py_slice = PySlice_New(py_start, py_stop, Py_None);
+ Py_XDECREF(owned_start);
+ Py_XDECREF(owned_stop);
+ if (unlikely(!py_slice)) goto bad;
+ }
+#if CYTHON_COMPILING_IN_CPYTHON
+ result = mp->mp_subscript(obj, py_slice);
+#else
+ result = PyObject_GetItem(obj, py_slice);
+#endif
+ if (!_py_slice) {
+ Py_DECREF(py_slice);
+ }
+ return result;
+ }
+ PyErr_Format(PyExc_TypeError,
+ "'%.200s' object is unsliceable", Py_TYPE(obj)->tp_name);
+bad:
+ return NULL;
+}
+
static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb) {
PyObject *local_type, *local_value, *local_tb;
#if CYTHON_COMPILING_IN_CPYTHON
return 0;
}
+static CYTHON_INLINE int __Pyx_PyObject_SetSlice(
+ PyObject* obj, PyObject* value, Py_ssize_t cstart, Py_ssize_t cstop,
+ PyObject** _py_start, PyObject** _py_stop, PyObject** _py_slice,
+ int has_cstart, int has_cstop, CYTHON_UNUSED int wraparound) {
+#if CYTHON_COMPILING_IN_CPYTHON
+ PyMappingMethods* mp;
+#if PY_MAJOR_VERSION < 3
+ PySequenceMethods* ms = Py_TYPE(obj)->tp_as_sequence;
+ if (likely(ms && ms->sq_ass_slice)) {
+ if (!has_cstart) {
+ if (_py_start && (*_py_start != Py_None)) {
+ cstart = __Pyx_PyIndex_AsSsize_t(*_py_start);
+ if ((cstart == (Py_ssize_t)-1) && PyErr_Occurred()) goto bad;
+ } else
+ cstart = 0;
+ }
+ if (!has_cstop) {
+ if (_py_stop && (*_py_stop != Py_None)) {
+ cstop = __Pyx_PyIndex_AsSsize_t(*_py_stop);
+ if ((cstop == (Py_ssize_t)-1) && PyErr_Occurred()) goto bad;
+ } else
+ cstop = PY_SSIZE_T_MAX;
+ }
+ if (wraparound && unlikely((cstart < 0) | (cstop < 0)) && likely(ms->sq_length)) {
+ Py_ssize_t l = ms->sq_length(obj);
+ if (likely(l >= 0)) {
+ if (cstop < 0) {
+ cstop += l;
+ if (cstop < 0) cstop = 0;
+ }
+ if (cstart < 0) {
+ cstart += l;
+ if (cstart < 0) cstart = 0;
+ }
+ } else {
+ if (PyErr_ExceptionMatches(PyExc_OverflowError))
+ PyErr_Clear();
+ else
+ goto bad;
+ }
+ }
+ return ms->sq_ass_slice(obj, cstart, cstop, value);
+ }
+#endif
+ mp = Py_TYPE(obj)->tp_as_mapping;
+ if (likely(mp && mp->mp_ass_subscript))
+#endif
+ {
+ int result;
+ PyObject *py_slice, *py_start, *py_stop;
+ if (_py_slice) {
+ py_slice = *_py_slice;
+ } else {
+ PyObject* owned_start = NULL;
+ PyObject* owned_stop = NULL;
+ if (_py_start) {
+ py_start = *_py_start;
+ } else {
+ if (has_cstart) {
+ owned_start = py_start = PyInt_FromSsize_t(cstart);
+ if (unlikely(!py_start)) goto bad;
+ } else
+ py_start = Py_None;
+ }
+ if (_py_stop) {
+ py_stop = *_py_stop;
+ } else {
+ if (has_cstop) {
+ owned_stop = py_stop = PyInt_FromSsize_t(cstop);
+ if (unlikely(!py_stop)) {
+ Py_XDECREF(owned_start);
+ goto bad;
+ }
+ } else
+ py_stop = Py_None;
+ }
+ py_slice = PySlice_New(py_start, py_stop, Py_None);
+ Py_XDECREF(owned_start);
+ Py_XDECREF(owned_stop);
+ if (unlikely(!py_slice)) goto bad;
+ }
+#if CYTHON_COMPILING_IN_CPYTHON
+ result = mp->mp_ass_subscript(obj, py_slice, value);
+#else
+ result = value ? PyObject_SetItem(obj, py_slice, value) : PyObject_DelItem(obj, py_slice);
+#endif
+ if (!_py_slice) {
+ Py_DECREF(py_slice);
+ }
+ return result;
+ }
+ PyErr_Format(PyExc_TypeError,
+ "'%.200s' object does not support slice %s",
+ Py_TYPE(obj)->tp_name, value ? "assignment" : "deletion");
+bad:
+ return -1;
+}
+
static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) {
if (unlikely(!type)) {
PyErr_Format(PyExc_SystemError, "Missing type object");
}
}
+static CYTHON_INLINE PyObject *__Pyx_GetModuleGlobalName(PyObject *name) {
+ PyObject *result;
+#if CYTHON_COMPILING_IN_CPYTHON
+ result = PyDict_GetItem(__pyx_d, name);
+ if (result) {
+ Py_INCREF(result);
+ } else {
+#else
+ result = PyObject_GetItem(__pyx_d, name);
+ if (!result) {
+ PyErr_Clear();
+#endif
+ result = __Pyx_GetBuiltinName(name);
+ }
+ return result;
+}
+
static int __Pyx_ArgTypeTest(PyObject *obj, PyTypeObject *type, int none_allowed,
const char *name, int exact)
{
return 0;
}
+static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j) {
+ PyObject *r;
+ if (!j) return NULL;
+ r = PyObject_GetItem(o, j);
+ Py_DECREF(j);
+ return r;
+}
+static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i,
+ int wraparound, int boundscheck) {
+#if CYTHON_COMPILING_IN_CPYTHON
+ if (wraparound & unlikely(i < 0)) i += PyList_GET_SIZE(o);
+ if ((!boundscheck) || likely((0 <= i) & (i < PyList_GET_SIZE(o)))) {
+ PyObject *r = PyList_GET_ITEM(o, i);
+ Py_INCREF(r);
+ return r;
+ }
+ return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
+#else
+ return PySequence_GetItem(o, i);
+#endif
+}
+static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i,
+ int wraparound, int boundscheck) {
+#if CYTHON_COMPILING_IN_CPYTHON
+ if (wraparound & unlikely(i < 0)) i += PyTuple_GET_SIZE(o);
+ if ((!boundscheck) || likely((0 <= i) & (i < PyTuple_GET_SIZE(o)))) {
+ PyObject *r = PyTuple_GET_ITEM(o, i);
+ Py_INCREF(r);
+ return r;
+ }
+ return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
+#else
+ return PySequence_GetItem(o, i);
+#endif
+}
+static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i,
+ int is_list, int wraparound, int boundscheck) {
+#if CYTHON_COMPILING_IN_CPYTHON
+ if (is_list || PyList_CheckExact(o)) {
+ Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyList_GET_SIZE(o);
+ if ((!boundscheck) || (likely((n >= 0) & (n < PyList_GET_SIZE(o))))) {
+ PyObject *r = PyList_GET_ITEM(o, n);
+ Py_INCREF(r);
+ return r;
+ }
+ }
+ else if (PyTuple_CheckExact(o)) {
+ Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyTuple_GET_SIZE(o);
+ if ((!boundscheck) || likely((n >= 0) & (n < PyTuple_GET_SIZE(o)))) {
+ PyObject *r = PyTuple_GET_ITEM(o, n);
+ Py_INCREF(r);
+ return r;
+ }
+ } else {
+ PySequenceMethods *m = Py_TYPE(o)->tp_as_sequence;
+ if (likely(m && m->sq_item)) {
+ if (wraparound && unlikely(i < 0) && likely(m->sq_length)) {
+ Py_ssize_t l = m->sq_length(o);
+ if (likely(l >= 0)) {
+ i += l;
+ } else {
+ if (PyErr_ExceptionMatches(PyExc_OverflowError))
+ PyErr_Clear();
+ else
+ return NULL;
+ }
+ }
+ return m->sq_item(o, i);
+ }
+ }
+#else
+ if (is_list || PySequence_Check(o)) {
+ return PySequence_GetItem(o, i);
+ }
+#endif
+ return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
+}
+
+static CYTHON_INLINE PyObject* __Pyx_PyObject_Pop(PyObject* L) {
+#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x02040000
+ if (likely(PyList_CheckExact(L))
+ && likely(PyList_GET_SIZE(L) > (((PyListObject*)L)->allocated >> 1))) {
+ Py_SIZE(L) -= 1;
+ return PyList_GET_ITEM(L, PyList_GET_SIZE(L));
+ }
+#if PY_VERSION_HEX >= 0x02050000
+ else if (Py_TYPE(L) == (&PySet_Type)) {
+ return PySet_Pop(L);
+ }
+#endif
+#endif
+ return __Pyx_PyObject_CallMethod0(L, __pyx_n_s__pop);
+}
+
+#if CYTHON_COMPILING_IN_CPYTHON
+static CYTHON_INLINE void __Pyx_crop_slice(Py_ssize_t* _start, Py_ssize_t* _stop, Py_ssize_t* _length) {
+ Py_ssize_t start = *_start, stop = *_stop, length = *_length;
+ if (start < 0) {
+ start += length;
+ if (start < 0)
+ start = 0;
+ }
+ if (stop < 0)
+ stop += length;
+ else if (stop > length)
+ stop = length;
+ *_length = stop - start;
+ *_start = start;
+ *_stop = stop;
+}
+#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+static CYTHON_INLINE void __Pyx_copy_object_array(PyObject** restrict src, PyObject** restrict dest, Py_ssize_t length) {
+#else
+static CYTHON_INLINE void __Pyx_copy_object_array(PyObject** src, PyObject** dest, Py_ssize_t length) {
+#endif
+ PyObject *v;
+ Py_ssize_t i;
+ for (i = 0; i < length; i++) {
+ v = dest[i] = src[i];
+ Py_INCREF(v);
+ }
+}
+static CYTHON_INLINE PyObject* __Pyx_PyList_GetSlice(
+ PyObject* src, Py_ssize_t start, Py_ssize_t stop) {
+ PyObject* dest;
+ Py_ssize_t length = PyList_GET_SIZE(src);
+ __Pyx_crop_slice(&start, &stop, &length);
+ if (unlikely(length <= 0))
+ return PyList_New(0);
+ dest = PyList_New(length);
+ if (unlikely(!dest))
+ return NULL;
+ __Pyx_copy_object_array(
+ ((PyListObject*)src)->ob_item + start,
+ ((PyListObject*)dest)->ob_item,
+ length);
+ return dest;
+}
+static CYTHON_INLINE PyObject* __Pyx_PyTuple_GetSlice(
+ PyObject* src, Py_ssize_t start, Py_ssize_t stop) {
+ PyObject* dest;
+ Py_ssize_t length = PyTuple_GET_SIZE(src);
+ __Pyx_crop_slice(&start, &stop, &length);
+ if (unlikely(length <= 0))
+ return PyTuple_New(0);
+ dest = PyTuple_New(length);
+ if (unlikely(!dest))
+ return NULL;
+ __Pyx_copy_object_array(
+ ((PyTupleObject*)src)->ob_item + start,
+ ((PyTupleObject*)dest)->ob_item,
+ length);
+ return dest;
+}
+#endif
+
+static CYTHON_INLINE int __Pyx_DelItem_Generic(PyObject *o, PyObject *j) {
+ int r;
+ if (!j) return -1;
+ r = PyObject_DelItem(o, j);
+ Py_DECREF(j);
+ return r;
+}
+static CYTHON_INLINE int __Pyx_DelItemInt_Fast(PyObject *o, Py_ssize_t i,
+ CYTHON_UNUSED int is_list, int wraparound) {
+#if CYTHON_COMPILING_IN_PYPY
+ if (is_list || PySequence_Check(o)) {
+ return PySequence_DelItem(o, i);
+ }
+#else
+ PySequenceMethods *m = Py_TYPE(o)->tp_as_sequence;
+ if (likely(m && m->sq_ass_item)) {
+ if (wraparound && unlikely(i < 0) && likely(m->sq_length)) {
+ Py_ssize_t l = m->sq_length(o);
+ if (likely(l >= 0)) {
+ i += l;
+ } else {
+ if (PyErr_ExceptionMatches(PyExc_OverflowError))
+ PyErr_Clear();
+ else
+ return -1;
+ }
+ }
+ return m->sq_ass_item(o, i, (PyObject *)NULL);
+ }
+#endif
+ return __Pyx_DelItem_Generic(o, PyInt_FromSsize_t(i));
+}
+
static CYTHON_INLINE PyObject *__Pyx_PyIter_Next2(PyObject* iterator, PyObject* defval) {
PyObject* next;
iternextfunc iternext = Py_TYPE(iterator)->tp_iternext;
*p_orig_length = 0;
if (method_name) {
PyObject* iter;
- iterable = PyObject_CallMethodObjArgs(iterable, method_name, NULL);
+ iterable = __Pyx_PyObject_CallMethod0(iterable, method_name);
if (!iterable)
return NULL;
#if !CYTHON_COMPILING_IN_PYPY
return 1;
}
+#if PY_MAJOR_VERSION >= 3
+static CYTHON_INLINE PyObject* __Pyx_PyDict_Values(PyObject* d) {
+ return PyObject_CallMethodObjArgs(d, __pyx_n_s__values, NULL);
+}
+#endif
+
+static PyObject* __Pyx_PyDict_GetItemDefault(PyObject* d, PyObject* key, PyObject* default_value) {
+ PyObject* value;
+#if PY_MAJOR_VERSION >= 3
+ value = PyDict_GetItemWithError(d, key);
+ if (unlikely(!value)) {
+ if (unlikely(PyErr_Occurred()))
+ return NULL;
+ value = default_value;
+ }
+ Py_INCREF(value);
+#else
+ if (PyString_CheckExact(key) || PyUnicode_CheckExact(key) || PyInt_CheckExact(key)) {
+ value = PyDict_GetItem(d, key);
+ if (unlikely(!value)) {
+ value = default_value;
+ }
+ Py_INCREF(value);
+ } else {
+ if (default_value == Py_None)
+ default_value = NULL;
+ value = PyObject_CallMethodObjArgs(
+ d, __pyx_n_s__get, key, default_value, NULL);
+ }
+#endif
+ return value;
+}
+
+static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *o, PyObject *n) {
+#if CYTHON_COMPILING_IN_CPYTHON
+#if PY_MAJOR_VERSION >= 3
+ if (likely(PyUnicode_Check(n)))
+#else
+ if (likely(PyString_Check(n)))
+#endif
+ return __Pyx_PyObject_GetAttrStr(o, n);
+#endif
+ return PyObject_GetAttr(o, n);
+}
+
static int __Pyx_call_next_tp_traverse(PyObject* obj, visitproc v, void *a, traverseproc current_tp_traverse) {
PyTypeObject* type = Py_TYPE(obj);
while (type && type->tp_traverse != current_tp_traverse)
type->tp_clear(obj);
}
-#ifndef __PYX_HAVE_RT_ImportModule
-#define __PYX_HAVE_RT_ImportModule
-static PyObject *__Pyx_ImportModule(const char *name) {
- PyObject *py_name = 0;
- PyObject *py_module = 0;
- py_name = __Pyx_PyIdentifier_FromString(name);
- if (!py_name)
- goto bad;
- py_module = PyImport_Import(py_name);
- Py_DECREF(py_name);
- return py_module;
-bad:
- Py_XDECREF(py_name);
- return 0;
-}
-#endif
-
-#if PY_MAJOR_VERSION < 3
-static PyObject* __pyx_module_cleanup_atexit(PyObject *module, CYTHON_UNUSED PyObject *unused) {
- __pyx_module_cleanup(module);
- Py_INCREF(Py_None); return Py_None;
-}
-static int __Pyx_RegisterCleanup(void) {
- static PyMethodDef cleanup_def = {
- __Pyx_NAMESTR("__cleanup"), (PyCFunction)__pyx_module_cleanup_atexit, METH_NOARGS, 0};
- PyObject *cleanup_func = 0;
- PyObject *atexit = 0;
- PyObject *reg = 0;
- PyObject *args = 0;
- PyObject *res = 0;
- int ret = -1;
- cleanup_func = PyCFunction_New(&cleanup_def, 0);
- if (!cleanup_func)
- goto bad;
- atexit = __Pyx_ImportModule("atexit");
- if (!atexit)
- goto bad;
- reg = __Pyx_GetAttrString(atexit, "_exithandlers");
- if (reg && PyList_Check(reg)) {
- PyObject *a, *kw;
- a = PyTuple_New(0);
- kw = PyDict_New();
- if (!a || !kw) {
- Py_XDECREF(a);
- Py_XDECREF(kw);
- goto bad;
- }
- args = PyTuple_Pack(3, cleanup_func, a, kw);
- Py_DECREF(a);
- Py_DECREF(kw);
- if (!args)
- goto bad;
- ret = PyList_Insert(reg, 0, args);
- } else {
- if (!reg)
- PyErr_Clear();
- Py_XDECREF(reg);
- reg = __Pyx_GetAttrString(atexit, "register");
- if (!reg)
- goto bad;
- args = PyTuple_Pack(1, cleanup_func);
- if (!args)
- goto bad;
- res = PyObject_CallObject(reg, args);
- if (!res)
- goto bad;
- ret = 0;
- }
-bad:
- Py_XDECREF(cleanup_func);
- Py_XDECREF(atexit);
- Py_XDECREF(reg);
- Py_XDECREF(args);
- Py_XDECREF(res);
- return ret;
-}
-#else
-static int __Pyx_RegisterCleanup(void) {
- if (0) __Pyx_ImportModule(NULL);
- return 0;
-}
-#endif
-
-static CYTHON_INLINE void __Pyx_ExceptionSave(PyObject **type, PyObject **value, PyObject **tb) {
-#if CYTHON_COMPILING_IN_CPYTHON
- PyThreadState *tstate = PyThreadState_GET();
- *type = tstate->exc_type;
- *value = tstate->exc_value;
- *tb = tstate->exc_traceback;
- Py_XINCREF(*type);
- Py_XINCREF(*value);
- Py_XINCREF(*tb);
-#else
- PyErr_GetExcInfo(type, value, tb);
-#endif
-}
-static void __Pyx_ExceptionReset(PyObject *type, PyObject *value, PyObject *tb) {
-#if CYTHON_COMPILING_IN_CPYTHON
- PyObject *tmp_type, *tmp_value, *tmp_tb;
- PyThreadState *tstate = PyThreadState_GET();
- tmp_type = tstate->exc_type;
- tmp_value = tstate->exc_value;
- tmp_tb = tstate->exc_traceback;
- tstate->exc_type = type;
- tstate->exc_value = value;
- tstate->exc_traceback = tb;
- Py_XDECREF(tmp_type);
- Py_XDECREF(tmp_value);
- Py_XDECREF(tmp_tb);
-#else
- PyErr_SetExcInfo(type, value, tb);
-#endif
-}
-
-static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level) {
- PyObject *empty_list = 0;
- PyObject *module = 0;
- PyObject *global_dict = 0;
- PyObject *empty_dict = 0;
- PyObject *list;
- #if PY_VERSION_HEX < 0x03030000
- PyObject *py_import = 0;
- py_import = __Pyx_GetAttrString(__pyx_b, "__import__");
- if (!py_import)
- goto bad;
- #endif
- if (from_list)
- list = from_list;
- else {
- empty_list = PyList_New(0);
- if (!empty_list)
- goto bad;
- list = empty_list;
- }
- global_dict = PyModule_GetDict(__pyx_m);
- if (!global_dict)
- goto bad;
- empty_dict = PyDict_New();
- if (!empty_dict)
- goto bad;
- #if PY_VERSION_HEX >= 0x02050000
- {
- #if PY_MAJOR_VERSION >= 3
- if (level == -1) {
- if (strchr(__Pyx_MODULE_NAME, '.')) {
- #if PY_VERSION_HEX < 0x03030000
- PyObject *py_level = PyInt_FromLong(1);
- if (!py_level)
- goto bad;
- module = PyObject_CallFunctionObjArgs(py_import,
- name, global_dict, empty_dict, list, py_level, NULL);
- Py_DECREF(py_level);
- #else
- module = PyImport_ImportModuleLevelObject(
- name, global_dict, empty_dict, list, 1);
- #endif
- if (!module) {
- if (!PyErr_ExceptionMatches(PyExc_ImportError))
- goto bad;
- PyErr_Clear();
- }
- }
- level = 0; /* try absolute import on failure */
- }
+static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name) {
+ PyObject* value = __Pyx_PyObject_GetAttrStr(module, name);
+ if (unlikely(!value) && PyErr_ExceptionMatches(PyExc_AttributeError)) {
+ PyErr_Format(PyExc_ImportError,
+ #if PY_MAJOR_VERSION < 3
+ "cannot import name %.230s", PyString_AS_STRING(name));
+ #else
+ "cannot import name %S", name);
#endif
- if (!module) {
- #if PY_VERSION_HEX < 0x03030000
- PyObject *py_level = PyInt_FromLong(level);
- if (!py_level)
- goto bad;
- module = PyObject_CallFunctionObjArgs(py_import,
- name, global_dict, empty_dict, list, py_level, NULL);
- Py_DECREF(py_level);
- #else
- module = PyImport_ImportModuleLevelObject(
- name, global_dict, empty_dict, list, level);
- #endif
- }
- }
- #else
- if (level>0) {
- PyErr_SetString(PyExc_RuntimeError, "Relative import is not supported for Python <=2.4.");
- goto bad;
}
- module = PyObject_CallFunctionObjArgs(py_import,
- name, global_dict, empty_dict, list, NULL);
- #endif
-bad:
- #if PY_VERSION_HEX < 0x03030000
- Py_XDECREF(py_import);
- #endif
- Py_XDECREF(empty_list);
- Py_XDECREF(empty_dict);
- return module;
-}
-
-static CYTHON_INLINE void __Pyx_RaiseImportError(PyObject *name) {
-#if PY_MAJOR_VERSION < 3
- PyErr_Format(PyExc_ImportError, "cannot import name %.230s",
- PyString_AsString(name));
-#else
- PyErr_Format(PyExc_ImportError, "cannot import name %S", name);
-#endif
-}
-
-static PyObject *__Pyx_FindPy2Metaclass(PyObject *bases) {
- PyObject *metaclass;
-#if PY_MAJOR_VERSION < 3
- if (PyTuple_Check(bases) && PyTuple_GET_SIZE(bases) > 0) {
- PyObject *base = PyTuple_GET_ITEM(bases, 0);
- metaclass = PyObject_GetAttrString(base, (char *)"__class__");
- if (!metaclass) {
- PyErr_Clear();
- metaclass = (PyObject*) Py_TYPE(base);
- }
- } else {
- metaclass = (PyObject *) &PyClass_Type;
- }
-#else
- if (PyTuple_Check(bases) && PyTuple_GET_SIZE(bases) > 0) {
- PyObject *base = PyTuple_GET_ITEM(bases, 0);
- metaclass = (PyObject*) Py_TYPE(base);
- } else {
- metaclass = (PyObject *) &PyType_Type;
- }
-#endif
- Py_INCREF(metaclass);
- return metaclass;
-}
-
-static PyObject *__Pyx_CreateClass(PyObject *bases, PyObject *dict, PyObject *name,
- PyObject *qualname, PyObject *modname) {
- PyObject *result;
- PyObject *metaclass;
- if (PyDict_SetItemString(dict, "__module__", modname) < 0)
- return NULL;
- if (PyDict_SetItemString(dict, "__qualname__", qualname) < 0)
- return NULL;
- metaclass = PyDict_GetItemString(dict, "__metaclass__");
- if (metaclass) {
- Py_INCREF(metaclass);
- } else {
- metaclass = __Pyx_FindPy2Metaclass(bases);
- }
- result = PyObject_CallFunctionObjArgs(metaclass, name, bases, dict, NULL);
- Py_DECREF(metaclass);
- return result;
+ return value;
}
static PyObject *
Py_INCREF(result);
return result;
}
+static int
+__Pyx_CyFunction_init_defaults(__pyx_CyFunctionObject *op) {
+ PyObject *res = op->defaults_getter((PyObject *) op);
+ if (unlikely(!res))
+ return -1;
+ op->defaults_tuple = PyTuple_GET_ITEM(res, 0);
+ Py_INCREF(op->defaults_tuple);
+ op->defaults_kwdict = PyTuple_GET_ITEM(res, 1);
+ Py_INCREF(op->defaults_kwdict);
+ Py_DECREF(res);
+ return 0;
+}
+static int
+__Pyx_CyFunction_set_defaults(__pyx_CyFunctionObject *op, PyObject* value) {
+ PyObject* tmp;
+ if (!value) {
+ value = Py_None;
+ } else if (value != Py_None && !PyTuple_Check(value)) {
+ PyErr_SetString(PyExc_TypeError,
+ "__defaults__ must be set to a tuple object");
+ return -1;
+ }
+ Py_INCREF(value);
+ tmp = op->defaults_tuple;
+ op->defaults_tuple = value;
+ Py_XDECREF(tmp);
+ return 0;
+}
static PyObject *
-__Pyx_CyFunction_get_defaults(__pyx_CyFunctionObject *op)
-{
- if (op->defaults_tuple) {
- Py_INCREF(op->defaults_tuple);
- return op->defaults_tuple;
+__Pyx_CyFunction_get_defaults(__pyx_CyFunctionObject *op) {
+ PyObject* result = op->defaults_tuple;
+ if (unlikely(!result)) {
+ if (op->defaults_getter) {
+ if (__Pyx_CyFunction_init_defaults(op) < 0) return NULL;
+ result = op->defaults_tuple;
+ } else {
+ result = Py_None;
+ }
+ }
+ Py_INCREF(result);
+ return result;
+}
+static int
+__Pyx_CyFunction_set_kwdefaults(__pyx_CyFunctionObject *op, PyObject* value) {
+ PyObject* tmp;
+ if (!value) {
+ value = Py_None;
+ } else if (value != Py_None && !PyDict_Check(value)) {
+ PyErr_SetString(PyExc_TypeError,
+ "__kwdefaults__ must be set to a dict object");
+ return -1;
}
- if (op->defaults_getter) {
- PyObject *res = op->defaults_getter((PyObject *) op);
- if (likely(res)) {
- Py_INCREF(res);
- op->defaults_tuple = res;
+ Py_INCREF(value);
+ tmp = op->defaults_kwdict;
+ op->defaults_kwdict = value;
+ Py_XDECREF(tmp);
+ return 0;
+}
+static PyObject *
+__Pyx_CyFunction_get_kwdefaults(__pyx_CyFunctionObject *op) {
+ PyObject* result = op->defaults_kwdict;
+ if (unlikely(!result)) {
+ if (op->defaults_getter) {
+ if (__Pyx_CyFunction_init_defaults(op) < 0) return NULL;
+ result = op->defaults_kwdict;
+ } else {
+ result = Py_None;
}
- return res;
}
- Py_INCREF(Py_None);
- return Py_None;
+ Py_INCREF(result);
+ return result;
+}
+static int
+__Pyx_CyFunction_set_annotations(__pyx_CyFunctionObject *op, PyObject* value) {
+ PyObject* tmp;
+ if (!value || value == Py_None) {
+ value = NULL;
+ } else if (!PyDict_Check(value)) {
+ PyErr_SetString(PyExc_TypeError,
+ "__annotations__ must be set to a dict object");
+ return -1;
+ }
+ Py_XINCREF(value);
+ tmp = op->func_annotations;
+ op->func_annotations = value;
+ Py_XDECREF(tmp);
+ return 0;
+}
+static PyObject *
+__Pyx_CyFunction_get_annotations(__pyx_CyFunctionObject *op) {
+ PyObject* result = op->func_annotations;
+ if (unlikely(!result)) {
+ result = PyDict_New();
+ if (unlikely(!result)) return NULL;
+ op->func_annotations = result;
+ }
+ Py_INCREF(result);
+ return result;
}
static PyGetSetDef __pyx_CyFunction_getsets[] = {
{(char *) "func_doc", (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0},
{(char *) "__closure__", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0},
{(char *) "func_code", (getter)__Pyx_CyFunction_get_code, 0, 0, 0},
{(char *) "__code__", (getter)__Pyx_CyFunction_get_code, 0, 0, 0},
- {(char *) "func_defaults", (getter)__Pyx_CyFunction_get_defaults, 0, 0, 0},
- {(char *) "__defaults__", (getter)__Pyx_CyFunction_get_defaults, 0, 0, 0},
+ {(char *) "func_defaults", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0},
+ {(char *) "__defaults__", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0},
+ {(char *) "__kwdefaults__", (getter)__Pyx_CyFunction_get_kwdefaults, (setter)__Pyx_CyFunction_set_kwdefaults, 0, 0},
+ {(char *) "__annotations__", (getter)__Pyx_CyFunction_get_annotations, (setter)__Pyx_CyFunction_set_annotations, 0, 0},
{0, 0, 0, 0, 0}
};
#ifndef PY_WRITE_RESTRICTED /* < Py2.5 */
op->defaults_pyobjects = 0;
op->defaults = NULL;
op->defaults_tuple = NULL;
+ op->defaults_kwdict = NULL;
op->defaults_getter = NULL;
+ op->func_annotations = NULL;
PyObject_GC_Track(op);
return (PyObject *) op;
}
Py_CLEAR(m->func_code);
Py_CLEAR(m->func_classobj);
Py_CLEAR(m->defaults_tuple);
+ Py_CLEAR(m->defaults_kwdict);
+ Py_CLEAR(m->func_annotations);
if (m->defaults) {
PyObject **pydefaults = __Pyx_CyFunction_Defaults(PyObject *, m);
int i;
Py_VISIT(m->func_code);
Py_VISIT(m->func_classobj);
Py_VISIT(m->defaults_tuple);
+ Py_VISIT(m->defaults_kwdict);
if (m->defaults) {
PyObject **pydefaults = __Pyx_CyFunction_Defaults(PyObject *, m);
int i;
m->defaults = PyMem_Malloc(size);
if (!m->defaults)
return PyErr_NoMemory();
- memset(m->defaults, 0, sizeof(size));
+ memset(m->defaults, 0, size);
m->defaults_pyobjects = pyobjects;
return m->defaults;
}
m->defaults_tuple = tuple;
Py_INCREF(tuple);
}
+static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *func, PyObject *dict) {
+ __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
+ m->defaults_kwdict = dict;
+ Py_INCREF(dict);
+}
+static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *func, PyObject *dict) {
+ __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
+ m->func_annotations = dict;
+ Py_INCREF(dict);
+}
+
+static PyObject *__Pyx_GetNameInClass(PyObject *nmspace, PyObject *name) {
+ PyObject *result;
+ result = __Pyx_PyObject_GetAttrStr(nmspace, name);
+ if (!result)
+ result = __Pyx_GetModuleGlobalName(name);
+ return result;
+}
+
+#ifndef __PYX_HAVE_RT_ImportModule
+#define __PYX_HAVE_RT_ImportModule
+static PyObject *__Pyx_ImportModule(const char *name) {
+ PyObject *py_name = 0;
+ PyObject *py_module = 0;
+ py_name = __Pyx_PyIdentifier_FromString(name);
+ if (!py_name)
+ goto bad;
+ py_module = PyImport_Import(py_name);
+ Py_DECREF(py_name);
+ return py_module;
+bad:
+ Py_XDECREF(py_name);
+ return 0;
+}
+#endif
+
+#if PY_MAJOR_VERSION < 3
+static PyObject* __pyx_module_cleanup_atexit(PyObject *module, CYTHON_UNUSED PyObject *unused) {
+ __pyx_module_cleanup(module);
+ Py_INCREF(Py_None); return Py_None;
+}
+static int __Pyx_RegisterCleanup(void) {
+ static PyMethodDef cleanup_def = {
+ __Pyx_NAMESTR("__cleanup"), (PyCFunction)__pyx_module_cleanup_atexit, METH_NOARGS, 0};
+ PyObject *cleanup_func = 0;
+ PyObject *atexit = 0;
+ PyObject *reg = 0;
+ PyObject *args = 0;
+ PyObject *res = 0;
+ int ret = -1;
+ cleanup_func = PyCFunction_New(&cleanup_def, 0);
+ if (!cleanup_func)
+ goto bad;
+ atexit = __Pyx_ImportModule("atexit");
+ if (!atexit)
+ goto bad;
+ reg = __Pyx_GetAttrString(atexit, "_exithandlers");
+ if (reg && PyList_Check(reg)) {
+ PyObject *a, *kw;
+ a = PyTuple_New(0);
+ kw = PyDict_New();
+ if (!a || !kw) {
+ Py_XDECREF(a);
+ Py_XDECREF(kw);
+ goto bad;
+ }
+ args = PyTuple_Pack(3, cleanup_func, a, kw);
+ Py_DECREF(a);
+ Py_DECREF(kw);
+ if (!args)
+ goto bad;
+ ret = PyList_Insert(reg, 0, args);
+ } else {
+ if (!reg)
+ PyErr_Clear();
+ Py_XDECREF(reg);
+ reg = __Pyx_GetAttrString(atexit, "register");
+ if (!reg)
+ goto bad;
+ args = PyTuple_Pack(1, cleanup_func);
+ if (!args)
+ goto bad;
+ res = PyObject_CallObject(reg, args);
+ if (!res)
+ goto bad;
+ ret = 0;
+ }
+bad:
+ Py_XDECREF(cleanup_func);
+ Py_XDECREF(atexit);
+ Py_XDECREF(reg);
+ Py_XDECREF(args);
+ Py_XDECREF(res);
+ return ret;
+}
+#else
+static int __Pyx_RegisterCleanup(void) {
+ if (0) __Pyx_ImportModule(NULL);
+ return 0;
+}
+#endif
+
+static CYTHON_INLINE void __Pyx_ExceptionSave(PyObject **type, PyObject **value, PyObject **tb) {
+#if CYTHON_COMPILING_IN_CPYTHON
+ PyThreadState *tstate = PyThreadState_GET();
+ *type = tstate->exc_type;
+ *value = tstate->exc_value;
+ *tb = tstate->exc_traceback;
+ Py_XINCREF(*type);
+ Py_XINCREF(*value);
+ Py_XINCREF(*tb);
+#else
+ PyErr_GetExcInfo(type, value, tb);
+#endif
+}
+static void __Pyx_ExceptionReset(PyObject *type, PyObject *value, PyObject *tb) {
+#if CYTHON_COMPILING_IN_CPYTHON
+ PyObject *tmp_type, *tmp_value, *tmp_tb;
+ PyThreadState *tstate = PyThreadState_GET();
+ tmp_type = tstate->exc_type;
+ tmp_value = tstate->exc_value;
+ tmp_tb = tstate->exc_traceback;
+ tstate->exc_type = type;
+ tstate->exc_value = value;
+ tstate->exc_traceback = tb;
+ Py_XDECREF(tmp_type);
+ Py_XDECREF(tmp_value);
+ Py_XDECREF(tmp_tb);
+#else
+ PyErr_SetExcInfo(type, value, tb);
+#endif
+}
+
+static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level) {
+ PyObject *empty_list = 0;
+ PyObject *module = 0;
+ PyObject *global_dict = 0;
+ PyObject *empty_dict = 0;
+ PyObject *list;
+ #if PY_VERSION_HEX < 0x03030000
+ PyObject *py_import;
+ py_import = __Pyx_PyObject_GetAttrStr(__pyx_b, __pyx_n_s____import__);
+ if (!py_import)
+ goto bad;
+ #endif
+ if (from_list)
+ list = from_list;
+ else {
+ empty_list = PyList_New(0);
+ if (!empty_list)
+ goto bad;
+ list = empty_list;
+ }
+ global_dict = PyModule_GetDict(__pyx_m);
+ if (!global_dict)
+ goto bad;
+ empty_dict = PyDict_New();
+ if (!empty_dict)
+ goto bad;
+ #if PY_VERSION_HEX >= 0x02050000
+ {
+ #if PY_MAJOR_VERSION >= 3
+ if (level == -1) {
+ if (strchr(__Pyx_MODULE_NAME, '.')) {
+ #if PY_VERSION_HEX < 0x03030000
+ PyObject *py_level = PyInt_FromLong(1);
+ if (!py_level)
+ goto bad;
+ module = PyObject_CallFunctionObjArgs(py_import,
+ name, global_dict, empty_dict, list, py_level, NULL);
+ Py_DECREF(py_level);
+ #else
+ module = PyImport_ImportModuleLevelObject(
+ name, global_dict, empty_dict, list, 1);
+ #endif
+ if (!module) {
+ if (!PyErr_ExceptionMatches(PyExc_ImportError))
+ goto bad;
+ PyErr_Clear();
+ }
+ }
+ level = 0; /* try absolute import on failure */
+ }
+ #endif
+ if (!module) {
+ #if PY_VERSION_HEX < 0x03030000
+ PyObject *py_level = PyInt_FromLong(level);
+ if (!py_level)
+ goto bad;
+ module = PyObject_CallFunctionObjArgs(py_import,
+ name, global_dict, empty_dict, list, py_level, NULL);
+ Py_DECREF(py_level);
+ #else
+ module = PyImport_ImportModuleLevelObject(
+ name, global_dict, empty_dict, list, level);
+ #endif
+ }
+ }
+ #else
+ if (level>0) {
+ PyErr_SetString(PyExc_RuntimeError, "Relative import is not supported for Python <=2.4.");
+ goto bad;
+ }
+ module = PyObject_CallFunctionObjArgs(py_import,
+ name, global_dict, empty_dict, list, NULL);
+ #endif
+bad:
+ #if PY_VERSION_HEX < 0x03030000
+ Py_XDECREF(py_import);
+ #endif
+ Py_XDECREF(empty_list);
+ Py_XDECREF(empty_dict);
+ return module;
+}
+
+static PyObject *__Pyx_FindPy2Metaclass(PyObject *bases) {
+ PyObject *metaclass;
+#if PY_MAJOR_VERSION < 3
+ if (PyTuple_Check(bases) && PyTuple_GET_SIZE(bases) > 0) {
+ PyObject *base = PyTuple_GET_ITEM(bases, 0);
+ metaclass = __Pyx_PyObject_GetAttrStr(base, __pyx_n_s____class__);
+ if (!metaclass) {
+ PyErr_Clear();
+ metaclass = (PyObject*) Py_TYPE(base);
+ }
+ } else {
+ metaclass = (PyObject *) &PyClass_Type;
+ }
+#else
+ if (PyTuple_Check(bases) && PyTuple_GET_SIZE(bases) > 0) {
+ PyObject *base = PyTuple_GET_ITEM(bases, 0);
+ metaclass = (PyObject*) Py_TYPE(base);
+ } else {
+ metaclass = (PyObject *) &PyType_Type;
+ }
+#endif
+ Py_INCREF(metaclass);
+ return metaclass;
+}
+
+static PyObject *__Pyx_CreateClass(PyObject *bases, PyObject *dict, PyObject *name,
+ PyObject *qualname, PyObject *modname) {
+ PyObject *result;
+ PyObject *metaclass;
+ if (PyDict_SetItem(dict, __pyx_n_s____module__, modname) < 0)
+ return NULL;
+ if (PyDict_SetItem(dict, __pyx_n_s____qualname__, qualname) < 0)
+ return NULL;
+ metaclass = PyDict_GetItem(dict, __pyx_n_s____metaclass__);
+ if (metaclass) {
+ Py_INCREF(metaclass);
+ } else {
+ metaclass = __Pyx_FindPy2Metaclass(bases);
+ }
+ result = PyObject_CallFunctionObjArgs(metaclass, name, bases, dict, NULL);
+ Py_DECREF(metaclass);
+ return result;
+}
#if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION < 3
static PyObject *__Pyx_GetStdout(void) {
PyObject* result = 0;
PyObject* end_string;
if (unlikely(!__pyx_print)) {
- __pyx_print = __Pyx_GetAttrString(__pyx_b, "print");
+ __pyx_print = PyObject_GetAttr(__pyx_b, __pyx_n_s__print);
if (!__pyx_print)
return -1;
}
kwargs = PyDict_New();
if (unlikely(!kwargs))
return -1;
- if (unlikely(PyDict_SetItemString(kwargs, "file", stream) < 0))
+ if (unlikely(PyDict_SetItem(kwargs, __pyx_n_s__file, stream) < 0))
goto bad;
if (!newline) {
end_string = PyUnicode_FromStringAndSize(" ", 1);
if (unlikely(!end_string))
goto bad;
- if (PyDict_SetItemString(kwargs, "end", end_string) < 0) {
+ if (PyDict_SetItem(kwargs, __pyx_n_s__end, end_string) < 0) {
Py_DECREF(end_string);
goto bad;
}
end_string = PyUnicode_FromStringAndSize(" ", 1);
if (unlikely(!end_string))
return -1;
- if (PyDict_SetItemString(__pyx_print_kwargs, "end", end_string) < 0) {
+ if (PyDict_SetItem(__pyx_print_kwargs, __pyx_n_s__end, end_string) < 0) {
Py_DECREF(end_string);
return -1;
}
return (int)__Pyx_PyInt_AsLong(x);
}
+#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
+#if CYTHON_USE_PYLONG_INTERNALS
+#include "longintrepr.h"
+#endif
+#endif
static CYTHON_INLINE unsigned long __Pyx_PyInt_AsUnsignedLong(PyObject* x) {
const unsigned long neg_one = (unsigned long)-1, const_zero = 0;
const int is_unsigned = neg_one > const_zero;
-#if PY_VERSION_HEX < 0x03000000
+#if PY_MAJOR_VERSION < 3
if (likely(PyInt_Check(x))) {
long val = PyInt_AS_LONG(x);
if (is_unsigned && unlikely(val < 0)) {
#endif
if (likely(PyLong_Check(x))) {
if (is_unsigned) {
+#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
+#if CYTHON_USE_PYLONG_INTERNALS
+ if (sizeof(digit) <= sizeof(unsigned long)) {
+ switch (Py_SIZE(x)) {
+ case 0: return 0;
+ case 1: return (unsigned long) ((PyLongObject*)x)->ob_digit[0];
+ }
+ }
+#endif
+#endif
if (unlikely(Py_SIZE(x) < 0)) {
PyErr_SetString(PyExc_OverflowError,
"can't convert negative value to unsigned long");
}
return (unsigned long)PyLong_AsUnsignedLong(x);
} else {
+#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
+#if CYTHON_USE_PYLONG_INTERNALS
+ if (sizeof(digit) <= sizeof(unsigned long)) {
+ switch (Py_SIZE(x)) {
+ case 0: return 0;
+ case 1: return +(unsigned long) ((PyLongObject*)x)->ob_digit[0];
+ case -1: return -(unsigned long) ((PyLongObject*)x)->ob_digit[0];
+ }
+ }
+#endif
+#endif
return (unsigned long)PyLong_AsLong(x);
}
} else {
}
}
+#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
+#if CYTHON_USE_PYLONG_INTERNALS
+#include "longintrepr.h"
+#endif
+#endif
static CYTHON_INLINE unsigned PY_LONG_LONG __Pyx_PyInt_AsUnsignedLongLong(PyObject* x) {
const unsigned PY_LONG_LONG neg_one = (unsigned PY_LONG_LONG)-1, const_zero = 0;
const int is_unsigned = neg_one > const_zero;
-#if PY_VERSION_HEX < 0x03000000
+#if PY_MAJOR_VERSION < 3
if (likely(PyInt_Check(x))) {
long val = PyInt_AS_LONG(x);
if (is_unsigned && unlikely(val < 0)) {
#endif
if (likely(PyLong_Check(x))) {
if (is_unsigned) {
+#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
+#if CYTHON_USE_PYLONG_INTERNALS
+ if (sizeof(digit) <= sizeof(unsigned PY_LONG_LONG)) {
+ switch (Py_SIZE(x)) {
+ case 0: return 0;
+ case 1: return (unsigned PY_LONG_LONG) ((PyLongObject*)x)->ob_digit[0];
+ }
+ }
+#endif
+#endif
if (unlikely(Py_SIZE(x) < 0)) {
PyErr_SetString(PyExc_OverflowError,
"can't convert negative value to unsigned PY_LONG_LONG");
}
return (unsigned PY_LONG_LONG)PyLong_AsUnsignedLongLong(x);
} else {
+#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
+#if CYTHON_USE_PYLONG_INTERNALS
+ if (sizeof(digit) <= sizeof(unsigned PY_LONG_LONG)) {
+ switch (Py_SIZE(x)) {
+ case 0: return 0;
+ case 1: return +(unsigned PY_LONG_LONG) ((PyLongObject*)x)->ob_digit[0];
+ case -1: return -(unsigned PY_LONG_LONG) ((PyLongObject*)x)->ob_digit[0];
+ }
+ }
+#endif
+#endif
return (unsigned PY_LONG_LONG)PyLong_AsLongLong(x);
}
} else {
}
}
+#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
+#if CYTHON_USE_PYLONG_INTERNALS
+#include "longintrepr.h"
+#endif
+#endif
static CYTHON_INLINE long __Pyx_PyInt_AsLong(PyObject* x) {
const long neg_one = (long)-1, const_zero = 0;
const int is_unsigned = neg_one > const_zero;
-#if PY_VERSION_HEX < 0x03000000
+#if PY_MAJOR_VERSION < 3
if (likely(PyInt_Check(x))) {
long val = PyInt_AS_LONG(x);
if (is_unsigned && unlikely(val < 0)) {
#endif
if (likely(PyLong_Check(x))) {
if (is_unsigned) {
+#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
+#if CYTHON_USE_PYLONG_INTERNALS
+ if (sizeof(digit) <= sizeof(long)) {
+ switch (Py_SIZE(x)) {
+ case 0: return 0;
+ case 1: return (long) ((PyLongObject*)x)->ob_digit[0];
+ }
+ }
+#endif
+#endif
if (unlikely(Py_SIZE(x) < 0)) {
PyErr_SetString(PyExc_OverflowError,
"can't convert negative value to long");
}
return (long)PyLong_AsUnsignedLong(x);
} else {
+#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
+#if CYTHON_USE_PYLONG_INTERNALS
+ if (sizeof(digit) <= sizeof(long)) {
+ switch (Py_SIZE(x)) {
+ case 0: return 0;
+ case 1: return +(long) ((PyLongObject*)x)->ob_digit[0];
+ case -1: return -(long) ((PyLongObject*)x)->ob_digit[0];
+ }
+ }
+#endif
+#endif
return (long)PyLong_AsLong(x);
}
} else {
}
}
+#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
+#if CYTHON_USE_PYLONG_INTERNALS
+#include "longintrepr.h"
+#endif
+#endif
static CYTHON_INLINE PY_LONG_LONG __Pyx_PyInt_AsLongLong(PyObject* x) {
const PY_LONG_LONG neg_one = (PY_LONG_LONG)-1, const_zero = 0;
const int is_unsigned = neg_one > const_zero;
-#if PY_VERSION_HEX < 0x03000000
+#if PY_MAJOR_VERSION < 3
if (likely(PyInt_Check(x))) {
long val = PyInt_AS_LONG(x);
if (is_unsigned && unlikely(val < 0)) {
#endif
if (likely(PyLong_Check(x))) {
if (is_unsigned) {
+#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
+#if CYTHON_USE_PYLONG_INTERNALS
+ if (sizeof(digit) <= sizeof(PY_LONG_LONG)) {
+ switch (Py_SIZE(x)) {
+ case 0: return 0;
+ case 1: return (PY_LONG_LONG) ((PyLongObject*)x)->ob_digit[0];
+ }
+ }
+#endif
+#endif
if (unlikely(Py_SIZE(x) < 0)) {
PyErr_SetString(PyExc_OverflowError,
"can't convert negative value to PY_LONG_LONG");
}
return (PY_LONG_LONG)PyLong_AsUnsignedLongLong(x);
} else {
+#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
+#if CYTHON_USE_PYLONG_INTERNALS
+ if (sizeof(digit) <= sizeof(PY_LONG_LONG)) {
+ switch (Py_SIZE(x)) {
+ case 0: return 0;
+ case 1: return +(PY_LONG_LONG) ((PyLongObject*)x)->ob_digit[0];
+ case -1: return -(PY_LONG_LONG) ((PyLongObject*)x)->ob_digit[0];
+ }
+ }
+#endif
+#endif
return (PY_LONG_LONG)PyLong_AsLongLong(x);
}
} else {
}
}
+#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
+#if CYTHON_USE_PYLONG_INTERNALS
+#include "longintrepr.h"
+#endif
+#endif
static CYTHON_INLINE signed long __Pyx_PyInt_AsSignedLong(PyObject* x) {
const signed long neg_one = (signed long)-1, const_zero = 0;
const int is_unsigned = neg_one > const_zero;
-#if PY_VERSION_HEX < 0x03000000
+#if PY_MAJOR_VERSION < 3
if (likely(PyInt_Check(x))) {
long val = PyInt_AS_LONG(x);
if (is_unsigned && unlikely(val < 0)) {
#endif
if (likely(PyLong_Check(x))) {
if (is_unsigned) {
+#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
+#if CYTHON_USE_PYLONG_INTERNALS
+ if (sizeof(digit) <= sizeof(signed long)) {
+ switch (Py_SIZE(x)) {
+ case 0: return 0;
+ case 1: return (signed long) ((PyLongObject*)x)->ob_digit[0];
+ }
+ }
+#endif
+#endif
if (unlikely(Py_SIZE(x) < 0)) {
PyErr_SetString(PyExc_OverflowError,
"can't convert negative value to signed long");
}
return (signed long)PyLong_AsUnsignedLong(x);
} else {
+#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
+#if CYTHON_USE_PYLONG_INTERNALS
+ if (sizeof(digit) <= sizeof(signed long)) {
+ switch (Py_SIZE(x)) {
+ case 0: return 0;
+ case 1: return +(signed long) ((PyLongObject*)x)->ob_digit[0];
+ case -1: return -(signed long) ((PyLongObject*)x)->ob_digit[0];
+ }
+ }
+#endif
+#endif
return (signed long)PyLong_AsLong(x);
}
} else {
}
}
+#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
+#if CYTHON_USE_PYLONG_INTERNALS
+#include "longintrepr.h"
+#endif
+#endif
static CYTHON_INLINE signed PY_LONG_LONG __Pyx_PyInt_AsSignedLongLong(PyObject* x) {
const signed PY_LONG_LONG neg_one = (signed PY_LONG_LONG)-1, const_zero = 0;
const int is_unsigned = neg_one > const_zero;
-#if PY_VERSION_HEX < 0x03000000
+#if PY_MAJOR_VERSION < 3
if (likely(PyInt_Check(x))) {
long val = PyInt_AS_LONG(x);
if (is_unsigned && unlikely(val < 0)) {
#endif
if (likely(PyLong_Check(x))) {
if (is_unsigned) {
+#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
+#if CYTHON_USE_PYLONG_INTERNALS
+ if (sizeof(digit) <= sizeof(signed PY_LONG_LONG)) {
+ switch (Py_SIZE(x)) {
+ case 0: return 0;
+ case 1: return (signed PY_LONG_LONG) ((PyLongObject*)x)->ob_digit[0];
+ }
+ }
+#endif
+#endif
if (unlikely(Py_SIZE(x) < 0)) {
PyErr_SetString(PyExc_OverflowError,
"can't convert negative value to signed PY_LONG_LONG");
}
return (signed PY_LONG_LONG)PyLong_AsUnsignedLongLong(x);
} else {
+#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
+#if CYTHON_USE_PYLONG_INTERNALS
+ if (sizeof(digit) <= sizeof(signed PY_LONG_LONG)) {
+ switch (Py_SIZE(x)) {
+ case 0: return 0;
+ case 1: return +(signed PY_LONG_LONG) ((PyLongObject*)x)->ob_digit[0];
+ case -1: return -(signed PY_LONG_LONG) ((PyLongObject*)x)->ob_digit[0];
+ }
+ }
+#endif
+#endif
return (signed PY_LONG_LONG)PyLong_AsLongLong(x);
}
} else {
Py_DECREF(ev);
#else
{
- PyObject* args = PyObject_GetAttrString(ev, "args");
+ PyObject* args = PyObject_GetAttr(ev, __pyx_n_s__args);
Py_DECREF(ev);
if (likely(args)) {
value = PyObject_GetItem(args, 0);
if (value == Py_None)
ret = PyIter_Next(yf);
else
- ret = PyObject_CallMethod(yf, (char*)"send", (char*)"O", value);
+ ret = __Pyx_PyObject_CallMethod1(yf, __pyx_n_s__send, value);
}
gen->is_running = 0;
if (likely(ret)) {
} else {
PyObject *meth;
gen->is_running = 1;
- meth = PyObject_GetAttrString(yf, "close");
+ meth = PyObject_GetAttr(yf, __pyx_n_s__close);
if (unlikely(!meth)) {
if (!PyErr_ExceptionMatches(PyExc_AttributeError)) {
PyErr_WriteUnraisable(yf);
if (__Pyx_Generator_CheckExact(yf)) {
ret = __Pyx_Generator_Throw(yf, args);
} else {
- PyObject *meth = PyObject_GetAttrString(yf, "throw");
+ PyObject *meth = PyObject_GetAttr(yf, __pyx_n_s__throw);
if (unlikely(!meth)) {
Py_DECREF(yf);
if (!PyErr_ExceptionMatches(PyExc_AttributeError)) {
_Py_NewReference(self);
self->ob_refcnt = refcnt;
}
-#if CYTHON_COMPILING_FOR_CPYTHON
+#if CYTHON_COMPILING_IN_CPYTHON
assert(PyType_IS_GC(self->ob_type) &&
_Py_AS_GC(self)->gc.gc_refs != _PyGC_REFS_UNTRACKED);
/* If Py_REF_DEBUG, _Py_NewReference bumped _Py_RefTotal, so
return 0;
}
+static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(char* c_str) {
+ return __Pyx_PyUnicode_FromStringAndSize(c_str, strlen(c_str));
+}
+static CYTHON_INLINE char* __Pyx_PyObject_AsString(PyObject* o) {
+ Py_ssize_t ignore;
+ return __Pyx_PyObject_AsStringAndSize(o, &ignore);
+}
+static CYTHON_INLINE char* __Pyx_PyObject_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
+#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT
+ if (
+#if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
+ __Pyx_sys_getdefaultencoding_not_ascii &&
+#endif
+ PyUnicode_Check(o)) {
+#if PY_VERSION_HEX < 0x03030000
+ char* defenc_c;
+ PyObject* defenc = _PyUnicode_AsDefaultEncodedString(o, NULL);
+ if (!defenc) return NULL;
+ defenc_c = PyBytes_AS_STRING(defenc);
+#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
+ {
+ char* end = defenc_c + PyBytes_GET_SIZE(defenc);
+ char* c;
+ for (c = defenc_c; c < end; c++) {
+ if ((unsigned char) (*c) >= 128) {
+ PyUnicode_AsASCIIString(o);
+ return NULL;
+ }
+ }
+ }
+#endif /*__PYX_DEFAULT_STRING_ENCODING_IS_ASCII*/
+ *length = PyBytes_GET_SIZE(defenc);
+ return defenc_c;
+#else /* PY_VERSION_HEX < 0x03030000 */
+ if (PyUnicode_READY(o) == -1) return NULL;
+#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
+ if (PyUnicode_IS_ASCII(o)) {
+ *length = PyUnicode_GET_DATA_SIZE(o);
+ return PyUnicode_AsUTF8(o);
+ } else {
+ PyUnicode_AsASCIIString(o);
+ return NULL;
+ }
+#else /* __PYX_DEFAULT_STRING_ENCODING_IS_ASCII */
+ return PyUnicode_AsUTF8AndSize(o, length);
+#endif /* __PYX_DEFAULT_STRING_ENCODING_IS_ASCII */
+#endif /* PY_VERSION_HEX < 0x03030000 */
+ } else
+#endif /* __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT */
+ {
+ char* result;
+ int r = PyBytes_AsStringAndSize(o, &result, length);
+ if (r < 0) {
+ return NULL;
+ } else {
+ return result;
+ }
+ }
+}
static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) {
int is_true = x == Py_True;
if (is_true | (x == Py_False) | (x == Py_None)) return is_true;
PyNumberMethods *m;
const char *name = NULL;
PyObject *res = NULL;
-#if PY_VERSION_HEX < 0x03000000
+#if PY_MAJOR_VERSION < 3
if (PyInt_Check(x) || PyLong_Check(x))
#else
if (PyLong_Check(x))
#endif
return Py_INCREF(x), x;
m = Py_TYPE(x)->tp_as_number;
-#if PY_VERSION_HEX < 0x03000000
+#if PY_MAJOR_VERSION < 3
if (m && m->nb_int) {
name = "int";
res = PyNumber_Int(x);
}
#endif
if (res) {
-#if PY_VERSION_HEX < 0x03000000
+#if PY_MAJOR_VERSION < 3
if (!PyInt_Check(res) && !PyLong_Check(res)) {
#else
if (!PyLong_Check(res)) {
}
static CYTHON_INLINE size_t __Pyx_PyInt_AsSize_t(PyObject* x) {
unsigned PY_LONG_LONG val = __Pyx_PyInt_AsUnsignedLongLong(x);
- if (unlikely(val == (unsigned PY_LONG_LONG)-1 && PyErr_Occurred())) {
- return (size_t)-1;
- } else if (unlikely(val != (unsigned PY_LONG_LONG)(size_t)val)) {
- PyErr_SetString(PyExc_OverflowError,
- "value too large to convert to size_t");
+ if (unlikely(val != (unsigned PY_LONG_LONG)(size_t)val)) {
+ if ((val != (unsigned PY_LONG_LONG)-1) || !PyErr_Occurred())
+ PyErr_SetString(PyExc_OverflowError,
+ "value too large to convert to size_t");
return (size_t)-1;
}
return (size_t)val;
-/* Generated by Cython 0.18 on Fri Apr 12 07:15:01 2013 */
+/* Generated by Cython 0.19 on Sun Apr 28 20:49:30 2013 */
#define PY_SSIZE_T_CLEAN
+#ifndef CYTHON_USE_PYLONG_INTERNALS
+#ifdef PYLONG_BITS_IN_DIGIT
+#define CYTHON_USE_PYLONG_INTERNALS 0
+#else
+#include "pyconfig.h"
+#ifdef PYLONG_BITS_IN_DIGIT
+#define CYTHON_USE_PYLONG_INTERNALS 1
+#else
+#define CYTHON_USE_PYLONG_INTERNALS 0
+#endif
+#endif
+#endif
#include "Python.h"
#ifndef Py_PYTHON_H
#error Python headers needed to compile C extensions, please install development version of Python.
#if (PY_VERSION_HEX < 0x02060000) || (PY_MAJOR_VERSION >= 3)
#define Py_TPFLAGS_HAVE_NEWBUFFER 0
#endif
+#if PY_VERSION_HEX < 0x02060000
+ #define Py_TPFLAGS_HAVE_VERSION_TAG 0
+#endif
#if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND)
#define CYTHON_PEP393_ENABLED 1
#define __Pyx_PyUnicode_READY(op) (likely(PyUnicode_IS_READY(op)) ? \
#define PyBytes_Concat PyString_Concat
#define PyBytes_ConcatAndDel PyString_ConcatAndDel
#endif
+#if PY_MAJOR_VERSION >= 3
+ #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj)
+ #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj)
+#else
+ #define __Pyx_PyBaseString_Check(obj) (PyString_CheckExact(obj) || PyUnicode_CheckExact(obj) || \
+ PyString_Check(obj) || PyUnicode_Check(obj))
+ #define __Pyx_PyBaseString_CheckExact(obj) (Py_TYPE(obj) == &PyBaseString_Type)
+#endif
#if PY_VERSION_HEX < 0x02060000
#define PySet_Check(obj) PyObject_TypeCheck(obj, &PySet_Type)
#define PyFrozenSet_Check(obj) PyObject_TypeCheck(obj, &PyFrozenSet_Type)
#define __Pyx_NAMESTR(n) (n)
#define __Pyx_DOCSTR(n) (n)
#endif
+#ifndef CYTHON_INLINE
+ #if defined(__GNUC__)
+ #define CYTHON_INLINE __inline__
+ #elif defined(_MSC_VER)
+ #define CYTHON_INLINE __inline
+ #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+ #define CYTHON_INLINE inline
+ #else
+ #define CYTHON_INLINE
+ #endif
+#endif
+#ifdef NAN
+#define __PYX_NAN() ((float) NAN)
+#else
+static CYTHON_INLINE float __PYX_NAN() {
+ /* Initialize NaN. The sign is irrelevant, an exponent with all bits 1 and
+ a nonzero mantissa means NaN. If the first bit in the mantissa is 1, it is
+ a quiet NaN. */
+ float value;
+ memset(&value, 0xFF, sizeof(value));
+ return value;
+}
+#endif
#if PY_MAJOR_VERSION >= 3
#define CYTHON_WITHOUT_ASSERTIONS
#endif
-#ifndef CYTHON_INLINE
- #if defined(__GNUC__)
- #define CYTHON_INLINE __inline__
- #elif defined(_MSC_VER)
- #define CYTHON_INLINE __inline
- #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
- #define CYTHON_INLINE inline
- #else
- #define CYTHON_INLINE
- #endif
-#endif
#ifndef CYTHON_UNUSED
# if defined(__GNUC__)
# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
# define CYTHON_UNUSED
# endif
#endif
-typedef struct {PyObject **p; char *s; const long n; const char* encoding; const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry; /*proto*/
-
-#define __Pyx_PyBytes_FromUString(s) PyBytes_FromString((char*)s)
-#define __Pyx_PyBytes_AsUString(s) ((unsigned char*) PyBytes_AsString(s))
+typedef struct {PyObject **p; char *s; const Py_ssize_t n; const char* encoding;
+ const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry; /*proto*/
+
+#define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0
+#define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT 0
+#define __PYX_DEFAULT_STRING_ENCODING ""
+#define __Pyx_PyObject_FromString __Pyx_PyBytes_FromString
+#define __Pyx_PyObject_FromStringAndSize __Pyx_PyBytes_FromStringAndSize
+static CYTHON_INLINE char* __Pyx_PyObject_AsString(PyObject*);
+static CYTHON_INLINE char* __Pyx_PyObject_AsStringAndSize(PyObject*, Py_ssize_t* length);
+#define __Pyx_PyBytes_FromString PyBytes_FromString
+#define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize
+static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(char*);
+#if PY_MAJOR_VERSION < 3
+ #define __Pyx_PyStr_FromString __Pyx_PyBytes_FromString
+ #define __Pyx_PyStr_FromStringAndSize __Pyx_PyBytes_FromStringAndSize
+#else
+ #define __Pyx_PyStr_FromString __Pyx_PyUnicode_FromString
+ #define __Pyx_PyStr_FromStringAndSize __Pyx_PyUnicode_FromStringAndSize
+#endif
+#define __Pyx_PyObject_AsUString(s) ((unsigned char*) __Pyx_PyObject_AsString(s))
+#define __Pyx_PyObject_FromUString(s) __Pyx_PyObject_FromString((char*)s)
+#define __Pyx_PyBytes_FromUString(s) __Pyx_PyBytes_FromString((char*)s)
+#define __Pyx_PyStr_FromUString(s) __Pyx_PyStr_FromString((char*)s)
+#define __Pyx_PyUnicode_FromUString(s) __Pyx_PyUnicode_FromString((char*)s)
+#if PY_MAJOR_VERSION < 3
+static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u)
+{
+ const Py_UNICODE *u_end = u;
+ while (*u_end++) ;
+ return u_end - u - 1;
+}
+#else
+#define __Pyx_Py_UNICODE_strlen Py_UNICODE_strlen
+#endif
+#define __Pyx_PyUnicode_FromUnicode(u) PyUnicode_FromUnicode(u, __Pyx_Py_UNICODE_strlen(u))
+#define __Pyx_PyUnicode_FromUnicodeAndLength PyUnicode_FromUnicode
+#define __Pyx_PyUnicode_AsUnicode PyUnicode_AsUnicode
#define __Pyx_Owned_Py_None(b) (Py_INCREF(Py_None), Py_None)
#define __Pyx_PyBool_FromLong(b) ((b) ? (Py_INCREF(Py_True), Py_True) : (Py_INCREF(Py_False), Py_False))
static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*);
#define __pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x)
#endif
#define __pyx_PyFloat_AsFloat(x) ((float) __pyx_PyFloat_AsDouble(x))
+#if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
+static int __Pyx_sys_getdefaultencoding_not_ascii;
+static int __Pyx_init_sys_getdefaultencoding_params() {
+ PyObject* sys = NULL;
+ PyObject* default_encoding = NULL;
+ PyObject* ascii_chars_u = NULL;
+ PyObject* ascii_chars_b = NULL;
+ sys = PyImport_ImportModule("sys");
+ if (sys == NULL) goto bad;
+ default_encoding = PyObject_CallMethod(sys, (char*) (const char*) "getdefaultencoding", NULL);
+ if (default_encoding == NULL) goto bad;
+ if (strcmp(PyBytes_AsString(default_encoding), "ascii") == 0) {
+ __Pyx_sys_getdefaultencoding_not_ascii = 0;
+ } else {
+ const char* default_encoding_c = PyBytes_AS_STRING(default_encoding);
+ char ascii_chars[128];
+ int c;
+ for (c = 0; c < 128; c++) {
+ ascii_chars[c] = c;
+ }
+ __Pyx_sys_getdefaultencoding_not_ascii = 1;
+ ascii_chars_u = PyUnicode_DecodeASCII(ascii_chars, 128, NULL);
+ if (ascii_chars_u == NULL) goto bad;
+ ascii_chars_b = PyUnicode_AsEncodedString(ascii_chars_u, default_encoding_c, NULL);
+ if (ascii_chars_b == NULL || strncmp(ascii_chars, PyBytes_AS_STRING(ascii_chars_b), 128) != 0) {
+ PyErr_Format(
+ PyExc_ValueError,
+ "This module compiled with c_string_encoding=ascii, but default encoding '%s' is not a superset of ascii.",
+ default_encoding_c);
+ goto bad;
+ }
+ }
+ Py_XDECREF(sys);
+ Py_XDECREF(default_encoding);
+ Py_XDECREF(ascii_chars_u);
+ Py_XDECREF(ascii_chars_b);
+ return 0;
+bad:
+ Py_XDECREF(sys);
+ Py_XDECREF(default_encoding);
+ Py_XDECREF(ascii_chars_u);
+ Py_XDECREF(ascii_chars_b);
+ return -1;
+}
+#endif
+#if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT && PY_MAJOR_VERSION >= 3
+#define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeUTF8(c_str, size, NULL)
+#else
+#define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_Decode(c_str, size, __PYX_DEFAULT_STRING_ENCODING, NULL)
+#if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT
+static char* __PYX_DEFAULT_STRING_ENCODING;
+static int __Pyx_init_sys_getdefaultencoding_params() {
+ PyObject* sys = NULL;
+ PyObject* default_encoding = NULL;
+ char* default_encoding_c;
+ sys = PyImport_ImportModule("sys");
+ if (sys == NULL) goto bad;
+ default_encoding = PyObject_CallMethod(sys, (char*) (const char*) "getdefaultencoding", NULL);
+ if (default_encoding == NULL) goto bad;
+ default_encoding_c = PyBytes_AS_STRING(default_encoding);
+ __PYX_DEFAULT_STRING_ENCODING = (char*) malloc(strlen(default_encoding_c));
+ strcpy(__PYX_DEFAULT_STRING_ENCODING, default_encoding_c);
+ Py_DECREF(sys);
+ Py_DECREF(default_encoding);
+ return 0;
+bad:
+ Py_XDECREF(sys);
+ Py_XDECREF(default_encoding);
+ return -1;
+}
+#endif
+#endif
#ifdef __GNUC__
#define likely(x) (x)
#define unlikely(x) (x)
#endif /* __GNUC__ */
-
+
static PyObject *__pyx_m;
+static PyObject *__pyx_d;
static PyObject *__pyx_b;
static PyObject *__pyx_empty_tuple;
static PyObject *__pyx_empty_bytes;
#define __Pyx_CLEAR(r) do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0)
#define __Pyx_XCLEAR(r) do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0)
-static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name); /*proto*/
+#if CYTHON_COMPILING_IN_CPYTHON
+static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) {
+ PyTypeObject* tp = Py_TYPE(obj);
+ if (likely(tp->tp_getattro))
+ return tp->tp_getattro(obj, attr_name);
+#if PY_MAJOR_VERSION < 3
+ if (likely(tp->tp_getattr))
+ return tp->tp_getattr(obj, PyString_AS_STRING(attr_name));
+#endif
+ return PyObject_GetAttr(obj, attr_name);
+}
+#else
+#define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n)
+#endif
+
+static PyObject *__Pyx_GetBuiltinName(PyObject *name); /*proto*/
static void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name); /*proto*/
const char* encoding, const char* errors,
PyObject* (*decode_func)(const char *s, Py_ssize_t size, const char *errors));
+static CYTHON_INLINE PyObject *__Pyx_GetModuleGlobalName(PyObject *name); /*proto*/
+
static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type); /*proto*/
+#if CYTHON_COMPILING_IN_CPYTHON
+static CYTHON_INLINE int __Pyx_PyList_Append(PyObject* list, PyObject* x) {
+ PyListObject* L = (PyListObject*) list;
+ Py_ssize_t len = Py_SIZE(list);
+ if (likely(L->allocated > len) & likely(len > (L->allocated >> 1))) {
+ Py_INCREF(x);
+ PyList_SET_ITEM(list, len, x);
+ Py_SIZE(list) = len+1;
+ return 0;
+ }
+ return PyList_Append(list, x);
+}
+#else
+#define __Pyx_PyList_Append(L,x) PyList_Append(L,x)
+#endif
+
static CYTHON_INLINE void __Pyx_ErrRestore(PyObject *type, PyObject *value, PyObject *tb); /*proto*/
static CYTHON_INLINE void __Pyx_ErrFetch(PyObject **type, PyObject **value, PyObject **tb); /*proto*/
static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); /*proto*/
-static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j) {
- PyObject *r;
- if (!j) return NULL;
- r = PyObject_GetItem(o, j);
- Py_DECREF(j);
- return r;
-}
-#define __Pyx_GetItemInt_List(o, i, size, to_py_func) (((size) <= sizeof(Py_ssize_t)) ? \
- __Pyx_GetItemInt_List_Fast(o, i) : \
- __Pyx_GetItemInt_Generic(o, to_py_func(i)))
-static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i) {
-#if CYTHON_COMPILING_IN_CPYTHON
- if (likely((0 <= i) & (i < PyList_GET_SIZE(o)))) {
- PyObject *r = PyList_GET_ITEM(o, i);
- Py_INCREF(r);
- return r;
- }
- else if ((-PyList_GET_SIZE(o) <= i) & (i < 0)) {
- PyObject *r = PyList_GET_ITEM(o, PyList_GET_SIZE(o) + i);
- Py_INCREF(r);
- return r;
- }
- return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
-#else
- return PySequence_GetItem(o, i);
-#endif
-}
-#define __Pyx_GetItemInt_Tuple(o, i, size, to_py_func) (((size) <= sizeof(Py_ssize_t)) ? \
- __Pyx_GetItemInt_Tuple_Fast(o, i) : \
- __Pyx_GetItemInt_Generic(o, to_py_func(i)))
-static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i) {
#if CYTHON_COMPILING_IN_CPYTHON
- if (likely((0 <= i) & (i < PyTuple_GET_SIZE(o)))) {
- PyObject *r = PyTuple_GET_ITEM(o, i);
- Py_INCREF(r);
- return r;
- }
- else if ((-PyTuple_GET_SIZE(o) <= i) & (i < 0)) {
- PyObject *r = PyTuple_GET_ITEM(o, PyTuple_GET_SIZE(o) + i);
- Py_INCREF(r);
- return r;
- }
- return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
-#else
- return PySequence_GetItem(o, i);
+#define __Pyx_PyObject_DelAttrStr(o,n) __Pyx_PyObject_SetAttrStr(o,n,NULL)
+static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value) {
+ PyTypeObject* tp = Py_TYPE(obj);
+ if (likely(tp->tp_setattro))
+ return tp->tp_setattro(obj, attr_name, value);
+#if PY_MAJOR_VERSION < 3
+ if (likely(tp->tp_setattr))
+ return tp->tp_setattr(obj, PyString_AS_STRING(attr_name), value);
#endif
+ return PyObject_SetAttr(obj, attr_name, value);
}
-#define __Pyx_GetItemInt(o, i, size, to_py_func) (((size) <= sizeof(Py_ssize_t)) ? \
- __Pyx_GetItemInt_Fast(o, i) : \
- __Pyx_GetItemInt_Generic(o, to_py_func(i)))
-static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i) {
-#if CYTHON_COMPILING_IN_CPYTHON
- if (PyList_CheckExact(o)) {
- Py_ssize_t n = (likely(i >= 0)) ? i : i + PyList_GET_SIZE(o);
- if (likely((n >= 0) & (n < PyList_GET_SIZE(o)))) {
- PyObject *r = PyList_GET_ITEM(o, n);
- Py_INCREF(r);
- return r;
- }
- }
- else if (PyTuple_CheckExact(o)) {
- Py_ssize_t n = (likely(i >= 0)) ? i : i + PyTuple_GET_SIZE(o);
- if (likely((n >= 0) & (n < PyTuple_GET_SIZE(o)))) {
- PyObject *r = PyTuple_GET_ITEM(o, n);
- Py_INCREF(r);
- return r;
- }
- } else { /* inlined PySequence_GetItem() */
- PySequenceMethods *m = Py_TYPE(o)->tp_as_sequence;
- if (likely(m && m->sq_item)) {
- if (unlikely(i < 0) && likely(m->sq_length)) {
- Py_ssize_t l = m->sq_length(o);
- if (unlikely(l < 0)) return NULL;
- i += l;
- }
- return m->sq_item(o, i);
- }
- }
#else
- if (PySequence_Check(o)) {
- return PySequence_GetItem(o, i);
- }
+#define __Pyx_PyObject_DelAttrStr(o,n) PyObject_DelAttr(o,n)
+#define __Pyx_PyObject_SetAttrStr(o,n,v) PyObject_SetAttr(o,n,v)
#endif
- return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
-}
+
+#define __Pyx_PyObject_DelSlice(obj, cstart, cstop, py_start, py_stop, py_slice, has_cstart, has_cstop, wraparound) \
+ __Pyx_PyObject_SetSlice(obj, (PyObject*)NULL, cstart, cstop, py_start, py_stop, py_slice, has_cstart, has_cstop, wraparound)
+static CYTHON_INLINE int __Pyx_PyObject_SetSlice(
+ PyObject* obj, PyObject* value, Py_ssize_t cstart, Py_ssize_t cstop,
+ PyObject** py_start, PyObject** py_stop, PyObject** py_slice,
+ int has_cstart, int has_cstop, int wraparound);
+
+#define __Pyx_GetItemInt(o, i, size, to_py_func, is_list, wraparound, boundscheck) \
+ (((size) <= sizeof(Py_ssize_t)) ? \
+ __Pyx_GetItemInt_Fast(o, i, is_list, wraparound, boundscheck) : \
+ __Pyx_GetItemInt_Generic(o, to_py_func(i)))
+#define __Pyx_GetItemInt_List(o, i, size, to_py_func, is_list, wraparound, boundscheck) \
+ (((size) <= sizeof(Py_ssize_t)) ? \
+ __Pyx_GetItemInt_List_Fast(o, i, wraparound, boundscheck) : \
+ __Pyx_GetItemInt_Generic(o, to_py_func(i)))
+static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i,
+ int wraparound, int boundscheck);
+#define __Pyx_GetItemInt_Tuple(o, i, size, to_py_func, is_list, wraparound, boundscheck) \
+ (((size) <= sizeof(Py_ssize_t)) ? \
+ __Pyx_GetItemInt_Tuple_Fast(o, i, wraparound, boundscheck) : \
+ __Pyx_GetItemInt_Generic(o, to_py_func(i)))
+static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i,
+ int wraparound, int boundscheck);
+static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j);
+static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i,
+ int is_list, int wraparound, int boundscheck);
static double __Pyx__PyObject_AsDouble(PyObject* obj); /* proto */
#if CYTHON_COMPILING_IN_PYPY
PyFloat_AS_DOUBLE(obj) : __Pyx__PyObject_AsDouble(obj))
#endif
+static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *, PyObject *); /*proto*/
+
static CYTHON_INLINE PyObject *__Pyx_GetAttr3(PyObject *, PyObject *, PyObject *); /*proto*/
#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
return unlikely(result < 0) ? result : (result == (eq == Py_EQ));
}
-static PyObject* __Pyx_PyDict_GetItemDefault(PyObject* d, PyObject* key, PyObject* default_value) {
- PyObject* value;
+static PyObject* __Pyx_PyDict_GetItemDefault(PyObject* d, PyObject* key, PyObject* default_value); /*proto*/
+
#if PY_MAJOR_VERSION >= 3
- value = PyDict_GetItemWithError(d, key);
- if (unlikely(!value)) {
- if (unlikely(PyErr_Occurred()))
- return NULL;
- value = default_value;
- }
- Py_INCREF(value);
+static CYTHON_INLINE PyObject* __Pyx_PyDict_Items(PyObject* d); /*proto*/
#else
- if (PyString_CheckExact(key) || PyUnicode_CheckExact(key) || PyInt_CheckExact(key)) {
- value = PyDict_GetItem(d, key);
- if (unlikely(!value)) {
- value = default_value;
- }
- Py_INCREF(value);
- } else {
- PyObject *m;
- m = __Pyx_GetAttrString(d, "get");
- if (!m) return NULL;
- value = PyObject_CallFunctionObjArgs(m, key,
- (default_value == Py_None) ? NULL : default_value, NULL);
- Py_DECREF(m);
- }
+#define __Pyx_PyDict_Items(d) PyDict_Items(d)
#endif
- return value;
-}
static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname);
#endif /* PyAnySet_CheckExact (<= Py2.4) */
#endif /* < Py2.5 */
-static CYTHON_INLINE int __Pyx_CheckKeywordStrings(PyObject *kwdict, const char* function_name, int kw_allowed); /*proto*/
+#if PY_MAJOR_VERSION >= 3
+static CYTHON_INLINE PyObject* __Pyx_PyDict_Values(PyObject* d); /*proto*/
+#else
+#define __Pyx_PyDict_Values(d) PyDict_Values(d)
+#endif
-static CYTHON_INLINE PyObject* __Pyx_tp_new(PyObject* type_obj) {
- return (PyObject*) (((PyTypeObject*)(type_obj))->tp_new(
- (PyTypeObject*)(type_obj), __pyx_empty_tuple, NULL));
-}
+static CYTHON_INLINE int __Pyx_CheckKeywordStrings(PyObject *kwdict, const char* function_name, int kw_allowed); /*proto*/
#define __Pyx_PyDict_Clear(d) (PyDict_Clear(d), 0)
static int __Pyx_ArgTypeTest(PyObject *obj, PyTypeObject *type, int none_allowed,
const char *name, int exact); /*proto*/
+static CYTHON_INLINE PyObject* __Pyx_PyObject_GetSlice(
+ PyObject* obj, Py_ssize_t cstart, Py_ssize_t cstop,
+ PyObject** py_start, PyObject** py_stop, PyObject** py_slice,
+ int has_cstart, int has_cstop, int wraparound);
+
static CYTHON_INLINE int __Pyx_PyDict_Contains(PyObject* item, PyObject* dict, int eq) {
int result = PyDict_Contains(dict, item);
return unlikely(result < 0) ? result : (result == (eq == Py_EQ));
static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb); /*proto*/
-#define __Pyx_DelItemInt(o, i, size, to_py_func) (((size) <= sizeof(Py_ssize_t)) ? \
- __Pyx_DelItemInt_Fast(o, i) : \
- __Pyx_DelItem_Generic(o, to_py_func(i)))
-static CYTHON_INLINE int __Pyx_DelItem_Generic(PyObject *o, PyObject *j) {
- int r;
- if (!j) return -1;
- r = PyObject_DelItem(o, j);
- Py_DECREF(j);
- return r;
-}
-static CYTHON_INLINE int __Pyx_DelItemInt_Fast(PyObject *o, Py_ssize_t i) {
-#if CYTHON_COMPILING_IN_PYPY
- if (PySequence_Check(o)) {
- return PySequence_DelItem(o, i);
- }
-#else
- PySequenceMethods *m = Py_TYPE(o)->tp_as_sequence;
- if (likely(m && m->sq_ass_item)) {
- if (unlikely(i < 0) && likely(m->sq_length)) {
- Py_ssize_t l = m->sq_length(o);
- if (unlikely(l < 0)) return -1;
- i += l;
- }
- return m->sq_ass_item(o, i, (PyObject *)NULL);
- }
-#endif
- return __Pyx_DelItem_Generic(o, PyInt_FromSsize_t(i));
-}
+#define __Pyx_DelItemInt(o, i, size, to_py_func, is_list, wraparound, boundscheck) \
+ (((size) <= sizeof(Py_ssize_t)) ? \
+ __Pyx_DelItemInt_Fast(o, i, is_list, wraparound) : \
+ __Pyx_DelItem_Generic(o, to_py_func(i)))
+static CYTHON_INLINE int __Pyx_DelItem_Generic(PyObject *o, PyObject *j);
+static CYTHON_INLINE int __Pyx_DelItemInt_Fast(PyObject *o, Py_ssize_t i,
+ CYTHON_UNUSED int is_list, int wraparound);
static void __Pyx_call_next_tp_dealloc(PyObject* obj, destructor current_tp_dealloc);
static void __Pyx_call_next_tp_clear(PyObject* obj, inquiry current_tp_dealloc);
+static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name); /*proto*/
+
#if !defined(__Pyx_PyIdentifier_FromString)
#if PY_MAJOR_VERSION < 3
#define __Pyx_PyIdentifier_FromString(s) PyString_FromString(s)
static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level); /*proto*/
-static CYTHON_INLINE void __Pyx_RaiseImportError(PyObject *name);
-
static CYTHON_INLINE unsigned char __Pyx_PyInt_AsUnsignedChar(PyObject *);
static CYTHON_INLINE unsigned short __Pyx_PyInt_AsUnsignedShort(PyObject *);
static PyObject *__pyx_pf_4lxml_9objectify_10ObjectPath_10setattr(struct __pyx_obj_4lxml_9objectify_ObjectPath *__pyx_v_self, struct LxmlElement *__pyx_v_root, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_4lxml_9objectify_10ObjectPath_12addattr(struct __pyx_obj_4lxml_9objectify_ObjectPath *__pyx_v_self, struct LxmlElement *__pyx_v_root, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_4lxml_9objectify_10ObjectPath_4find___get__(struct __pyx_obj_4lxml_9objectify_ObjectPath *__pyx_v_self); /* proto */
+static PyObject *__pyx_tp_new_4lxml_9objectify_PyType(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_9objectify_ObjectifiedElement(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_9objectify_ObjectifiedDataElement(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_9objectify_NumberElement(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_9objectify_IntElement(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_9objectify_LongElement(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_9objectify_FloatElement(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_9objectify_StringElement(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_9objectify_NoneElement(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_9objectify_BoolElement(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_9objectify__ObjectifyElementMakerCaller(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_9objectify_ElementMaker(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_9objectify_ObjectifyElementClassLookup(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_9objectify_ObjectPath(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static char __pyx_k_1[] = "http://codespeak.net/lxml/objectify/pytype";
static char __pyx_k_2[] = "ElementChildIterator";
static char __pyx_k_3[] = "";
static char __pyx_k_7[] = "deleting items not supported by root element";
static char __pyx_k_8[] = ".";
static char __pyx_k_9[] = "no such child: ";
-static char __pyx_k_10[] = "Invalid slice";
-static char __pyx_k_11[] = "attempt to assign sequence of size %d to extended slice of size %d";
-static char __pyx_k_12[] = "invalid types for * operator";
-static char __pyx_k_13[] = "Invalid boolean value: '%s'";
-static char __pyx_k_15[] = "Type name must be a string";
-static char __pyx_k_16[] = "Type check function must be callable (or None)";
-static char __pyx_k_17[] = "Data classes must inherit from ObjectifiedDataElement";
-static char __pyx_k_18[] = "PyType(%s, %s)";
-static char __pyx_k_19[] = "Cannot register tree type";
-static char __pyx_k_20[] = "inconsistent before/after dependencies";
-static char __pyx_k_26[] = "{%s}";
-static char __pyx_k_27[] = "{";
- static char __pyx_k_29[] = " ";
- static char __pyx_k_30[] = "%s%s = %s [%s]\n";
- static char __pyx_k_31[] = "py:";
- static char __pyx_k_32[] = "xsi:";
- static char __pyx_k_33[] = "%s * %s = %r\n";
- static char __pyx_k_34[] = "__unpickleElementTree";
- static char __pyx_k_35[] = ":";
- static char __pyx_k_45[] = "parser must inherit from lxml.etree.XMLParser";
- static char __pyx_k_46[] = "set_element_class_lookup";
- static char __pyx_k_48[] = "XSD types require the XSD namespace";
- static char __pyx_k_49[] = "xsd:";
- static char __pyx_k_50[] = "invalid number of arguments: needs one or two";
- static char __pyx_k_51[] = "index not allowed on root node";
- static char __pyx_k_52[] = "invalid path";
- static char __pyx_k_53[] = "index must be enclosed in []";
- static char __pyx_k_54[] = "root element does not match: need %s, got %s";
- static char __pyx_k_55[] = "cannot update root node";
- static char __pyx_k_56[] = "creating indexed path attributes is not supported";
- static char __pyx_k_57[] = "{}";
- static char __pyx_k_58[] = "[%d]";
- static char __pyx_k_59[] = "The list of XML Schema datatypes this Python type maps to.\n\n Note that this must be set before registering the type!\n ";
- static char __pyx_k_60[] = "A fake implementation for __dict__ to support dir() etc.\n\n Note that this only considers the first child with a given name.\n ";
- static char __pyx_k_61[] = "The ``lxml.objectify`` module implements a Python object API for\nXML. It is based on `lxml.etree`.\n";
- static char __pyx_k_62[] = "ObjectifiedDataElement";
- static char __pyx_k_63[] = "ObjectifyElementClassLookup";
- static char __pyx_k_64[] = "enable_recursive_str";
- static char __pyx_k_65[] = "set_pytype_attribute_tag";
- static char __pyx_k_66[] = "__.*__$";
- static char __pyx_k_70[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx";
- static char __pyx_k_71[] = "lxml.objectify";
- static char __pyx_k_72[] = "http://www.w3.org/2001/XMLSchema";
- static char __pyx_k_73[] = "http://www.w3.org/2001/XMLSchema-instance";
- static char __pyx_k_74[] = "{%s}nil";
- static char __pyx_k_75[] = "{%s}type";
- static char __pyx_k_92[] = "pickleReduceElementTree";
+static char __pyx_k_11[] = "Invalid slice";
+static char __pyx_k_12[] = "attempt to assign sequence of size %d to extended slice of size %d";
+static char __pyx_k_13[] = "invalid types for * operator";
+static char __pyx_k_14[] = "Invalid boolean value: '%s'";
+static char __pyx_k_16[] = "Type name must be a string";
+static char __pyx_k_17[] = "Type check function must be callable (or None)";
+static char __pyx_k_18[] = "Data classes must inherit from ObjectifiedDataElement";
+static char __pyx_k_19[] = "PyType(%s, %s)";
+static char __pyx_k_20[] = "Cannot register tree type";
+static char __pyx_k_21[] = "inconsistent before/after dependencies";
+static char __pyx_k_27[] = "{%s}";
+static char __pyx_k_28[] = "{";
+ static char __pyx_k_30[] = " ";
+ static char __pyx_k_31[] = "%s%s = %s [%s]\n";
+ static char __pyx_k_32[] = "py:";
+ static char __pyx_k_33[] = "xsi:";
+ static char __pyx_k_34[] = "%s * %s = %r\n";
+ static char __pyx_k_36[] = "__unpickleElementTree";
+ static char __pyx_k_37[] = ":";
+ static char __pyx_k_47[] = "parser must inherit from lxml.etree.XMLParser";
+ static char __pyx_k_48[] = "set_element_class_lookup";
+ static char __pyx_k_50[] = "XSD types require the XSD namespace";
+ static char __pyx_k_51[] = "xsd:";
+ static char __pyx_k_52[] = "invalid number of arguments: needs one or two";
+ static char __pyx_k_53[] = "index not allowed on root node";
+ static char __pyx_k_54[] = "invalid path";
+ static char __pyx_k_55[] = "index must be enclosed in []";
+ static char __pyx_k_56[] = "root element does not match: need %s, got %s";
+ static char __pyx_k_57[] = "cannot update root node";
+ static char __pyx_k_58[] = "creating indexed path attributes is not supported";
+ static char __pyx_k_59[] = "{}";
+ static char __pyx_k_60[] = "[%d]";
+ static char __pyx_k_61[] = "The list of XML Schema datatypes this Python type maps to.\n\n Note that this must be set before registering the type!\n ";
+ static char __pyx_k_62[] = "A fake implementation for __dict__ to support dir() etc.\n\n Note that this only considers the first child with a given name.\n ";
+ static char __pyx_k_63[] = "The ``lxml.objectify`` module implements a Python object API for\nXML. It is based on `lxml.etree`.\n";
+ static char __pyx_k_64[] = "ObjectifiedDataElement";
+ static char __pyx_k_65[] = "ObjectifyElementClassLookup";
+ static char __pyx_k_66[] = "enable_recursive_str";
+ static char __pyx_k_67[] = "set_pytype_attribute_tag";
+ static char __pyx_k_68[] = "__.*__$";
+ static char __pyx_k_72[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx";
+ static char __pyx_k_73[] = "lxml.objectify";
+ static char __pyx_k_74[] = "http://www.w3.org/2001/XMLSchema";
+ static char __pyx_k_75[] = "http://www.w3.org/2001/XMLSchema-instance";
+ static char __pyx_k_76[] = "{%s}nil";
+ static char __pyx_k_77[] = "{%s}type";
+ static char __pyx_k_94[] = "pickleReduceElementTree";
static char __pyx_k__0[] = "0";
static char __pyx_k__1[] = "1";
static char __pyx_k__E[] = "E";
static char __pyx_k__b[] = "b";
static char __pyx_k__f[] = "f";
static char __pyx_k__s[] = "s";
-static char __pyx_k_115[] = "(\\.?)\\s*(?:\\{([^}]*)\\})?\\s*([^.{}\\[\\]\\s]+)\\s*(?:\\[\\s*([-0-9]+)\\s*\\])?";
+static char __pyx_k_117[] = "(\\.?)\\s*(?:\\{([^}]*)\\})?\\s*([^.{}\\[\\]\\s]+)\\s*(?:\\[\\s*([-0-9]+)\\s*\\])?";
static char __pyx_k__ID[] = "ID";
static char __pyx_k__kw[] = "kw";
static char __pyx_k__ns[] = "ns";
static char __pyx_k__string[] = "string";
static char __pyx_k__strval[] = "strval";
static char __pyx_k__update[] = "update";
+static char __pyx_k__values[] = "values";
static char __pyx_k__Element[] = "Element";
static char __pyx_k__NMTOKEN[] = "NMTOKEN";
static char __pyx_k____all__[] = "__all__";
static char __pyx_k__ObjectPath[] = "ObjectPath";
static char __pyx_k__SubElement[] = "SubElement";
static char __pyx_k__ValueError[] = "ValueError";
+static char __pyx_k____import__[] = "__import__";
static char __pyx_k__deannotate[] = "deannotate";
static char __pyx_k__empty_type[] = "empty_type";
static char __pyx_k__fromstring[] = "fromstring";
static char __pyx_k__nonPositiveInteger[] = "nonPositiveInteger";
static char __pyx_k__set_default_parser[] = "set_default_parser";
static PyObject *__pyx_kp_u_1;
-static PyObject *__pyx_kp_u_10;
static PyObject *__pyx_kp_u_11;
-static PyObject *__pyx_kp_u_115;
+static PyObject *__pyx_kp_u_117;
static PyObject *__pyx_kp_u_12;
static PyObject *__pyx_kp_u_13;
-static PyObject *__pyx_kp_u_15;
+static PyObject *__pyx_kp_u_14;
static PyObject *__pyx_kp_u_16;
static PyObject *__pyx_kp_u_17;
static PyObject *__pyx_kp_u_18;
static PyObject *__pyx_kp_u_19;
static PyObject *__pyx_n_s_2;
static PyObject *__pyx_kp_u_20;
-static PyObject *__pyx_kp_u_26;
+static PyObject *__pyx_kp_u_21;
static PyObject *__pyx_kp_u_27;
-static PyObject *__pyx_kp_u_29;
+static PyObject *__pyx_kp_u_28;
static PyObject *__pyx_kp_u_3;
static PyObject *__pyx_kp_u_30;
static PyObject *__pyx_kp_u_31;
static PyObject *__pyx_kp_u_32;
static PyObject *__pyx_kp_u_33;
-static PyObject *__pyx_n_s_34;
-static PyObject *__pyx_kp_b_35;
-static PyObject *__pyx_kp_u_35;
+static PyObject *__pyx_kp_u_34;
+static PyObject *__pyx_n_s_36;
+static PyObject *__pyx_kp_b_37;
+static PyObject *__pyx_kp_u_37;
static PyObject *__pyx_kp_u_4;
-static PyObject *__pyx_kp_u_45;
-static PyObject *__pyx_n_s_46;
-static PyObject *__pyx_kp_u_48;
-static PyObject *__pyx_kp_u_49;
+static PyObject *__pyx_kp_u_47;
+static PyObject *__pyx_n_s_48;
static PyObject *__pyx_kp_u_5;
static PyObject *__pyx_kp_u_50;
static PyObject *__pyx_kp_u_51;
static PyObject *__pyx_kp_u_56;
static PyObject *__pyx_kp_u_57;
static PyObject *__pyx_kp_u_58;
+static PyObject *__pyx_kp_u_59;
static PyObject *__pyx_kp_u_6;
-static PyObject *__pyx_n_u_62;
-static PyObject *__pyx_n_u_63;
-static PyObject *__pyx_n_s_64;
+static PyObject *__pyx_kp_u_60;
static PyObject *__pyx_n_u_64;
-static PyObject *__pyx_n_s_65;
static PyObject *__pyx_n_u_65;
-static PyObject *__pyx_kp_u_66;
+static PyObject *__pyx_n_s_66;
+static PyObject *__pyx_n_u_66;
+static PyObject *__pyx_n_s_67;
+static PyObject *__pyx_n_u_67;
+static PyObject *__pyx_kp_u_68;
static PyObject *__pyx_kp_u_7;
-static PyObject *__pyx_kp_s_70;
-static PyObject *__pyx_n_s_71;
-static PyObject *__pyx_kp_u_72;
-static PyObject *__pyx_kp_u_73;
+static PyObject *__pyx_kp_s_72;
+static PyObject *__pyx_n_s_73;
static PyObject *__pyx_kp_u_74;
static PyObject *__pyx_kp_u_75;
+static PyObject *__pyx_kp_u_76;
+static PyObject *__pyx_kp_u_77;
static PyObject *__pyx_kp_u_8;
static PyObject *__pyx_kp_u_9;
-static PyObject *__pyx_n_s_92;
+static PyObject *__pyx_n_s_94;
static PyObject *__pyx_kp_u__0;
static PyObject *__pyx_kp_u__1;
static PyObject *__pyx_n_s__AttributeError;
static PyObject *__pyx_n_s____copy__;
static PyObject *__pyx_n_s____getattr__;
static PyObject *__pyx_n_s____getitem__;
+static PyObject *__pyx_n_s____import__;
static PyObject *__pyx_n_s____lower_bool;
static PyObject *__pyx_n_s____main__;
static PyObject *__pyx_n_s____name__;
static PyObject *__pyx_n_s__update;
static PyObject *__pyx_n_s__value;
static PyObject *__pyx_n_u__value;
+static PyObject *__pyx_n_s__values;
static PyObject *__pyx_n_s__xml;
static PyObject *__pyx_n_s__xmlSchemaTypes;
static PyObject *__pyx_n_u__xsd;
static PyObject *__pyx_int_0;
static PyObject *__pyx_int_1;
static PyObject *__pyx_int_neg_1;
-static PyObject *__pyx_k_25;
-static PyObject *__pyx_k_28;
-static PyObject *__pyx_k_37;
-static PyObject *__pyx_k_38;
+static PyObject *__pyx_k_26;
+static PyObject *__pyx_k_29;
static PyObject *__pyx_k_39;
static PyObject *__pyx_k_40;
static PyObject *__pyx_k_41;
static PyObject *__pyx_k_42;
-static PyObject *__pyx_k_tuple_14;
-static PyObject *__pyx_k_tuple_21;
+static PyObject *__pyx_k_43;
+static PyObject *__pyx_k_44;
+static PyObject *__pyx_k_slice_10;
+static PyObject *__pyx_k_slice_35;
+static PyObject *__pyx_k_tuple_15;
static PyObject *__pyx_k_tuple_22;
static PyObject *__pyx_k_tuple_23;
static PyObject *__pyx_k_tuple_24;
-static PyObject *__pyx_k_tuple_36;
-static PyObject *__pyx_k_tuple_43;
-static PyObject *__pyx_k_tuple_44;
-static PyObject *__pyx_k_tuple_47;
-static PyObject *__pyx_k_tuple_67;
-static PyObject *__pyx_k_tuple_68;
-static PyObject *__pyx_k_tuple_76;
+static PyObject *__pyx_k_tuple_25;
+static PyObject *__pyx_k_tuple_38;
+static PyObject *__pyx_k_tuple_45;
+static PyObject *__pyx_k_tuple_46;
+static PyObject *__pyx_k_tuple_49;
+static PyObject *__pyx_k_tuple_69;
+static PyObject *__pyx_k_tuple_70;
static PyObject *__pyx_k_tuple_78;
static PyObject *__pyx_k_tuple_80;
static PyObject *__pyx_k_tuple_82;
static PyObject *__pyx_k_tuple_86;
static PyObject *__pyx_k_tuple_88;
static PyObject *__pyx_k_tuple_90;
-static PyObject *__pyx_k_tuple_93;
+static PyObject *__pyx_k_tuple_92;
static PyObject *__pyx_k_tuple_95;
static PyObject *__pyx_k_tuple_97;
static PyObject *__pyx_k_tuple_99;
static PyObject *__pyx_k_tuple_109;
static PyObject *__pyx_k_tuple_111;
static PyObject *__pyx_k_tuple_113;
-static PyObject *__pyx_k_tuple_116;
-static PyObject *__pyx_k_codeobj_69;
-static PyObject *__pyx_k_codeobj_77;
+static PyObject *__pyx_k_tuple_115;
+static PyObject *__pyx_k_tuple_118;
+static PyObject *__pyx_k_codeobj_71;
static PyObject *__pyx_k_codeobj_79;
static PyObject *__pyx_k_codeobj_81;
static PyObject *__pyx_k_codeobj_83;
static PyObject *__pyx_k_codeobj_87;
static PyObject *__pyx_k_codeobj_89;
static PyObject *__pyx_k_codeobj_91;
-static PyObject *__pyx_k_codeobj_94;
+static PyObject *__pyx_k_codeobj_93;
static PyObject *__pyx_k_codeobj_96;
static PyObject *__pyx_k_codeobj_98;
static PyObject *__pyx_k_codeobj_100;
static PyObject *__pyx_k_codeobj_110;
static PyObject *__pyx_k_codeobj_112;
static PyObject *__pyx_k_codeobj_114;
+static PyObject *__pyx_k_codeobj_116;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":42
* cdef object is_special_method = re.compile(u'__.*__$').match
static PyMethodDef __pyx_mdef_4lxml_9objectify_1set_pytype_attribute_tag = {__Pyx_NAMESTR("set_pytype_attribute_tag"), (PyCFunction)__pyx_pw_4lxml_9objectify_1set_pytype_attribute_tag, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_9objectify_set_pytype_attribute_tag)};
static PyObject *__pyx_pw_4lxml_9objectify_1set_pytype_attribute_tag(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_attribute_tag = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("set_pytype_attribute_tag (wrapper)", 0);
* _PYTYPE_ATTRIBUTE_NAME = PYTYPE_ATTRIBUTE_NAME_UTF8
* PYTYPE_ATTRIBUTE = cetree.namespacedNameFromNsName(
*/
- __pyx_t_7 = __Pyx_PyBytes_AsUString(((PyObject *)__pyx_v_4lxml_9objectify_PYTYPE_NAMESPACE_UTF8)); if (unlikely((!__pyx_t_7) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = __Pyx_PyObject_AsUString(((PyObject *)__pyx_v_4lxml_9objectify_PYTYPE_NAMESPACE_UTF8)); if (unlikely((!__pyx_t_7) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_v_4lxml_9objectify__PYTYPE_NAMESPACE = __pyx_t_7;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":93
* PYTYPE_ATTRIBUTE = cetree.namespacedNameFromNsName(
* _PYTYPE_NAMESPACE, _PYTYPE_ATTRIBUTE_NAME)
*/
- __pyx_t_7 = __Pyx_PyBytes_AsUString(((PyObject *)__pyx_v_4lxml_9objectify_PYTYPE_ATTRIBUTE_NAME_UTF8)); if (unlikely((!__pyx_t_7) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = __Pyx_PyObject_AsUString(((PyObject *)__pyx_v_4lxml_9objectify_PYTYPE_ATTRIBUTE_NAME_UTF8)); if (unlikely((!__pyx_t_7) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_v_4lxml_9objectify__PYTYPE_ATTRIBUTE_NAME = __pyx_t_7;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":95
*/
__pyx_t_2 = namespacedNameFromNsName(__pyx_v_4lxml_9objectify__PYTYPE_NAMESPACE, __pyx_v_4lxml_9objectify__PYTYPE_ATTRIBUTE_NAME); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__PYTYPE_ATTRIBUTE, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__PYTYPE_ATTRIBUTE, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
* if parent is None:
* return iter([self])
*/
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__getparent); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__getparent); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
* def __str__(self):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = PyObject_GetAttr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__Pyx_GIVEREF(__pyx_v_parent);
__pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_4));
- __pyx_t_5 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__tag); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__tag); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__tag), __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
* property text:
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__fromstring); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__fromstring); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_2 = PyObject_GetAttr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s__tostring); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s__tostring); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
* if c_ns is NULL and tree._getNs(child._c_node) is not NULL:
* continue
*/
- __pyx_t_1 = PyObject_GetAttr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_4 = ((PyObject *)elementFactory(((struct LxmlDocument *)__pyx_t_1), __pyx_v_c_node)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- __pyx_t_5 = PyList_Append(__pyx_v_result, __pyx_t_4); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_4); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
goto __pyx_L5;
}
*
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_2 = PyObject_GetAttr(__pyx_builtin_object, __pyx_n_s____getattr__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_builtin_object, __pyx_n_s____getattr__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
* return
* elif tag == u'base':
*/
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)((PyObject*)__pyx_ptype_4lxml_8includes_11etreepublic_ElementBase)), __pyx_n_s__tag); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 236; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)((PyObject*)__pyx_ptype_4lxml_8includes_11etreepublic_ElementBase)), __pyx_n_s__tag); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 236; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_5 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s____set__); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 236; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s____set__); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 236; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 236; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
* return
* tag = _buildChildTag(self, tag)
*/
- __pyx_t_7 = PyObject_GetAttr(((PyObject *)((PyObject*)__pyx_ptype_4lxml_8includes_11etreepublic_ElementBase)), __pyx_n_s__base); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 239; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)((PyObject*)__pyx_ptype_4lxml_8includes_11etreepublic_ElementBase)), __pyx_n_s__base); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 239; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
- __pyx_t_1 = PyObject_GetAttr(__pyx_t_7, __pyx_n_s____set__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 239; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s____set__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 239; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 239; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
*
* def addattr(self, tag, value):
*/
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__remove); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 250; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__remove); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 250; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 250; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
static PyObject *__pyx_pw_4lxml_9objectify_18ObjectifiedElement_19addattr(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_tag = 0;
PyObject *__pyx_v_value = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("addattr (wrapper)", 0);
* if parent is None:
* raise TypeError, u"deleting items not supported by root element"
*/
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__getparent); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 346; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__getparent); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 346; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 346; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
* for el in del_items:
* remove(el)
*/
- __pyx_t_2 = PyObject_GetAttr(__pyx_v_parent, __pyx_n_s__remove); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 352; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_parent, __pyx_n_s__remove); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 352; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_v_remove = __pyx_t_2;
__pyx_t_2 = 0;
* parent.remove(sibling)
*
*/
- __pyx_t_2 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s____getitem__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 357; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s____getitem__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 357; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 357; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
*
* def descendantpaths(self, prefix=None):
*/
- __pyx_t_1 = PyObject_GetAttr(__pyx_v_parent, __pyx_n_s__remove); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 358; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_parent, __pyx_n_s__remove); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 358; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 358; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
static char __pyx_doc_4lxml_9objectify_18ObjectifiedElement_26descendantpaths[] = "descendantpaths(self, prefix=None)\n\n Returns a list of object path expressions for all descendants.\n ";
static PyObject *__pyx_pw_4lxml_9objectify_18ObjectifiedElement_27descendantpaths(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_prefix = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("descendantpaths (wrapper)", 0);
* elif isinstance(value, (list, tuple)):
* element[:] = value
*/
- __pyx_t_3 = PyObject_GetAttr(((PyObject *)__pyx_v_element), __pyx_n_s__tag); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 455; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_element), __pyx_n_s__tag); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 455; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
- if (PyObject_SetAttr(((PyObject *)__pyx_v_new_element), __pyx_n_s__tag, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 455; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_new_element), __pyx_n_s__tag, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 455; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
goto __pyx_L3;
}
* return
* else:
*/
- if (__Pyx_PySequence_SetSlice(((PyObject *)__pyx_v_element), 0, PY_SSIZE_T_MAX, __pyx_v_value) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 457; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__Pyx_PyObject_SetSlice(((PyObject *)__pyx_v_element), __pyx_v_value, 0, 0, NULL, NULL, &__pyx_k_slice_10, 0, 0, 1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 457; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":458
* elif isinstance(value, (list, tuple)):
* _setElementValue(new_element, value)
* element.getparent().replace(element, new_element)
*/
- __pyx_t_3 = PyObject_GetAttr(((PyObject *)__pyx_v_element), __pyx_n_s__makeelement); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 460; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_element), __pyx_n_s__makeelement); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 460; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_2 = PyObject_GetAttr(((PyObject *)__pyx_v_element), __pyx_n_s__tag); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 460; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_element), __pyx_n_s__tag); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 460; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 460; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
*
* cdef _appendValue(_Element parent, tag, value):
*/
- __pyx_t_2 = PyObject_GetAttr(((PyObject *)__pyx_v_element), __pyx_n_s__getparent); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 462; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_element), __pyx_n_s__getparent); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 462; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_6 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 462; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- __pyx_t_2 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__replace); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 462; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s__replace); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 462; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 462; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
* cetree.appendChild(parent, new_element)
* elif isinstance(value, (list, tuple)):
*/
- if (PyObject_SetAttr(((PyObject *)__pyx_v_new_element), __pyx_n_s__tag, __pyx_v_tag) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 470; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_new_element), __pyx_n_s__tag, __pyx_v_tag) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 470; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":471
* parent._doc, (<_Element>value)._c_node)
* else:
* cetree.delAttributeFromNsName(
*/
- __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__PYTYPE_ATTRIBUTE); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 503; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__PYTYPE_ATTRIBUTE); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 503; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = setAttributeValue(__pyx_v_element, __pyx_t_2, __pyx_v_pytype_name); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 503; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
* del_items = target[sliceobject]
*
*/
- __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_10), 0, 0);
+ __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_11), 0, 0);
{__pyx_filename = __pyx_f[0]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L4;
}
* for item in items:
* if isinstance(item, _Element):
*/
- __pyx_t_3 = PyObject_GetAttr(((PyObject *)__pyx_v_target), __pyx_n_s__tag); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 525; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_target), __pyx_n_s__tag); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 525; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__pyx_v_tag = __pyx_t_3;
__pyx_t_3 = 0;
* else:
* new_element = cetree.makeElement(
*/
- if (PyObject_SetAttr(((PyObject *)__pyx_v_new_element), __pyx_n_s__tag, __pyx_v_tag) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 531; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_new_element), __pyx_n_s__tag, __pyx_v_tag) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 531; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L7;
}
/*else*/ {
*
* # sanity check - raise what a list would raise
*/
- __pyx_t_7 = PyList_Append(__pyx_v_new_items, ((PyObject *)__pyx_v_new_element)); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 536; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_new_items, ((PyObject *)__pyx_v_new_element)); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 536; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_GIVEREF(__pyx_t_5);
__pyx_t_3 = 0;
__pyx_t_5 = 0;
- __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_11), ((PyObject *)__pyx_t_6)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 542; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_12), ((PyObject *)__pyx_t_6)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 542; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_5));
__Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
__Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_5), 0, 0);
* replace = parent.replace
* while pos < python.PyList_GET_SIZE(new_items) and \
*/
- __pyx_t_5 = PyObject_GetAttr(((PyObject *)__pyx_v_target), __pyx_n_s__getparent); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 548; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_target), __pyx_n_s__getparent); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 548; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_6 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 548; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
* while pos < python.PyList_GET_SIZE(new_items) and \
* pos < python.PyList_GET_SIZE(del_items):
*/
- __pyx_t_6 = PyObject_GetAttr(((PyObject *)__pyx_v_parent), __pyx_n_s__replace); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 549; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_parent), __pyx_n_s__replace); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 549; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
__pyx_v_replace = __pyx_t_6;
__pyx_t_6 = 0;
* pos += 1
* # remove leftover items
*/
- __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_del_items, __pyx_v_pos, sizeof(Py_ssize_t), PyInt_FromSsize_t); if (!__pyx_t_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 552; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_del_items, __pyx_v_pos, sizeof(Py_ssize_t), PyInt_FromSsize_t, 0, 1, 1); if (!__pyx_t_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 552; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
- __pyx_t_5 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_new_items), __pyx_v_pos, sizeof(Py_ssize_t), PyInt_FromSsize_t); if (!__pyx_t_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 552; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_new_items), __pyx_v_pos, sizeof(Py_ssize_t), PyInt_FromSsize_t, 1, 1, 1); if (!__pyx_t_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 552; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 552; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
* while pos < python.PyList_GET_SIZE(del_items):
* remove(del_items[pos])
*/
- __pyx_t_5 = PyObject_GetAttr(((PyObject *)__pyx_v_parent), __pyx_n_s__remove); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 556; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_parent), __pyx_n_s__remove); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 556; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
__pyx_v_remove = __pyx_t_5;
__pyx_t_5 = 0;
* pos += 1
* # append remaining new items
*/
- __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_del_items, __pyx_v_pos, sizeof(Py_ssize_t), PyInt_FromSsize_t); if (!__pyx_t_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 558; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_del_items, __pyx_v_pos, sizeof(Py_ssize_t), PyInt_FromSsize_t, 0, 1, 1); if (!__pyx_t_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 558; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 558; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
* if (<slice>sliceobject).start > 0:
*/
__pyx_t_2 = (__pyx_v_pos - 1);
- __pyx_t_5 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_new_items), __pyx_t_2, sizeof(Py_ssize_t), PyInt_FromSsize_t); if (!__pyx_t_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 564; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_new_items), __pyx_t_2, sizeof(Py_ssize_t), PyInt_FromSsize_t, 1, 1, 1); if (!__pyx_t_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 564; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_v_item);
__pyx_v_item = __pyx_t_5;
* pos += 1
* return
*/
- __pyx_t_5 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_new_items), __pyx_v_pos, sizeof(Py_ssize_t), PyInt_FromSsize_t); if (!__pyx_t_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 575; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_new_items), __pyx_v_pos, sizeof(Py_ssize_t), PyInt_FromSsize_t, 1, 1, 1); if (!__pyx_t_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 575; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_4lxml_8includes_11etreepublic__Element))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 575; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
appendChild(__pyx_v_parent, ((struct LxmlElement *)__pyx_t_5));
* item = new_items[pos]
* add(item)
*/
- __pyx_t_3 = PyObject_GetAttr(__pyx_v_item, __pyx_n_s__addnext); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 580; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_item, __pyx_n_s__addnext); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 580; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_v_add);
__pyx_v_add = __pyx_t_3;
* add(item)
* pos += 1
*/
- __pyx_t_3 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_new_items), __pyx_v_pos, sizeof(Py_ssize_t), PyInt_FromSsize_t); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 581; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_new_items), __pyx_v_pos, sizeof(Py_ssize_t), PyInt_FromSsize_t, 1, 1, 1); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 581; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_v_item);
__pyx_v_item = __pyx_t_3;
*
* def __mod__(self, other):
*/
- __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_12), 0, 0);
+ __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_13), 0, 0);
{__pyx_filename = __pyx_f[0]; __pyx_lineno = 765; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
__pyx_L3:;
*
* def __nonzero__(self):
*/
- __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s____parseBool); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 814; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s____parseBool); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 814; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GIVEREF(__pyx_t_1);
__Pyx_GOTREF(__pyx_v_self->__pyx_base.__pyx_base._parse_value);
* return <bint>value
*
*/
- __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_13), __pyx_v_s); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 848; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_14), __pyx_v_s); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 848; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_2));
__Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_2), 0, 0);
__Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
*
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_2 = PyObject_GetAttr(__pyx_v_obj, __pyx_n_s__pyval); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 879; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_obj, __pyx_n_s__pyval); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 879; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_r = __pyx_t_2;
__pyx_t_2 = 0;
PyObject *__pyx_v_type_check = 0;
PyObject *__pyx_v_type_class = 0;
PyObject *__pyx_v_stringify = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
* elif not isinstance(name, unicode):
* raise TypeError, u"Type name must be a string"
*/
- __pyx_t_2 = PyObject_GetAttr(__pyx_v_name, __pyx_n_s__encode); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 915; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_name, __pyx_n_s__encode); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 915; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_14), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 915; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_15), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 915; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_v_name);
* if type_check is not None and not callable(type_check):
* raise TypeError, u"Type check function must be callable (or None)"
*/
- __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_15), 0, 0);
+ __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_16), 0, 0);
{__pyx_filename = __pyx_f[0]; __pyx_lineno = 917; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L3;
}
* if name != TREE_PYTYPE_NAME and \
* not issubclass(type_class, ObjectifiedDataElement):
*/
- __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_16), 0, 0);
+ __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_17), 0, 0);
{__pyx_filename = __pyx_f[0]; __pyx_lineno = 919; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L4;
}
* u"Data classes must inherit from ObjectifiedDataElement"
* self.name = name
*/
- __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_17), 0, 0);
+ __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_18), 0, 0);
{__pyx_filename = __pyx_f[0]; __pyx_lineno = 922; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L5;
}
* def register(self, before=None, after=None):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = PyObject_GetAttr(__pyx_v_self->_type, __pyx_n_s____name__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 933; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_type, __pyx_n_s____name__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 933; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 933; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
- __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_18), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 933; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_19), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 933; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_1));
__Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
__pyx_r = ((PyObject *)__pyx_t_1);
static PyObject *__pyx_pw_4lxml_9objectify_6PyType_5register(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_before = 0;
PyObject *__pyx_v_after = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("register (wrapper)", 0);
* if self.type_check is not None:
* for item in _TYPE_CHECKS:
*/
- __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_19), 0, 0);
+ __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_20), 0, 0);
{__pyx_filename = __pyx_f[0]; __pyx_lineno = 946; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L3;
}
* _TYPE_CHECKS.remove(item)
* break
*/
- __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_item, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 949; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_item, 0, sizeof(long), PyInt_FromLong, 0, 0, 1); if (!__pyx_t_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 949; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_2 = (__pyx_t_4 == __pyx_v_self->type_check);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
* break
* entry = (self.type_check, self)
*/
- __pyx_t_4 = PyObject_GetAttr(((PyObject *)__pyx_v_4lxml_9objectify__TYPE_CHECKS), __pyx_n_s__remove); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 950; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_4lxml_9objectify__TYPE_CHECKS), __pyx_n_s__remove); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 950; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 950; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 961; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
if (__pyx_t_8) {
- __pyx_t_5 = PyObject_GetAttr(__pyx_v_pytype, __pyx_n_s__name); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 961; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_pytype, __pyx_n_s__name); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 961; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_2 = (__Pyx_PySequence_Contains(__pyx_t_5, __pyx_v_before, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 961; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
* first_pos = i+1
* if last_pos == -1:
*/
- __pyx_t_5 = PyObject_GetAttr(__pyx_v_pytype, __pyx_n_s__name); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 963; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_pytype, __pyx_n_s__name); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 963; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_7 = (__Pyx_PySequence_Contains(__pyx_t_5, __pyx_v_after, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 963; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append");
{__pyx_filename = __pyx_f[0]; __pyx_lineno = 966; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
- __pyx_t_12 = PyList_Append(__pyx_v_4lxml_9objectify__TYPE_CHECKS, ((PyObject *)__pyx_v_entry)); if (unlikely(__pyx_t_12 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 966; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_12 = __Pyx_PyList_Append(__pyx_v_4lxml_9objectify__TYPE_CHECKS, ((PyObject *)__pyx_v_entry)); if (unlikely(__pyx_t_12 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 966; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L16;
}
* else:
* _TYPE_CHECKS.insert(last_pos, entry)
*/
- __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_20), 0, 0);
+ __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_21), 0, 0);
{__pyx_filename = __pyx_f[0]; __pyx_lineno = 968; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L16;
}
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "items");
{__pyx_filename = __pyx_f[0]; __pyx_lineno = 980; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
- __pyx_t_1 = PyDict_Items(__pyx_v_4lxml_9objectify__SCHEMA_TYPE_DICT); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 980; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyDict_Items(__pyx_v_4lxml_9objectify__SCHEMA_TYPE_DICT); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 980; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 980; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
* except ValueError:
* pass
*/
- __pyx_t_3 = PyObject_GetAttr(((PyObject *)__pyx_v_4lxml_9objectify__TYPE_CHECKS), __pyx_n_s__remove); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 986; __pyx_clineno = __LINE__; goto __pyx_L10_error;}
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_4lxml_9objectify__TYPE_CHECKS), __pyx_n_s__remove); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 986; __pyx_clineno = __LINE__; goto __pyx_L10_error;}
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 986; __pyx_clineno = __LINE__; goto __pyx_L10_error;}
__Pyx_GOTREF(__pyx_t_1);
* u"unsignedByte", u"nonPositiveInteger",
* u"negativeInteger", u"long", u"nonNegativeInteger",
*/
- if (PyObject_SetAttr(((PyObject *)__pyx_v_pytype), __pyx_n_s__xmlSchemaTypes, ((PyObject *)__pyx_k_tuple_21)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1034; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_pytype), __pyx_n_s__xmlSchemaTypes, ((PyObject *)__pyx_k_tuple_22)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1034; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1038
* u"negativeInteger", u"long", u"nonNegativeInteger",
*
* # 'long' type just for backwards compatibility
*/
- __pyx_t_2 = PyObject_GetAttr(((PyObject *)__pyx_v_pytype), __pyx_n_s__register); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1038; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_pytype), __pyx_n_s__register); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1038; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1038; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
*
* pytype = PyType(u'float', float, FloatElement)
*/
- __pyx_t_2 = PyObject_GetAttr(((PyObject *)__pyx_v_pytype), __pyx_n_s__register); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1042; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_pytype), __pyx_n_s__register); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1042; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1042; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
* pytype.register()
*
*/
- if (PyObject_SetAttr(((PyObject *)__pyx_v_pytype), __pyx_n_s__xmlSchemaTypes, ((PyObject *)__pyx_k_tuple_22)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1045; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_pytype), __pyx_n_s__xmlSchemaTypes, ((PyObject *)__pyx_k_tuple_23)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1045; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1046
* pytype = PyType(u'float', float, FloatElement)
*
* pytype = PyType(u'bool', __checkBool, BoolElement, __lower_bool)
*/
- __pyx_t_2 = PyObject_GetAttr(((PyObject *)__pyx_v_pytype), __pyx_n_s__register); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1046; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_pytype), __pyx_n_s__register); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1046; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1046; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
* pytype.xmlSchemaTypes = (u"boolean",)
* pytype.register()
*/
- __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s____checkBool); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1048; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s____checkBool); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1048; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s____lower_bool); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1048; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s____lower_bool); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1048; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = PyTuple_New(4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1048; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
* pytype.register()
*
*/
- if (PyObject_SetAttr(((PyObject *)__pyx_v_pytype), __pyx_n_s__xmlSchemaTypes, ((PyObject *)__pyx_k_tuple_23)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1049; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_pytype), __pyx_n_s__xmlSchemaTypes, ((PyObject *)__pyx_k_tuple_24)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1049; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1050
* pytype = PyType(u'bool', __checkBool, BoolElement, __lower_bool)
*
* pytype = PyType(u'str', None, StringElement)
*/
- __pyx_t_2 = PyObject_GetAttr(((PyObject *)__pyx_v_pytype), __pyx_n_s__register); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1050; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_pytype), __pyx_n_s__register); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1050; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1050; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
* u"Name", u"NCName", u"ID", u"IDREF", u"ENTITY",
* u"NMTOKEN", )
*/
- if (PyObject_SetAttr(((PyObject *)__pyx_v_pytype), __pyx_n_s__xmlSchemaTypes, ((PyObject *)__pyx_k_tuple_24)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1053; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_pytype), __pyx_n_s__xmlSchemaTypes, ((PyObject *)__pyx_k_tuple_25)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1053; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1056
* u"Name", u"NCName", u"ID", u"IDREF", u"ENTITY",
*
* # since lxml 2.0
*/
- __pyx_t_2 = PyObject_GetAttr(((PyObject *)__pyx_v_pytype), __pyx_n_s__register); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1056; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_pytype), __pyx_n_s__register); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1056; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1056; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
*
* # backwards compatibility
*/
- __pyx_t_2 = PyObject_GetAttr(((PyObject *)__pyx_v_pytype), __pyx_n_s__register); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1060; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_pytype), __pyx_n_s__register); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1060; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1060; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
*
* # non-registered PyType for inner tree elements
*/
- __pyx_t_2 = PyObject_GetAttr(((PyObject *)__pyx_v_pytype), __pyx_n_s__register); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1064; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_pytype), __pyx_n_s__register); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1064; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1064; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
* if name not in known:
* known.add(name)
*/
- __pyx_t_3 = PyObject_GetAttr(__pyx_v_pytype, __pyx_n_s__name); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1090; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_pytype, __pyx_n_s__name); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1090; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_v_name);
__pyx_v_name = __pyx_t_3;
* for pytype in _PYTYPE_DICT.values():
* name = pytype.name
*/
- __pyx_t_9 = PyList_Append(__pyx_v_types, __pyx_v_pytype); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1093; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_types, __pyx_v_pytype); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1093; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L7;
}
__pyx_L7:;
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "values");
{__pyx_filename = __pyx_f[0]; __pyx_lineno = 1094; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
- __pyx_t_1 = PyDict_Values(__pyx_v_4lxml_9objectify__PYTYPE_DICT); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1094; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyDict_Values(__pyx_v_4lxml_9objectify__PYTYPE_DICT); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1094; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
if (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;
* if name not in known:
* known.add(name)
*/
- __pyx_t_1 = PyObject_GetAttr(__pyx_v_pytype, __pyx_n_s__name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1095; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_pytype, __pyx_n_s__name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1095; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_v_name);
__pyx_v_name = __pyx_t_1;
* return types
*
*/
- __pyx_t_9 = PyList_Append(__pyx_v_types, __pyx_v_pytype); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1098; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_types, __pyx_v_pytype); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1098; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L10;
}
__pyx_L10:;
* elif pytype_name is not None:
* cetree.setAttributeValue(element, PYTYPE_ATTRIBUTE, pytype_name)
*/
- __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__PYTYPE_ATTRIBUTE); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1191; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s__PYTYPE_ATTRIBUTE); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1191; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_6 = setAttributeValue(__pyx_v_element, __pyx_t_3, ((PyObject *)__pyx_n_u__str)); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1191; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
*
* return element
*/
- __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__PYTYPE_ATTRIBUTE); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s__PYTYPE_ATTRIBUTE); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_6 = setAttributeValue(__pyx_v_element, __pyx_t_3, __pyx_v_pytype_name); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
PyObject *__pyx_v_nsmap = 0;
PyObject *__pyx_v_annotate = 0;
PyObject *__pyx_v_makeelement = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
*/
values[0] = ((PyObject *)Py_None);
values[1] = ((PyObject *)Py_None);
- values[2] = __pyx_k_25;
+ values[2] = __pyx_k_26;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1244
* cdef dict _cache
* self._annotate = annotate
* if makeelement is not None:
*/
- __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_26), __pyx_v_namespace); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1254; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_27), __pyx_v_namespace); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1254; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_2));
__Pyx_GIVEREF(((PyObject *)__pyx_t_2));
__Pyx_GOTREF(__pyx_v_self->_namespace);
* if self._namespace is not None and tag[0] != u"{":
* element_maker._tag = self._namespace + tag
*/
- __pyx_t_1 = __Pyx_tp_new(((PyObject*)__pyx_ptype_4lxml_9objectify__ObjectifyElementMakerCaller)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1266; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __pyx_tp_new_4lxml_9objectify__ObjectifyElementMakerCaller(((PyTypeObject *)((PyObject*)__pyx_ptype_4lxml_9objectify__ObjectifyElementMakerCaller)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1266; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
if (!(likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_4lxml_9objectify__ObjectifyElementMakerCaller)))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1266; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_v_element_maker = ((struct __pyx_obj_4lxml_9objectify__ObjectifyElementMakerCaller *)__pyx_t_1);
*/
__pyx_t_2 = (__pyx_v_self->_namespace != Py_None);
if (__pyx_t_2) {
- __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_tag, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1267; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_tag, 0, sizeof(long), PyInt_FromLong, 0, 0, 1); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1267; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, ((PyObject *)__pyx_kp_u_27), Py_NE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1267; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, ((PyObject *)__pyx_kp_u_28), Py_NE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1267; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1267; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
* return element_maker
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_3 = PyObject_GetAttr(__pyx_builtin_object, __pyx_n_s____getattr__); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1283; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_builtin_object, __pyx_n_s____getattr__); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1283; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1283; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
PyObject *__pyx_v_tag = 0;
PyObject *__pyx_v_args = 0;
PyObject *__pyx_v_kwargs = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
static PyMethodDef __pyx_mdef_4lxml_9objectify_13enable_recursive_str = {__Pyx_NAMESTR("enable_recursive_str"), (PyCFunction)__pyx_pw_4lxml_9objectify_13enable_recursive_str, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_9objectify_12enable_recursive_str)};
static PyObject *__pyx_pw_4lxml_9objectify_13enable_recursive_str(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_on = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("enable_recursive_str (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__on,0};
PyObject* values[1] = {0};
- values[0] = __pyx_k_28;
+ values[0] = __pyx_k_29;
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
static char __pyx_doc_4lxml_9objectify_14dump[] = "dump(_Element element not None)\n\n Return a recursively generated string representation of an element.\n ";
static PyMethodDef __pyx_mdef_4lxml_9objectify_15dump = {__Pyx_NAMESTR("dump"), (PyCFunction)__pyx_pw_4lxml_9objectify_15dump, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_9objectify_14dump)};
static PyObject *__pyx_pw_4lxml_9objectify_15dump(PyObject *__pyx_self, PyObject *__pyx_v_element) {
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("dump (wrapper)", 0);
*/
__pyx_t_1 = PyInt_FromLong(__pyx_v_indent); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1316; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_2 = PyNumber_Multiply(((PyObject *)__pyx_kp_u_29), __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1316; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyNumber_Multiply(((PyObject *)__pyx_kp_u_30), __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1316; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_2));
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_v_indentstr = ((PyObject*)__pyx_t_2);
* value = None
* else:
*/
- __pyx_t_2 = PyObject_GetAttr(__pyx_v_value, __pyx_n_s__strip); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1322; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_value, __pyx_n_s__strip); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1322; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1322; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
* value, _typename(element))
* xsi_ns = u"{%s}" % XML_SCHEMA_INSTANCE_NS
*/
- __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_element), __pyx_n_s__tag); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1326; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_element), __pyx_n_s__tag); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1326; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1327
__Pyx_GIVEREF(__pyx_t_2);
__pyx_t_1 = 0;
__pyx_t_2 = 0;
- __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_30), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1326; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_31), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1326; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_2));
__Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
__pyx_v_result = ((PyObject *)__pyx_t_2);
* pytype_ns = u"{%s}" % PYTYPE_NAMESPACE
* for name, value in cetree.iterattributes(element, 3):
*/
- __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_26), __pyx_v_4lxml_9objectify_XML_SCHEMA_INSTANCE_NS); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1328; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_27), __pyx_v_4lxml_9objectify_XML_SCHEMA_INSTANCE_NS); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1328; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_2));
__pyx_v_xsi_ns = ((PyObject*)__pyx_t_2);
__pyx_t_2 = 0;
* for name, value in cetree.iterattributes(element, 3):
* if u'{' in name:
*/
- __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_26), __pyx_v_4lxml_9objectify_PYTYPE_NAMESPACE); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1329; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_27), __pyx_v_4lxml_9objectify_PYTYPE_NAMESPACE); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1329; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_2));
__pyx_v_pytype_ns = ((PyObject*)__pyx_t_2);
__pyx_t_2 = 0;
* if name == PYTYPE_ATTRIBUTE:
* if value == TREE_PYTYPE_NAME:
*/
- __pyx_t_4 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_kp_u_27), __pyx_v_name, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1331; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_kp_u_28), __pyx_v_name, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1331; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
if (__pyx_t_4) {
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1332
* if value == TREE_PYTYPE_NAME:
* continue
*/
- __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__PYTYPE_ATTRIBUTE); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1332; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__PYTYPE_ATTRIBUTE); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1332; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_8 = PyObject_RichCompare(__pyx_v_name, __pyx_t_2, Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1332; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
* name = name.replace(xsi_ns, u'xsi:')
* result += u"%s * %s = %r\n" % (indentstr, name, value)
*/
- __pyx_t_8 = PyObject_GetAttr(__pyx_v_name, __pyx_n_s__replace); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1336; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_name, __pyx_n_s__replace); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1336; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1336; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__Pyx_INCREF(((PyObject *)__pyx_v_pytype_ns));
PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_pytype_ns));
__Pyx_GIVEREF(((PyObject *)__pyx_v_pytype_ns));
- __Pyx_INCREF(((PyObject *)__pyx_kp_u_31));
- PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_kp_u_31));
- __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_31));
+ __Pyx_INCREF(((PyObject *)__pyx_kp_u_32));
+ PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_kp_u_32));
+ __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_32));
__pyx_t_1 = PyObject_Call(__pyx_t_8, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1336; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
* result += u"%s * %s = %r\n" % (indentstr, name, value)
*
*/
- __pyx_t_1 = PyObject_GetAttr(__pyx_v_name, __pyx_n_s__replace); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1337; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_name, __pyx_n_s__replace); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1337; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1337; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__Pyx_INCREF(((PyObject *)__pyx_v_xsi_ns));
PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_xsi_ns));
__Pyx_GIVEREF(((PyObject *)__pyx_v_xsi_ns));
- __Pyx_INCREF(((PyObject *)__pyx_kp_u_32));
- PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_kp_u_32));
- __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_32));
+ __Pyx_INCREF(((PyObject *)__pyx_kp_u_33));
+ PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_kp_u_33));
+ __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_33));
__pyx_t_8 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1337; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_INCREF(__pyx_v_value);
PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_v_value);
__Pyx_GIVEREF(__pyx_v_value);
- __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_33), ((PyObject *)__pyx_t_8)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1338; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_34), ((PyObject *)__pyx_t_8)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1338; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_2));
__Pyx_DECREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0;
__pyx_t_8 = PyNumber_InPlaceAdd(__pyx_v_result, ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1338; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
* result += _dump(child, indent)
* if indent == 1:
*/
- __pyx_t_5 = PyObject_GetAttr(((PyObject *)__pyx_v_element), __pyx_n_s__iterchildren); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1341; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_element), __pyx_n_s__iterchildren); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1341; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_8 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1341; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_8);
* return result
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_5 = __Pyx_PySequence_GetSlice(__pyx_v_result, 0, -1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1344; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_PyObject_GetSlice(__pyx_v_result, 0, -1, NULL, NULL, &__pyx_k_slice_35, 0, 1, 1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1344; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
__pyx_r = __pyx_t_5;
__pyx_t_5 = 0;
* cdef _setupPickle(elementTreeReduceFunction):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = PyObject_GetAttr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s__ElementTree); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1353; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s__ElementTree); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1353; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__fromstring); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1353; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__fromstring); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1353; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1353; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
* elementTreeReduceFunction, __unpickleElementTree)
*
*/
- __pyx_t_1 = PyObject_GetAttr(__pyx_v_copyreg, __pyx_n_s__pickle); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1360; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_copyreg, __pyx_n_s__pickle); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1360; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_2 = PyObject_GetAttr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s___ElementTree); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1360; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s___ElementTree); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1360; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1361
*
* def pickleReduceElementTree(obj):
*/
- __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s_34); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1361; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_36); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1361; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1360; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
* _setupPickle(pickleReduceElementTree)
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s_34); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1364; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_36); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1364; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_2 = PyObject_GetAttr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s__tostring); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1364; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s__tostring); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1364; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1364; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
static int __pyx_pw_4lxml_9objectify_27ObjectifyElementClassLookup_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_tree_class = 0;
PyObject *__pyx_v_empty_data_class = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
*/
__pyx_t_1 = (__pyx_v_dict_result == NULL);
if (__pyx_t_1) {
- __pyx_t_4 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_kp_u_35), __pyx_v_value, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_kp_u_37), __pyx_v_value, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_t_5 = __pyx_t_4;
} else {
__pyx_t_5 = __pyx_t_1;
* dict_result = python.PyDict_GetItem(_SCHEMA_TYPE_DICT, value)
* if dict_result is not NULL:
*/
- __pyx_t_3 = PyObject_GetAttr(__pyx_v_value, __pyx_n_s__split); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1426; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_value, __pyx_n_s__split); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1426; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_2 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_k_tuple_36), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1426; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_k_tuple_38), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1426; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) {
PyObject *__pyx_v_ignore_old = 0;
PyObject *__pyx_v_ignore_xsi = 0;
PyObject *__pyx_v_empty_pytype = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("pyannotate (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__element_or_tree,&__pyx_n_s__ignore_old,&__pyx_n_s__ignore_xsi,&__pyx_n_s__empty_pytype,0};
PyObject* values[4] = {0,0,0,0};
- values[1] = __pyx_k_37;
- values[2] = __pyx_k_38;
+ values[1] = __pyx_k_39;
+ values[2] = __pyx_k_40;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1459
*
PyObject *__pyx_v_ignore_old = 0;
PyObject *__pyx_v_ignore_pytype = 0;
PyObject *__pyx_v_empty_type = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("xsiannotate (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__element_or_tree,&__pyx_n_s__ignore_old,&__pyx_n_s__ignore_pytype,&__pyx_n_s__empty_type,0};
PyObject* values[4] = {0,0,0,0};
- values[1] = __pyx_k_39;
- values[2] = __pyx_k_40;
+ values[1] = __pyx_k_41;
+ values[2] = __pyx_k_42;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1482
*
PyObject *__pyx_v_empty_type = 0;
PyObject *__pyx_v_annotate_xsi = 0;
PyObject *__pyx_v_annotate_pytype = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("annotate (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__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,0};
PyObject* values[7] = {0,0,0,0,0,0,0};
- values[1] = __pyx_k_41;
- values[2] = __pyx_k_42;
+ values[1] = __pyx_k_43;
+ values[2] = __pyx_k_44;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1510
*
*/
__pyx_t_5 = (__pyx_v_dict_result == NULL);
if (__pyx_t_5) {
- __pyx_t_3 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_kp_u_35), __pyx_v_typename, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1608; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_kp_u_37), __pyx_v_typename, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1608; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_t_4 = __pyx_t_3;
} else {
__pyx_t_4 = __pyx_t_5;
* dict_result = python.PyDict_GetItem(
* _SCHEMA_TYPE_DICT, typename)
*/
- __pyx_t_2 = PyObject_GetAttr(__pyx_v_typename, __pyx_n_s__split); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1609; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_typename, __pyx_n_s__split); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1609; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_43), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1609; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_45), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1609; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
{__pyx_filename = __pyx_f[0]; __pyx_lineno = 1669; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
- __pyx_t_6 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_pytype->_schema_types), 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1669; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_pytype->_schema_types), 0, sizeof(long), PyInt_FromLong, 1, 0, 1); if (!__pyx_t_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1669; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_v_typename);
__pyx_v_typename = __pyx_t_6;
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
{__pyx_filename = __pyx_f[0]; __pyx_lineno = 1671; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
- __pyx_t_6 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_pytype->_schema_types), 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1671; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_pytype->_schema_types), 0, sizeof(long), PyInt_FromLong, 1, 0, 1); if (!__pyx_t_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1671; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_v_typename);
__pyx_v_typename = __pyx_t_6;
* prefix, name = typename_utf8.split(b':', 1)
* if c_ns.prefix is NULL or c_ns.prefix[0] == c'\0':
*/
- __pyx_t_4 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_kp_b_35), __pyx_v_typename_utf8, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1683; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_kp_b_37), __pyx_v_typename_utf8, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1683; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
if (__pyx_t_4) {
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1684
* if c_ns.prefix is NULL or c_ns.prefix[0] == c'\0':
* typename_utf8 = name
*/
- __pyx_t_6 = PyObject_GetAttr(__pyx_v_typename_utf8, __pyx_n_s__split); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1684; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_typename_utf8, __pyx_n_s__split); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1684; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
- __pyx_t_1 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_k_tuple_44), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1684; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_k_tuple_46), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1684; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
*/
__pyx_t_1 = __Pyx_PyBytes_FromUString(((unsigned char *)__pyx_v_c_ns->prefix)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1688; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_1));
- __pyx_t_2 = PyNumber_Add(((PyObject *)__pyx_t_1), ((PyObject *)__pyx_kp_b_35)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1688; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyNumber_Add(((PyObject *)__pyx_t_1), ((PyObject *)__pyx_kp_b_37)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1688; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_2));
__Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
__pyx_t_1 = PyNumber_Add(((PyObject *)__pyx_t_2), __pyx_v_name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1688; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
*/
__pyx_t_1 = __Pyx_PyBytes_FromUString(((unsigned char *)__pyx_v_c_ns->prefix)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1690; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_1));
- __pyx_t_2 = PyNumber_Add(((PyObject *)__pyx_t_1), ((PyObject *)__pyx_kp_b_35)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1690; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyNumber_Add(((PyObject *)__pyx_t_1), ((PyObject *)__pyx_kp_b_37)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1690; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_2));
__Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
__pyx_t_1 = PyNumber_Add(((PyObject *)__pyx_t_2), __pyx_v_typename_utf8); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1690; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
int __pyx_v_xsi;
int __pyx_v_xsi_nil;
int __pyx_v_cleanup_namespaces;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("deannotate (wrapper)", 0);
* if xsi:
* attribute_names.append(XML_SCHEMA_INSTANCE_TYPE_ATTR)
*/
- __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__PYTYPE_ATTRIBUTE); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1737; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__PYTYPE_ATTRIBUTE); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1737; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_2 = PyList_Append(__pyx_v_attribute_names, __pyx_t_1); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1737; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyList_Append(__pyx_v_attribute_names, __pyx_t_1); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1737; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L3;
}
*/
__pyx_t_1 = __pyx_v_4lxml_9objectify_XML_SCHEMA_INSTANCE_TYPE_ATTR;
__Pyx_INCREF(__pyx_t_1);
- __pyx_t_2 = PyList_Append(__pyx_v_attribute_names, __pyx_t_1); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1739; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyList_Append(__pyx_v_attribute_names, __pyx_t_1); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1739; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L4;
}
*/
__pyx_t_1 = __pyx_v_4lxml_9objectify_XML_SCHEMA_INSTANCE_NIL_ATTR;
__Pyx_INCREF(__pyx_t_1);
- __pyx_t_2 = PyList_Append(__pyx_v_attribute_names, __pyx_t_1); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1741; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyList_Append(__pyx_v_attribute_names, __pyx_t_1); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1741; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L5;
}
static PyMethodDef __pyx_mdef_4lxml_9objectify_29set_default_parser = {__Pyx_NAMESTR("set_default_parser"), (PyCFunction)__pyx_pw_4lxml_9objectify_29set_default_parser, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_9objectify_28set_default_parser)};
static PyObject *__pyx_pw_4lxml_9objectify_29set_default_parser(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_new_parser = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("set_default_parser (wrapper)", 0);
* objectify_parser = new_parser
* else:
*/
- __pyx_t_2 = PyObject_GetAttr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s__XMLParser); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1770; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s__XMLParser); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1770; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = PyObject_IsInstance(__pyx_v_new_parser, __pyx_t_2); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1770; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
*
* def makeparser(**kw):
*/
- __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_45), 0, 0);
+ __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_47), 0, 0);
{__pyx_filename = __pyx_f[0]; __pyx_lineno = 1773; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
__pyx_L3:;
* parser.set_element_class_lookup( ObjectifyElementClassLookup() )
* return parser
*/
- __pyx_t_2 = PyObject_GetAttr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s__XMLParser); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1787; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s__XMLParser); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1787; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = ((PyObject *)__pyx_v_kw);
__Pyx_INCREF(__pyx_t_3);
* return parser
*
*/
- __pyx_t_4 = PyObject_GetAttr(__pyx_v_parser, __pyx_n_s_46); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1788; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_parser, __pyx_n_s_48); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1788; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_9objectify_ObjectifyElementClassLookup)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1788; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
PyObject *__pyx_v_xml = 0;
PyObject *__pyx_v_parser = 0;
PyObject *__pyx_v_base_url = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("fromstring (wrapper)", 0);
PyObject *__pyx_v_xml = 0;
PyObject *__pyx_v_parser = 0;
PyObject *__pyx_v_base_url = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("XML (wrapper)", 0);
PyObject *__pyx_v_f = 0;
PyObject *__pyx_v_parser = 0;
PyObject *__pyx_v_base_url = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("parse (wrapper)", 0);
PyObject *__pyx_v_nsmap = 0;
PyObject *__pyx_v__pytype = 0;
PyObject *__pyx_v__attributes = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("Element (wrapper)", 0);
* _attributes = attrib
* if _pytype is None:
*/
- __pyx_t_3 = PyObject_GetAttr(__pyx_v_attrib, __pyx_n_s__update); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_attrib, __pyx_n_s__update); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
* return _makeElement(_tag, None, _attributes, nsmap)
*
*/
- __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__PYTYPE_ATTRIBUTE); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1876; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s__PYTYPE_ATTRIBUTE); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1876; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
if (PyObject_SetItem(__pyx_v__attributes, __pyx_t_5, __pyx_v__pytype) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1876; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
PyObject *__pyx_v__pytype = 0;
PyObject *__pyx_v__xsi = 0;
PyObject *__pyx_v__attributes = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("DataElement (wrapper)", 0);
* _attributes = attrib
* if isinstance(_value, ObjectifiedElement):
*/
- __pyx_t_5 = PyObject_GetAttr(__pyx_v_attrib, __pyx_n_s__update); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1900; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_attrib, __pyx_n_s__update); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1900; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1900; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
* # reuse existing nsmap unless redefined in nsmap parameter
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_6 = PyObject_GetAttr(__pyx_v__value, __pyx_n_s____copy__); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1906; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v__value, __pyx_n_s____copy__); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1906; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_4 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1906; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
* if temp is not None and temp:
* temp = dict(temp)
*/
- __pyx_t_4 = PyObject_GetAttr(__pyx_v__value, __pyx_n_s__nsmap); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1909; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v__value, __pyx_n_s__nsmap); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1909; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
__pyx_v_temp = __pyx_t_4;
__pyx_t_4 = 0;
* nsmap = temp
* # reuse existing attributes unless redefined in attrib/_attributes
*/
- __pyx_t_6 = PyObject_GetAttr(__pyx_v_temp, __pyx_n_s__update); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1912; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_temp, __pyx_n_s__update); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1912; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1912; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
* if temp is not None and temp:
* temp = dict(temp)
*/
- __pyx_t_5 = PyObject_GetAttr(__pyx_v__value, __pyx_n_s__attrib); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1915; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v__value, __pyx_n_s__attrib); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1915; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_v_temp);
__pyx_v_temp = __pyx_t_5;
* _attributes = temp
* # reuse existing xsi:type or py:pytype attributes, unless provided as
*/
- __pyx_t_4 = PyObject_GetAttr(__pyx_v_temp, __pyx_n_s__update); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1918; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_temp, __pyx_n_s__update); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1918; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1918; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
* if dict_result is not NULL:
* _pytype = <object>dict_result
*/
- __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s__PYTYPE_ATTRIBUTE); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1927; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s__PYTYPE_ATTRIBUTE); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1927; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
__pyx_v_dict_result = PyDict_GetItem(__pyx_v__attributes, __pyx_t_6);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
* prefix, name = _xsi.split(u':', 1)
* ns = nsmap.get(prefix)
*/
- __pyx_t_2 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_kp_u_35), __pyx_v__xsi, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1932; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_kp_u_37), __pyx_v__xsi, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1932; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
if (__pyx_t_2) {
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1933
* ns = nsmap.get(prefix)
* if ns != XML_SCHEMA_NS:
*/
- __pyx_t_6 = PyObject_GetAttr(__pyx_v__xsi, __pyx_n_s__split); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1933; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v__xsi, __pyx_n_s__split); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1933; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
- __pyx_t_5 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_k_tuple_47), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1933; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_k_tuple_49), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1933; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
* if ns != XML_SCHEMA_NS:
* raise ValueError, u"XSD types require the XSD namespace"
*/
- __pyx_t_5 = PyObject_GetAttr(__pyx_v_nsmap, __pyx_n_s__get); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1934; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_nsmap, __pyx_n_s__get); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1934; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1934; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
* elif nsmap is _DEFAULT_NSMAP:
* name = _xsi
*/
- __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_48), 0, 0);
+ __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_50), 0, 0);
{__pyx_filename = __pyx_f[0]; __pyx_lineno = 1936; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L19;
}
* else:
* name = _xsi
*/
- __pyx_t_6 = PyNumber_Add(((PyObject *)__pyx_kp_u_49), __pyx_v__xsi); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1939; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = PyNumber_Add(((PyObject *)__pyx_kp_u_51), __pyx_v__xsi); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1939; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_v__xsi);
__pyx_v__xsi = __pyx_t_6;
* if ns == XML_SCHEMA_NS:
* if prefix is not None and prefix:
*/
- __pyx_t_6 = PyObject_GetAttr(__pyx_v_nsmap, __pyx_n_s__items); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1942; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_nsmap, __pyx_n_s__items); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1942; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_4 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1942; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
* break
* else:
*/
- __pyx_t_4 = PyNumber_Add(__pyx_v_prefix, ((PyObject *)__pyx_kp_u_35)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1945; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = PyNumber_Add(__pyx_v_prefix, ((PyObject *)__pyx_kp_u_37)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1945; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_8 = PyNumber_Add(__pyx_t_4, __pyx_v__xsi); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1945; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_8);
* _attributes[XML_SCHEMA_INSTANCE_TYPE_ATTR] = _xsi
* if _pytype is None:
*/
- __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_48), 0, 0);
+ __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_50), 0, 0);
{__pyx_filename = __pyx_f[0]; __pyx_lineno = 1948; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
__pyx_L21_break:;
*
* return _makeElement(u"value", strval, _attributes, nsmap)
*/
- __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s__PYTYPE_ATTRIBUTE); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1990; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s__PYTYPE_ATTRIBUTE); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1990; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
if (PyObject_SetItem(__pyx_v__attributes, __pyx_t_6, __pyx_v__pytype) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1990; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
static int __pyx_pw_4lxml_9objectify_10ObjectPath_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4lxml_9objectify_10ObjectPath_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_path = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
*
* def __dealloc__(self):
*/
- __pyx_t_2 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s____call__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s____call__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__Pyx_GIVEREF(__pyx_t_2);
__Pyx_GOTREF(__pyx_v_self->find);
static PyObject *__pyx_pw_4lxml_9objectify_10ObjectPath_7__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
struct LxmlElement *__pyx_v_root = 0;
PyObject *__pyx_v_default = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
* return _findObjectPath(root, self._c_path, self._path_len,
* default, use_default)
*/
- __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_50), 0, 0);
+ __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_52), 0, 0);
{__pyx_filename = __pyx_f[1]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L3;
}
static PyObject *__pyx_pw_4lxml_9objectify_10ObjectPath_9hasattr(PyObject *__pyx_v_self, PyObject *__pyx_v_root); /*proto*/
static char __pyx_doc_4lxml_9objectify_10ObjectPath_8hasattr[] = "hasattr(self, root)";
static PyObject *__pyx_pw_4lxml_9objectify_10ObjectPath_9hasattr(PyObject *__pyx_v_self, PyObject *__pyx_v_root) {
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("hasattr (wrapper)", 0);
static PyObject *__pyx_pw_4lxml_9objectify_10ObjectPath_11setattr(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
struct LxmlElement *__pyx_v_root = 0;
PyObject *__pyx_v_value = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("setattr (wrapper)", 0);
static PyObject *__pyx_pw_4lxml_9objectify_10ObjectPath_13addattr(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
struct LxmlElement *__pyx_v_root = 0;
PyObject *__pyx_v_value = 0;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("addattr (wrapper)", 0);
* if path == u'.':
* return [_RELATIVE_PATH_SEGMENT]
*/
- __pyx_t_1 = PyObject_GetAttr(__pyx_v_path, __pyx_n_s__strip); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_path, __pyx_n_s__strip); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
* if index is None or not index:
* index = 0
*/
- __pyx_t_1 = PyObject_GetAttr(__pyx_v_match, __pyx_n_s__groups); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_match, __pyx_n_s__groups); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
*/
__pyx_t_6 = __pyx_v_4lxml_9objectify__RELATIVE_PATH_SEGMENT;
__Pyx_INCREF(__pyx_t_6);
- __pyx_t_11 = PyList_Append(__pyx_v_new_path, __pyx_t_6); if (unlikely(__pyx_t_11 == -1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_11 = __Pyx_PyList_Append(__pyx_v_new_path, __pyx_t_6); if (unlikely(__pyx_t_11 == -1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
goto __pyx_L12;
}
* elif not has_dot:
* raise ValueError, u"invalid path"
*/
- __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_51), 0, 0);
+ __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_53), 0, 0);
{__pyx_filename = __pyx_f[1]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L12;
}
* if ns is not None:
* ns = python.PyUnicode_AsUTF8String(ns)
*/
- __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_52), 0, 0);
+ __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_54), 0, 0);
{__pyx_filename = __pyx_f[1]; __pyx_lineno = 120; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L11;
}
__Pyx_INCREF(__pyx_v_index);
PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_index);
__Pyx_GIVEREF(__pyx_v_index);
- __pyx_t_11 = PyList_Append(__pyx_v_new_path, ((PyObject *)__pyx_t_6)); if (unlikely(__pyx_t_11 == -1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_11 = __Pyx_PyList_Append(__pyx_v_new_path, ((PyObject *)__pyx_t_6)); if (unlikely(__pyx_t_11 == -1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":126
* if python.PyList_GET_SIZE(new_path) == 0 or \
* python.PyUnicode_GET_SIZE(path) > path_pos:
*/
- __pyx_t_6 = PyObject_GetAttr(__pyx_v_match, __pyx_n_s__end); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_match, __pyx_n_s__end); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_3 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
* return new_path
*
*/
- __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_52), 0, 0);
+ __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_54), 0, 0);
{__pyx_filename = __pyx_f[1]; __pyx_lineno = 129; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L14;
}
* if python.PyList_GET_SIZE(new_path) == 0 and item == u'':
* # path '.child' => ignore root
*/
- __pyx_t_4 = PyObject_GetAttr(__pyx_v_item, __pyx_n_s__strip); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_item, __pyx_n_s__strip); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
* index = int(index_pos[1:index_end - index_pos])
* if python.PyList_GET_SIZE(new_path) == 0 and index != 0:
*/
- __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_53), 0, 0);
+ __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_55), 0, 0);
{__pyx_filename = __pyx_f[1]; __pyx_lineno = 151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L9;
}
* if python.PyList_GET_SIZE(new_path) == 0 and index != 0:
* raise ValueError, u"index not allowed on root node"
*/
- __pyx_t_5 = PyBytes_FromStringAndSize(((const char*)__pyx_v_index_pos) + 1, (__pyx_v_index_end - __pyx_v_index_pos) - 1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_PyBytes_FromStringAndSize(((const char*)__pyx_v_index_pos) + 1, (__pyx_v_index_end - __pyx_v_index_pos) - 1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_5));
__pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_9);
* name = <bytes>c_name[:index_pos - c_name]
* new_path.append( (ns, name, index) )
*/
- __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_51), 0, 0);
+ __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_53), 0, 0);
{__pyx_filename = __pyx_f[1]; __pyx_lineno = 154; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L10;
}
* new_path.append( (ns, name, index) )
* if python.PyList_GET_SIZE(new_path) == 0:
*/
- __pyx_t_5 = PyBytes_FromStringAndSize(((const char*)__pyx_v_c_name) + 0, (__pyx_v_index_pos - __pyx_v_c_name) - 0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_PyBytes_FromStringAndSize(((const char*)__pyx_v_c_name) + 0, (__pyx_v_index_pos - __pyx_v_c_name) - 0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_5));
__Pyx_INCREF(((PyObject *)((PyObject*)__pyx_t_5)));
__Pyx_DECREF(__pyx_v_name);
__Pyx_INCREF(__pyx_v_index);
PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_index);
__Pyx_GIVEREF(__pyx_v_index);
- __pyx_t_12 = PyList_Append(__pyx_v_new_path, ((PyObject *)__pyx_t_5)); if (unlikely(__pyx_t_12 == -1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 156; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_12 = __Pyx_PyList_Append(__pyx_v_new_path, ((PyObject *)__pyx_t_5)); if (unlikely(__pyx_t_12 == -1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 156; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
* return new_path
*
*/
- __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_52), 0, 0);
+ __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_54), 0, 0);
{__pyx_filename = __pyx_f[1]; __pyx_lineno = 158; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L11;
}
*/
__pyx_t_6 = namespacedNameFromNsName(__pyx_v_c_href, __pyx_v_c_name); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
- __pyx_t_7 = PyObject_GetAttr(((PyObject *)__pyx_v_root), __pyx_n_s__tag); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_root), __pyx_n_s__tag); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_8);
__Pyx_GIVEREF(__pyx_t_7);
__pyx_t_6 = 0;
__pyx_t_7 = 0;
- __pyx_t_7 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_54), ((PyObject *)__pyx_t_8)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_56), ((PyObject *)__pyx_t_8)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_7));
__Pyx_DECREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0;
__Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_7), 0, 0);
*
* c_node = root._c_node
*/
- __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_55), 0, 0);
+ __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_57), 0, 0);
{__pyx_filename = __pyx_f[1]; __pyx_lineno = 231; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L3;
}
*/
__pyx_t_6 = namespacedNameFromNsName(__pyx_v_c_href, __pyx_v_c_name); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
- __pyx_t_7 = PyObject_GetAttr(((PyObject *)__pyx_v_root), __pyx_n_s__tag); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_root), __pyx_n_s__tag); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_8);
__Pyx_GIVEREF(__pyx_t_7);
__pyx_t_6 = 0;
__pyx_t_7 = 0;
- __pyx_t_7 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_54), ((PyObject *)__pyx_t_8)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 240; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_56), ((PyObject *)__pyx_t_8)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 240; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_7));
__Pyx_DECREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0;
__Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_7), 0, 0);
* u"creating indexed path attributes is not supported"
* elif c_path_len == 1:
*/
- __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_56), 0, 0);
+ __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_58), 0, 0);
{__pyx_filename = __pyx_f[1]; __pyx_lineno = 260; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
goto __pyx_L10;
}
* prefix_string += u'.'
* prefix_string = prefix_string + tag
*/
- __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_prefix_string, -1, sizeof(long), PyInt_FromLong); if (!__pyx_t_1) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 288; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_prefix_string, -1, sizeof(long), PyInt_FromLong, 0, 1, 1); if (!__pyx_t_1) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 288; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_3 = PyObject_RichCompare(__pyx_t_1, ((PyObject *)__pyx_kp_u_8), Py_NE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 288; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
}
__pyx_t_1 = ((PyObject *)PyUnicode_Join(__pyx_kp_u_8, ((PyObject *)__pyx_v_path))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 306; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_2 = PyList_Append(__pyx_v_path_list, __pyx_t_1); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 306; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyList_Append(__pyx_v_path_list, __pyx_t_1); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 306; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":307
*/
__pyx_t_1 = pyunicode(__pyx_v_c_child->name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 318; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_7 = PyNumber_Add(((PyObject *)__pyx_kp_u_57), __pyx_t_1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 318; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = PyNumber_Add(((PyObject *)__pyx_kp_u_59), __pyx_t_1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 318; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_v_tag);
* path.append(tag)
* _recursiveBuildDescendantPaths(c_child, path, path_list)
*/
- __pyx_t_7 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_58), __pyx_v_count); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 325; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_60), __pyx_v_count); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 325; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_7));
__pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_tag, ((PyObject *)__pyx_t_7)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 325; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append");
{__pyx_filename = __pyx_f[1]; __pyx_lineno = 326; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
- __pyx_t_2 = PyList_Append(__pyx_v_path, __pyx_v_tag); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 326; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyList_Append(__pyx_v_path, __pyx_v_tag); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 326; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":327
* tag += u'[%d]' % count
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
{__pyx_filename = __pyx_f[1]; __pyx_lineno = 328; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
- if (__Pyx_DelItemInt(((PyObject *)__pyx_v_path), -1, sizeof(long), PyInt_FromLong) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 328; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__Pyx_DelItemInt(((PyObject *)__pyx_v_path), -1, sizeof(long), PyInt_FromLong, 1, 1, 1) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 328; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":329
* _recursiveBuildDescendantPaths(c_child, path, path_list)
static PyObject *__pyx_tp_new_4lxml_9objectify_PyType(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
struct __pyx_obj_4lxml_9objectify_PyType *p;
- PyObject *o = (*t->tp_alloc)(t, 0);
- if (!o) return 0;
+ PyObject *o;
+ o = (*t->tp_alloc)(t, 0);
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_9objectify_PyType *)o);
p->name = Py_None; Py_INCREF(Py_None);
p->type_check = Py_None; Py_INCREF(Py_None);
Py_CLEAR(p->stringify);
Py_CLEAR(p->_type);
Py_CLEAR(p->_schema_types);
- PyObject_GC_Track(o);
(*Py_TYPE(o)->tp_free)(o);
}
};
static struct PyGetSetDef __pyx_getsets_4lxml_9objectify_PyType[] = {
- {(char *)"xmlSchemaTypes", __pyx_getprop_4lxml_9objectify_6PyType_xmlSchemaTypes, __pyx_setprop_4lxml_9objectify_6PyType_xmlSchemaTypes, __Pyx_DOCSTR(__pyx_k_59), 0},
+ {(char *)"xmlSchemaTypes", __pyx_getprop_4lxml_9objectify_6PyType_xmlSchemaTypes, __pyx_setprop_4lxml_9objectify_6PyType_xmlSchemaTypes, __Pyx_DOCSTR(__pyx_k_61), 0},
{(char *)"name", __pyx_getprop_4lxml_9objectify_6PyType_name, 0, 0, 0},
{(char *)"type_check", __pyx_getprop_4lxml_9objectify_6PyType_type_check, 0, 0, 0},
{(char *)"stringify", __pyx_getprop_4lxml_9objectify_6PyType_stringify, 0, 0, 0},
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer_PyType, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("PyType(self, name, type_check, type_class, stringify=None)\n User defined type.\n\n Named type that contains a type check function and a type class that\n inherits from ObjectifiedDataElement. The type check must take a string\n as argument and raise ValueError or TypeError if it cannot handle the\n string value. It may be None in which case it is not considered for type\n guessing.\n\n Example::\n\n PyType('int', int, MyIntClass).register()\n\n Note that the order in which types are registered matters. The first\n matching type will be used.\n "), /*tp_doc*/
__pyx_tp_traverse_4lxml_9objectify_PyType, /*tp_traverse*/
__pyx_tp_clear_4lxml_9objectify_PyType, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_9objectify_ObjectifiedElement(PyTypeObject *t, PyObject *a, PyObject *k) {
PyObject *o = __pyx_ptype_4lxml_8includes_11etreepublic_ElementBase->tp_new(t, a, k);
- if (!o) return 0;
+ if (unlikely(!o)) return 0;
return o;
}
static struct PyGetSetDef __pyx_getsets_4lxml_9objectify_ObjectifiedElement[] = {
{(char *)"text", __pyx_getprop_4lxml_9objectify_18ObjectifiedElement_text, 0, 0, 0},
- {(char *)"__dict__", __pyx_getprop_4lxml_9objectify_18ObjectifiedElement___dict__, 0, __Pyx_DOCSTR(__pyx_k_60), 0},
+ {(char *)"__dict__", __pyx_getprop_4lxml_9objectify_18ObjectifiedElement___dict__, 0, __Pyx_DOCSTR(__pyx_k_62), 0},
{0, 0, 0, 0, 0}
};
__pyx_tp_getattro_4lxml_9objectify_ObjectifiedElement, /*tp_getattro*/
__pyx_tp_setattro_4lxml_9objectify_ObjectifiedElement, /*tp_setattro*/
&__pyx_tp_as_buffer_ObjectifiedElement, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("Main XML Element class.\n\n Element children are accessed as object attributes. Multiple children\n with the same name are available through a list index. Example::\n\n >>> root = XML(\"<root><c1><c2>0</c2><c2>1</c2></c1></root>\")\n >>> second_c2 = root.c1.c2[1]\n >>> print(second_c2.text)\n 1\n\n Note that you cannot (and must not) instantiate this class or its\n subclasses.\n "), /*tp_doc*/
__pyx_tp_traverse_4lxml_9objectify_ObjectifiedElement, /*tp_traverse*/
__pyx_tp_clear_4lxml_9objectify_ObjectifiedElement, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_9objectify_ObjectifiedDataElement(PyTypeObject *t, PyObject *a, PyObject *k) {
PyObject *o = __pyx_tp_new_4lxml_9objectify_ObjectifiedElement(t, a, k);
- if (!o) return 0;
+ if (unlikely(!o)) return 0;
return o;
}
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer_ObjectifiedDataElement, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("This is the base class for all data type Elements. Subclasses should\n override the 'pyval' property and possibly the __str__ method.\n "), /*tp_doc*/
__pyx_tp_traverse_4lxml_9objectify_ObjectifiedElement, /*tp_traverse*/
__pyx_tp_clear_4lxml_9objectify_ObjectifiedElement, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_9objectify_NumberElement(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_9objectify_NumberElement *p;
- PyObject *o = __pyx_tp_new_4lxml_9objectify_ObjectifiedElement(t, a, k);
- if (!o) return 0;
+ PyObject *o = __pyx_tp_new_4lxml_9objectify_ObjectifiedDataElement(t, a, k);
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_9objectify_NumberElement *)o);
p->_parse_value = Py_None; Py_INCREF(Py_None);
return o;
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer_NumberElement, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
0, /*tp_doc*/
__pyx_tp_traverse_4lxml_9objectify_NumberElement, /*tp_traverse*/
__pyx_tp_clear_4lxml_9objectify_NumberElement, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_9objectify_IntElement(PyTypeObject *t, PyObject *a, PyObject *k) {
PyObject *o = __pyx_tp_new_4lxml_9objectify_NumberElement(t, a, k);
- if (!o) return 0;
+ if (unlikely(!o)) return 0;
return o;
}
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer_IntElement, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
0, /*tp_doc*/
__pyx_tp_traverse_4lxml_9objectify_NumberElement, /*tp_traverse*/
__pyx_tp_clear_4lxml_9objectify_NumberElement, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_9objectify_LongElement(PyTypeObject *t, PyObject *a, PyObject *k) {
PyObject *o = __pyx_tp_new_4lxml_9objectify_NumberElement(t, a, k);
- if (!o) return 0;
+ if (unlikely(!o)) return 0;
return o;
}
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer_LongElement, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
0, /*tp_doc*/
__pyx_tp_traverse_4lxml_9objectify_NumberElement, /*tp_traverse*/
__pyx_tp_clear_4lxml_9objectify_NumberElement, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_9objectify_FloatElement(PyTypeObject *t, PyObject *a, PyObject *k) {
PyObject *o = __pyx_tp_new_4lxml_9objectify_NumberElement(t, a, k);
- if (!o) return 0;
+ if (unlikely(!o)) return 0;
return o;
}
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer_FloatElement, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
0, /*tp_doc*/
__pyx_tp_traverse_4lxml_9objectify_NumberElement, /*tp_traverse*/
__pyx_tp_clear_4lxml_9objectify_NumberElement, /*tp_clear*/
};
static PyObject *__pyx_tp_new_4lxml_9objectify_StringElement(PyTypeObject *t, PyObject *a, PyObject *k) {
- PyObject *o = __pyx_tp_new_4lxml_9objectify_ObjectifiedElement(t, a, k);
- if (!o) return 0;
+ PyObject *o = __pyx_tp_new_4lxml_9objectify_ObjectifiedDataElement(t, a, k);
+ if (unlikely(!o)) return 0;
return o;
}
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer_StringElement, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("String data class.\n\n Note that this class does *not* support the sequence protocol of strings:\n len(), iter(), str_attr[0], str_attr[0:1], etc. are *not* supported.\n Instead, use the .text attribute to get a 'real' string.\n "), /*tp_doc*/
__pyx_tp_traverse_4lxml_9objectify_ObjectifiedElement, /*tp_traverse*/
__pyx_tp_clear_4lxml_9objectify_ObjectifiedElement, /*tp_clear*/
};
static PyObject *__pyx_tp_new_4lxml_9objectify_NoneElement(PyTypeObject *t, PyObject *a, PyObject *k) {
- PyObject *o = __pyx_tp_new_4lxml_9objectify_ObjectifiedElement(t, a, k);
- if (!o) return 0;
+ PyObject *o = __pyx_tp_new_4lxml_9objectify_ObjectifiedDataElement(t, a, k);
+ if (unlikely(!o)) return 0;
return o;
}
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer_NoneElement, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
0, /*tp_doc*/
__pyx_tp_traverse_4lxml_9objectify_ObjectifiedElement, /*tp_traverse*/
__pyx_tp_clear_4lxml_9objectify_ObjectifiedElement, /*tp_clear*/
};
static PyObject *__pyx_tp_new_4lxml_9objectify_BoolElement(PyTypeObject *t, PyObject *a, PyObject *k) {
- PyObject *o = __pyx_tp_new_4lxml_9objectify_NumberElement(t, a, k);
- if (!o) return 0;
+ PyObject *o = __pyx_tp_new_4lxml_9objectify_IntElement(t, a, k);
+ if (unlikely(!o)) return 0;
return o;
}
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer_BoolElement, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("Boolean type base on string values: 'true' or 'false'.\n\n Note that this inherits from IntElement to mimic the behaviour of\n Python's bool type.\n "), /*tp_doc*/
__pyx_tp_traverse_4lxml_9objectify_NumberElement, /*tp_traverse*/
__pyx_tp_clear_4lxml_9objectify_NumberElement, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_9objectify__ObjectifyElementMakerCaller(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
struct __pyx_obj_4lxml_9objectify__ObjectifyElementMakerCaller *p;
- PyObject *o = (*t->tp_alloc)(t, 0);
- if (!o) return 0;
+ PyObject *o;
+ o = (*t->tp_alloc)(t, 0);
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_9objectify__ObjectifyElementMakerCaller *)o);
p->_tag = Py_None; Py_INCREF(Py_None);
p->_nsmap = Py_None; Py_INCREF(Py_None);
Py_CLEAR(p->_tag);
Py_CLEAR(p->_nsmap);
Py_CLEAR(p->_element_factory);
- PyObject_GC_Track(o);
(*Py_TYPE(o)->tp_free)(o);
}
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer__ObjectifyElementMakerCaller, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
0, /*tp_doc*/
__pyx_tp_traverse_4lxml_9objectify__ObjectifyElementMakerCaller, /*tp_traverse*/
__pyx_tp_clear_4lxml_9objectify__ObjectifyElementMakerCaller, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_9objectify_ElementMaker(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
struct __pyx_obj_4lxml_9objectify_ElementMaker *p;
- PyObject *o = (*t->tp_alloc)(t, 0);
- if (!o) return 0;
+ PyObject *o;
+ o = (*t->tp_alloc)(t, 0);
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_9objectify_ElementMaker *)o);
p->__pyx_vtab = __pyx_vtabptr_4lxml_9objectify_ElementMaker;
p->_makeelement = Py_None; Py_INCREF(Py_None);
Py_CLEAR(p->_namespace);
Py_CLEAR(p->_nsmap);
Py_CLEAR(p->_cache);
- PyObject_GC_Track(o);
(*Py_TYPE(o)->tp_free)(o);
}
__pyx_tp_getattro_4lxml_9objectify_ElementMaker, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer_ElementMaker, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("ElementMaker(self, namespace=None, nsmap=None, annotate=True, makeelement=None)\n\n An ElementMaker that can be used for constructing trees.\n\n Example::\n\n >>> M = ElementMaker(annotate=False)\n >>> html = M.html( M.body( M.p('hello', M.br, 'objectify') ) )\n\n >>> from lxml.etree import tostring\n >>> print(tostring(html, method='html').decode('ascii'))\n <html><body><p>hello<br>objectify</p></body></html>\n\n To create tags that are not valid Python identifiers, call the factory\n directly and pass the tag name as first argument::\n\n >>> root = M('tricky-tag', 'some text')\n >>> print(root.tag)\n tricky-tag\n >>> print(root.text)\n some text\n\n Note that this module has a predefined ElementMaker instance called ``E``.\n "), /*tp_doc*/
__pyx_tp_traverse_4lxml_9objectify_ElementMaker, /*tp_traverse*/
__pyx_tp_clear_4lxml_9objectify_ElementMaker, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_9objectify_ObjectifyElementClassLookup(PyTypeObject *t, PyObject *a, PyObject *k) {
struct __pyx_obj_4lxml_9objectify_ObjectifyElementClassLookup *p;
PyObject *o = __pyx_ptype_4lxml_8includes_11etreepublic_ElementClassLookup->tp_new(t, a, k);
- if (!o) return 0;
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_9objectify_ObjectifyElementClassLookup *)o);
p->empty_data_class = Py_None; Py_INCREF(Py_None);
p->tree_class = Py_None; Py_INCREF(Py_None);
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer_ObjectifyElementClassLookup, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("ObjectifyElementClassLookup(self, tree_class=None, empty_data_class=None)\n Element class lookup method that uses the objectify classes.\n "), /*tp_doc*/
__pyx_tp_traverse_4lxml_9objectify_ObjectifyElementClassLookup, /*tp_traverse*/
__pyx_tp_clear_4lxml_9objectify_ObjectifyElementClassLookup, /*tp_clear*/
static PyObject *__pyx_tp_new_4lxml_9objectify_ObjectPath(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
struct __pyx_obj_4lxml_9objectify_ObjectPath *p;
- PyObject *o = (*t->tp_alloc)(t, 0);
- if (!o) return 0;
+ PyObject *o;
+ o = (*t->tp_alloc)(t, 0);
+ if (unlikely(!o)) return 0;
p = ((struct __pyx_obj_4lxml_9objectify_ObjectPath *)o);
p->find = Py_None; Py_INCREF(Py_None);
p->_path = Py_None; Py_INCREF(Py_None);
Py_CLEAR(p->find);
Py_CLEAR(p->_path);
Py_CLEAR(p->_path_str);
- PyObject_GC_Track(o);
(*Py_TYPE(o)->tp_free)(o);
}
0, /*tp_getattro*/
0, /*tp_setattro*/
&__pyx_tp_as_buffer_ObjectPath, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
__Pyx_DOCSTR("ObjectPath(path)\n Immutable object that represents a compiled object path.\n\n Example for a path: 'root.child[1].{other}child[25]'\n "), /*tp_doc*/
__pyx_tp_traverse_4lxml_9objectify_ObjectPath, /*tp_traverse*/
__pyx_tp_clear_4lxml_9objectify_ObjectPath, /*tp_clear*/
PyModuleDef_HEAD_INIT,
#endif
__Pyx_NAMESTR("objectify"),
- __Pyx_DOCSTR(__pyx_k_61), /* m_doc */
+ __Pyx_DOCSTR(__pyx_k_63), /* m_doc */
-1, /* m_size */
__pyx_methods /* m_methods */,
NULL, /* m_reload */
static __Pyx_StringTabEntry __pyx_string_tab[] = {
{&__pyx_kp_u_1, __pyx_k_1, sizeof(__pyx_k_1), 0, 1, 0, 0},
- {&__pyx_kp_u_10, __pyx_k_10, sizeof(__pyx_k_10), 0, 1, 0, 0},
{&__pyx_kp_u_11, __pyx_k_11, sizeof(__pyx_k_11), 0, 1, 0, 0},
- {&__pyx_kp_u_115, __pyx_k_115, sizeof(__pyx_k_115), 0, 1, 0, 0},
+ {&__pyx_kp_u_117, __pyx_k_117, sizeof(__pyx_k_117), 0, 1, 0, 0},
{&__pyx_kp_u_12, __pyx_k_12, sizeof(__pyx_k_12), 0, 1, 0, 0},
{&__pyx_kp_u_13, __pyx_k_13, sizeof(__pyx_k_13), 0, 1, 0, 0},
- {&__pyx_kp_u_15, __pyx_k_15, sizeof(__pyx_k_15), 0, 1, 0, 0},
+ {&__pyx_kp_u_14, __pyx_k_14, sizeof(__pyx_k_14), 0, 1, 0, 0},
{&__pyx_kp_u_16, __pyx_k_16, sizeof(__pyx_k_16), 0, 1, 0, 0},
{&__pyx_kp_u_17, __pyx_k_17, sizeof(__pyx_k_17), 0, 1, 0, 0},
{&__pyx_kp_u_18, __pyx_k_18, sizeof(__pyx_k_18), 0, 1, 0, 0},
{&__pyx_kp_u_19, __pyx_k_19, sizeof(__pyx_k_19), 0, 1, 0, 0},
{&__pyx_n_s_2, __pyx_k_2, sizeof(__pyx_k_2), 0, 0, 1, 1},
{&__pyx_kp_u_20, __pyx_k_20, sizeof(__pyx_k_20), 0, 1, 0, 0},
- {&__pyx_kp_u_26, __pyx_k_26, sizeof(__pyx_k_26), 0, 1, 0, 0},
+ {&__pyx_kp_u_21, __pyx_k_21, sizeof(__pyx_k_21), 0, 1, 0, 0},
{&__pyx_kp_u_27, __pyx_k_27, sizeof(__pyx_k_27), 0, 1, 0, 0},
- {&__pyx_kp_u_29, __pyx_k_29, sizeof(__pyx_k_29), 0, 1, 0, 0},
+ {&__pyx_kp_u_28, __pyx_k_28, sizeof(__pyx_k_28), 0, 1, 0, 0},
{&__pyx_kp_u_3, __pyx_k_3, sizeof(__pyx_k_3), 0, 1, 0, 0},
{&__pyx_kp_u_30, __pyx_k_30, sizeof(__pyx_k_30), 0, 1, 0, 0},
{&__pyx_kp_u_31, __pyx_k_31, sizeof(__pyx_k_31), 0, 1, 0, 0},
{&__pyx_kp_u_32, __pyx_k_32, sizeof(__pyx_k_32), 0, 1, 0, 0},
{&__pyx_kp_u_33, __pyx_k_33, sizeof(__pyx_k_33), 0, 1, 0, 0},
- {&__pyx_n_s_34, __pyx_k_34, sizeof(__pyx_k_34), 0, 0, 1, 1},
- {&__pyx_kp_b_35, __pyx_k_35, sizeof(__pyx_k_35), 0, 0, 0, 0},
- {&__pyx_kp_u_35, __pyx_k_35, sizeof(__pyx_k_35), 0, 1, 0, 0},
+ {&__pyx_kp_u_34, __pyx_k_34, sizeof(__pyx_k_34), 0, 1, 0, 0},
+ {&__pyx_n_s_36, __pyx_k_36, sizeof(__pyx_k_36), 0, 0, 1, 1},
+ {&__pyx_kp_b_37, __pyx_k_37, sizeof(__pyx_k_37), 0, 0, 0, 0},
+ {&__pyx_kp_u_37, __pyx_k_37, sizeof(__pyx_k_37), 0, 1, 0, 0},
{&__pyx_kp_u_4, __pyx_k_4, sizeof(__pyx_k_4), 0, 1, 0, 0},
- {&__pyx_kp_u_45, __pyx_k_45, sizeof(__pyx_k_45), 0, 1, 0, 0},
- {&__pyx_n_s_46, __pyx_k_46, sizeof(__pyx_k_46), 0, 0, 1, 1},
- {&__pyx_kp_u_48, __pyx_k_48, sizeof(__pyx_k_48), 0, 1, 0, 0},
- {&__pyx_kp_u_49, __pyx_k_49, sizeof(__pyx_k_49), 0, 1, 0, 0},
+ {&__pyx_kp_u_47, __pyx_k_47, sizeof(__pyx_k_47), 0, 1, 0, 0},
+ {&__pyx_n_s_48, __pyx_k_48, sizeof(__pyx_k_48), 0, 0, 1, 1},
{&__pyx_kp_u_5, __pyx_k_5, sizeof(__pyx_k_5), 0, 1, 0, 0},
{&__pyx_kp_u_50, __pyx_k_50, sizeof(__pyx_k_50), 0, 1, 0, 0},
{&__pyx_kp_u_51, __pyx_k_51, sizeof(__pyx_k_51), 0, 1, 0, 0},
{&__pyx_kp_u_56, __pyx_k_56, sizeof(__pyx_k_56), 0, 1, 0, 0},
{&__pyx_kp_u_57, __pyx_k_57, sizeof(__pyx_k_57), 0, 1, 0, 0},
{&__pyx_kp_u_58, __pyx_k_58, sizeof(__pyx_k_58), 0, 1, 0, 0},
+ {&__pyx_kp_u_59, __pyx_k_59, sizeof(__pyx_k_59), 0, 1, 0, 0},
{&__pyx_kp_u_6, __pyx_k_6, sizeof(__pyx_k_6), 0, 1, 0, 0},
- {&__pyx_n_u_62, __pyx_k_62, sizeof(__pyx_k_62), 0, 1, 0, 1},
- {&__pyx_n_u_63, __pyx_k_63, sizeof(__pyx_k_63), 0, 1, 0, 1},
- {&__pyx_n_s_64, __pyx_k_64, sizeof(__pyx_k_64), 0, 0, 1, 1},
+ {&__pyx_kp_u_60, __pyx_k_60, sizeof(__pyx_k_60), 0, 1, 0, 0},
{&__pyx_n_u_64, __pyx_k_64, sizeof(__pyx_k_64), 0, 1, 0, 1},
- {&__pyx_n_s_65, __pyx_k_65, sizeof(__pyx_k_65), 0, 0, 1, 1},
{&__pyx_n_u_65, __pyx_k_65, sizeof(__pyx_k_65), 0, 1, 0, 1},
- {&__pyx_kp_u_66, __pyx_k_66, sizeof(__pyx_k_66), 0, 1, 0, 0},
+ {&__pyx_n_s_66, __pyx_k_66, sizeof(__pyx_k_66), 0, 0, 1, 1},
+ {&__pyx_n_u_66, __pyx_k_66, sizeof(__pyx_k_66), 0, 1, 0, 1},
+ {&__pyx_n_s_67, __pyx_k_67, sizeof(__pyx_k_67), 0, 0, 1, 1},
+ {&__pyx_n_u_67, __pyx_k_67, sizeof(__pyx_k_67), 0, 1, 0, 1},
+ {&__pyx_kp_u_68, __pyx_k_68, sizeof(__pyx_k_68), 0, 1, 0, 0},
{&__pyx_kp_u_7, __pyx_k_7, sizeof(__pyx_k_7), 0, 1, 0, 0},
- {&__pyx_kp_s_70, __pyx_k_70, sizeof(__pyx_k_70), 0, 0, 1, 0},
- {&__pyx_n_s_71, __pyx_k_71, sizeof(__pyx_k_71), 0, 0, 1, 1},
- {&__pyx_kp_u_72, __pyx_k_72, sizeof(__pyx_k_72), 0, 1, 0, 0},
- {&__pyx_kp_u_73, __pyx_k_73, sizeof(__pyx_k_73), 0, 1, 0, 0},
+ {&__pyx_kp_s_72, __pyx_k_72, sizeof(__pyx_k_72), 0, 0, 1, 0},
+ {&__pyx_n_s_73, __pyx_k_73, sizeof(__pyx_k_73), 0, 0, 1, 1},
{&__pyx_kp_u_74, __pyx_k_74, sizeof(__pyx_k_74), 0, 1, 0, 0},
{&__pyx_kp_u_75, __pyx_k_75, sizeof(__pyx_k_75), 0, 1, 0, 0},
+ {&__pyx_kp_u_76, __pyx_k_76, sizeof(__pyx_k_76), 0, 1, 0, 0},
+ {&__pyx_kp_u_77, __pyx_k_77, sizeof(__pyx_k_77), 0, 1, 0, 0},
{&__pyx_kp_u_8, __pyx_k_8, sizeof(__pyx_k_8), 0, 1, 0, 0},
{&__pyx_kp_u_9, __pyx_k_9, sizeof(__pyx_k_9), 0, 1, 0, 0},
- {&__pyx_n_s_92, __pyx_k_92, sizeof(__pyx_k_92), 0, 0, 1, 1},
+ {&__pyx_n_s_94, __pyx_k_94, sizeof(__pyx_k_94), 0, 0, 1, 1},
{&__pyx_kp_u__0, __pyx_k__0, sizeof(__pyx_k__0), 0, 1, 0, 0},
{&__pyx_kp_u__1, __pyx_k__1, sizeof(__pyx_k__1), 0, 1, 0, 0},
{&__pyx_n_s__AttributeError, __pyx_k__AttributeError, sizeof(__pyx_k__AttributeError), 0, 0, 1, 1},
{&__pyx_n_s____copy__, __pyx_k____copy__, sizeof(__pyx_k____copy__), 0, 0, 1, 1},
{&__pyx_n_s____getattr__, __pyx_k____getattr__, sizeof(__pyx_k____getattr__), 0, 0, 1, 1},
{&__pyx_n_s____getitem__, __pyx_k____getitem__, sizeof(__pyx_k____getitem__), 0, 0, 1, 1},
+ {&__pyx_n_s____import__, __pyx_k____import__, sizeof(__pyx_k____import__), 0, 0, 1, 1},
{&__pyx_n_s____lower_bool, __pyx_k____lower_bool, sizeof(__pyx_k____lower_bool), 0, 0, 1, 1},
{&__pyx_n_s____main__, __pyx_k____main__, sizeof(__pyx_k____main__), 0, 0, 1, 1},
{&__pyx_n_s____name__, __pyx_k____name__, sizeof(__pyx_k____name__), 0, 0, 1, 1},
{&__pyx_n_s__update, __pyx_k__update, sizeof(__pyx_k__update), 0, 0, 1, 1},
{&__pyx_n_s__value, __pyx_k__value, sizeof(__pyx_k__value), 0, 0, 1, 1},
{&__pyx_n_u__value, __pyx_k__value, sizeof(__pyx_k__value), 0, 1, 0, 1},
+ {&__pyx_n_s__values, __pyx_k__values, sizeof(__pyx_k__values), 0, 0, 1, 1},
{&__pyx_n_s__xml, __pyx_k__xml, sizeof(__pyx_k__xml), 0, 0, 1, 1},
{&__pyx_n_s__xmlSchemaTypes, __pyx_k__xmlSchemaTypes, sizeof(__pyx_k__xmlSchemaTypes), 0, 0, 1, 1},
{&__pyx_n_u__xsd, __pyx_k__xsd, sizeof(__pyx_k__xsd), 0, 1, 0, 1},
{0, 0, 0, 0, 0, 0, 0}
};
static int __Pyx_InitCachedBuiltins(void) {
- __pyx_builtin_ValueError = __Pyx_GetName(__pyx_b, __pyx_n_s__ValueError); if (!__pyx_builtin_ValueError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_builtin_TypeError = __Pyx_GetName(__pyx_b, __pyx_n_s__TypeError); if (!__pyx_builtin_TypeError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_builtin_object = __Pyx_GetName(__pyx_b, __pyx_n_s__object); if (!__pyx_builtin_object) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_builtin_IndexError = __Pyx_GetName(__pyx_b, __pyx_n_s__IndexError); if (!__pyx_builtin_IndexError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 289; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_builtin_AttributeError = __Pyx_GetName(__pyx_b, __pyx_n_s__AttributeError); if (!__pyx_builtin_AttributeError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 439; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_builtin_oct = __Pyx_GetName(__pyx_b, __pyx_n_s__oct); if (!__pyx_builtin_oct) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 640; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_builtin_hex = __Pyx_GetName(__pyx_b, __pyx_n_s__hex); if (!__pyx_builtin_hex) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 643; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_builtin_enumerate = __Pyx_GetName(__pyx_b, __pyx_n_s__enumerate); if (!__pyx_builtin_enumerate) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 960; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_builtin_map = __Pyx_GetName(__pyx_b, __pyx_n_s__map); if (!__pyx_builtin_map) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 998; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_builtin_MemoryError = __Pyx_GetName(__pyx_b, __pyx_n_s__MemoryError); if (!__pyx_builtin_MemoryError) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s__ValueError); if (!__pyx_builtin_ValueError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s__TypeError); if (!__pyx_builtin_TypeError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_builtin_object = __Pyx_GetBuiltinName(__pyx_n_s__object); if (!__pyx_builtin_object) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_builtin_IndexError = __Pyx_GetBuiltinName(__pyx_n_s__IndexError); if (!__pyx_builtin_IndexError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 289; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_builtin_AttributeError = __Pyx_GetBuiltinName(__pyx_n_s__AttributeError); if (!__pyx_builtin_AttributeError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 439; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_builtin_oct = __Pyx_GetBuiltinName(__pyx_n_s__oct); if (!__pyx_builtin_oct) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 640; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_builtin_hex = __Pyx_GetBuiltinName(__pyx_n_s__hex); if (!__pyx_builtin_hex) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 643; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_builtin_enumerate = __Pyx_GetBuiltinName(__pyx_n_s__enumerate); if (!__pyx_builtin_enumerate) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 960; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_builtin_map = __Pyx_GetBuiltinName(__pyx_n_s__map); if (!__pyx_builtin_map) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 998; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_builtin_MemoryError = __Pyx_GetBuiltinName(__pyx_n_s__MemoryError); if (!__pyx_builtin_MemoryError) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
return 0;
__pyx_L1_error:;
return -1;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0);
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":457
+ * new_element.tag = element.tag
+ * elif isinstance(value, (list, tuple)):
+ * element[:] = value # <<<<<<<<<<<<<<
+ * return
+ * else:
+ */
+ __pyx_k_slice_10 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_slice_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 457; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_slice_10);
+ __Pyx_GIVEREF(__pyx_k_slice_10);
+
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":915
* def __init__(self, name, type_check, type_class, stringify=None):
* if isinstance(name, bytes):
* elif not isinstance(name, unicode):
* raise TypeError, u"Type name must be a string"
*/
- __pyx_k_tuple_14 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__ascii)); if (unlikely(!__pyx_k_tuple_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 915; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_14);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_14));
+ __pyx_k_tuple_15 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__ascii)); if (unlikely(!__pyx_k_tuple_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 915; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_15);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_15));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1034
* cdef _registerPyTypes():
* u"unsignedByte", u"nonPositiveInteger",
* u"negativeInteger", u"long", u"nonNegativeInteger",
*/
- __pyx_k_tuple_21 = PyTuple_Pack(13, ((PyObject *)__pyx_n_u__integer), ((PyObject *)__pyx_n_u__int), ((PyObject *)__pyx_n_u__short), ((PyObject *)__pyx_n_u__byte), ((PyObject *)__pyx_n_u__unsignedShort), ((PyObject *)__pyx_n_u__unsignedByte), ((PyObject *)__pyx_n_u__nonPositiveInteger), ((PyObject *)__pyx_n_u__negativeInteger), ((PyObject *)__pyx_n_u__long), ((PyObject *)__pyx_n_u__nonNegativeInteger), ((PyObject *)__pyx_n_u__unsignedLong), ((PyObject *)__pyx_n_u__unsignedInt), ((PyObject *)__pyx_n_u__positiveInteger)); if (unlikely(!__pyx_k_tuple_21)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1034; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_21);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_21));
+ __pyx_k_tuple_22 = PyTuple_Pack(13, ((PyObject *)__pyx_n_u__integer), ((PyObject *)__pyx_n_u__int), ((PyObject *)__pyx_n_u__short), ((PyObject *)__pyx_n_u__byte), ((PyObject *)__pyx_n_u__unsignedShort), ((PyObject *)__pyx_n_u__unsignedByte), ((PyObject *)__pyx_n_u__nonPositiveInteger), ((PyObject *)__pyx_n_u__negativeInteger), ((PyObject *)__pyx_n_u__long), ((PyObject *)__pyx_n_u__nonNegativeInteger), ((PyObject *)__pyx_n_u__unsignedLong), ((PyObject *)__pyx_n_u__unsignedInt), ((PyObject *)__pyx_n_u__positiveInteger)); if (unlikely(!__pyx_k_tuple_22)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1034; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_22);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_22));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1045
*
* pytype.register()
*
*/
- __pyx_k_tuple_22 = PyTuple_Pack(2, ((PyObject *)__pyx_n_u__double), ((PyObject *)__pyx_n_u__float)); if (unlikely(!__pyx_k_tuple_22)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1045; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_22);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_22));
+ __pyx_k_tuple_23 = PyTuple_Pack(2, ((PyObject *)__pyx_n_u__double), ((PyObject *)__pyx_n_u__float)); if (unlikely(!__pyx_k_tuple_23)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1045; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_23);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_23));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1049
*
* pytype.register()
*
*/
- __pyx_k_tuple_23 = PyTuple_Pack(1, ((PyObject *)__pyx_n_u__boolean)); if (unlikely(!__pyx_k_tuple_23)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1049; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_23);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_23));
+ __pyx_k_tuple_24 = PyTuple_Pack(1, ((PyObject *)__pyx_n_u__boolean)); if (unlikely(!__pyx_k_tuple_24)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1049; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_24);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_24));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1053
*
* u"Name", u"NCName", u"ID", u"IDREF", u"ENTITY",
* u"NMTOKEN", )
*/
- __pyx_k_tuple_24 = PyTuple_Pack(10, ((PyObject *)__pyx_n_u__string), ((PyObject *)__pyx_n_u__normalizedString), ((PyObject *)__pyx_n_u__token), ((PyObject *)__pyx_n_u__language), ((PyObject *)__pyx_n_u__Name), ((PyObject *)__pyx_n_u__NCName), ((PyObject *)__pyx_n_u__ID), ((PyObject *)__pyx_n_u__IDREF), ((PyObject *)__pyx_n_u__ENTITY), ((PyObject *)__pyx_n_u__NMTOKEN)); if (unlikely(!__pyx_k_tuple_24)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1053; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_24);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_24));
+ __pyx_k_tuple_25 = PyTuple_Pack(10, ((PyObject *)__pyx_n_u__string), ((PyObject *)__pyx_n_u__normalizedString), ((PyObject *)__pyx_n_u__token), ((PyObject *)__pyx_n_u__language), ((PyObject *)__pyx_n_u__Name), ((PyObject *)__pyx_n_u__NCName), ((PyObject *)__pyx_n_u__ID), ((PyObject *)__pyx_n_u__IDREF), ((PyObject *)__pyx_n_u__ENTITY), ((PyObject *)__pyx_n_u__NMTOKEN)); if (unlikely(!__pyx_k_tuple_25)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1053; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_25);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_25));
+
+ /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1344
+ * result += _dump(child, indent)
+ * if indent == 1:
+ * return result[:-1] # strip last '\n' # <<<<<<<<<<<<<<
+ * else:
+ * return result
+ */
+ __pyx_k_slice_35 = PySlice_New(Py_None, __pyx_int_neg_1, Py_None); if (unlikely(!__pyx_k_slice_35)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1344; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_slice_35);
+ __Pyx_GIVEREF(__pyx_k_slice_35);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1426
* dict_result = python.PyDict_GetItem(_SCHEMA_TYPE_DICT, value)
* dict_result = python.PyDict_GetItem(_SCHEMA_TYPE_DICT, value)
* if dict_result is not NULL:
*/
- __pyx_k_tuple_36 = PyTuple_Pack(2, ((PyObject *)__pyx_kp_u_35), __pyx_int_1); if (unlikely(!__pyx_k_tuple_36)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1426; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_36);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_36));
+ __pyx_k_tuple_38 = PyTuple_Pack(2, ((PyObject *)__pyx_kp_u_37), __pyx_int_1); if (unlikely(!__pyx_k_tuple_38)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1426; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_38);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_38));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1609
* _SCHEMA_TYPE_DICT, typename)
* dict_result = python.PyDict_GetItem(
* _SCHEMA_TYPE_DICT, typename)
*/
- __pyx_k_tuple_43 = PyTuple_Pack(2, ((PyObject *)__pyx_kp_u_35), __pyx_int_1); if (unlikely(!__pyx_k_tuple_43)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1609; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_43);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_43));
+ __pyx_k_tuple_45 = PyTuple_Pack(2, ((PyObject *)__pyx_kp_u_37), __pyx_int_1); if (unlikely(!__pyx_k_tuple_45)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1609; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_45);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_45));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1684
* if c_ns is not NULL:
* if c_ns.prefix is NULL or c_ns.prefix[0] == c'\0':
* typename_utf8 = name
*/
- __pyx_k_tuple_44 = PyTuple_Pack(2, ((PyObject *)__pyx_kp_b_35), __pyx_int_1); if (unlikely(!__pyx_k_tuple_44)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1684; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_44);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_44));
+ __pyx_k_tuple_46 = PyTuple_Pack(2, ((PyObject *)__pyx_kp_b_37), __pyx_int_1); if (unlikely(!__pyx_k_tuple_46)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1684; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_46);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_46));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1933
* if _xsi is not None:
* ns = nsmap.get(prefix)
* if ns != XML_SCHEMA_NS:
*/
- __pyx_k_tuple_47 = PyTuple_Pack(2, ((PyObject *)__pyx_kp_u_35), __pyx_int_1); if (unlikely(!__pyx_k_tuple_47)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1933; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_47);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_47));
+ __pyx_k_tuple_49 = PyTuple_Pack(2, ((PyObject *)__pyx_kp_u_37), __pyx_int_1); if (unlikely(!__pyx_k_tuple_49)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1933; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_49);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_49));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":40
*
*
* cdef object _typename(object t):
*/
- __pyx_k_tuple_67 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_66)); if (unlikely(!__pyx_k_tuple_67)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_67);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_67));
+ __pyx_k_tuple_69 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_68)); if (unlikely(!__pyx_k_tuple_69)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_69);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_69));
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":67
* return (s, python.PyUnicode_AsUTF8String(s))
* u"""set_pytype_attribute_tag(attribute_tag=None)
* Change name and namespace of the XML attribute that holds Python type
*/
- __pyx_k_tuple_68 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__attribute_tag)); if (unlikely(!__pyx_k_tuple_68)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_68);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_68));
- __pyx_k_codeobj_69 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_68, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_70, __pyx_n_s_65, 67, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_69)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_k_tuple_70 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__attribute_tag)); if (unlikely(!__pyx_k_tuple_70)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_70);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_70));
+ __pyx_k_codeobj_71 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_70, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_72, __pyx_n_s_67, 67, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_71)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":835
* return __parseBool(textOf(self._c_node))
* cdef int value = -1
* if s is not None:
*/
- __pyx_k_tuple_76 = PyTuple_Pack(2, ((PyObject *)__pyx_n_s__s), ((PyObject *)__pyx_n_s__value)); if (unlikely(!__pyx_k_tuple_76)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 835; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_76);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_76));
- __pyx_k_codeobj_77 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_76, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_70, __pyx_n_s____checkBool, 835, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_77)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 835; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_k_tuple_78 = PyTuple_Pack(2, ((PyObject *)__pyx_n_s__s), ((PyObject *)__pyx_n_s__value)); if (unlikely(!__pyx_k_tuple_78)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 835; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_78);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_78));
+ __pyx_k_codeobj_79 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_78, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_72, __pyx_n_s____checkBool, 835, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_79)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 835; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1016
* return u"false"
* return _lower_bool(b)
*
*/
- __pyx_k_tuple_78 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__b)); if (unlikely(!__pyx_k_tuple_78)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1016; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_78);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_78));
- __pyx_k_codeobj_79 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_78, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_70, __pyx_n_s____lower_bool, 1016, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_79)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1016; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_k_tuple_80 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__b)); if (unlikely(!__pyx_k_tuple_80)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1016; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_80);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_80));
+ __pyx_k_codeobj_81 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_80, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_72, __pyx_n_s____lower_bool, 1016, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_81)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1016; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1025
* return _typename(obj)
* u"""pytypename(obj)
*
*/
- __pyx_k_tuple_80 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__obj)); if (unlikely(!__pyx_k_tuple_80)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1025; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_80);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_80));
- __pyx_k_codeobj_81 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_80, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_70, __pyx_n_s__pytypename, 1025, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_81)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1025; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_k_tuple_82 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__obj)); if (unlikely(!__pyx_k_tuple_82)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1025; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_82);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_82));
+ __pyx_k_codeobj_83 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_82, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_72, __pyx_n_s__pytypename, 1025, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_83)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1025; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1072
* _registerPyTypes()
* u"""getRegisteredTypes()
*
*/
- __pyx_k_tuple_82 = PyTuple_Pack(5, ((PyObject *)__pyx_n_s__types), ((PyObject *)__pyx_n_s__known), ((PyObject *)__pyx_n_s__check), ((PyObject *)__pyx_n_s__pytype), ((PyObject *)__pyx_n_s__name)); if (unlikely(!__pyx_k_tuple_82)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1072; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_82);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_82));
- __pyx_k_codeobj_83 = (PyObject*)__Pyx_PyCode_New(0, 0, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_82, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_70, __pyx_n_s__getRegisteredTypes, 1072, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_83)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1072; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_k_tuple_84 = PyTuple_Pack(5, ((PyObject *)__pyx_n_s__types), ((PyObject *)__pyx_n_s__known), ((PyObject *)__pyx_n_s__check), ((PyObject *)__pyx_n_s__pytype), ((PyObject *)__pyx_n_s__name)); if (unlikely(!__pyx_k_tuple_84)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1072; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_84);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_84));
+ __pyx_k_codeobj_85 = (PyObject*)__Pyx_PyCode_New(0, 0, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_84, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_72, __pyx_n_s__getRegisteredTypes, 1072, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_85)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1072; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1299
* __RECURSIVE_STR = 0 # default: off
* u"""enable_recursive_str(on=True)
*
*/
- __pyx_k_tuple_84 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__on)); if (unlikely(!__pyx_k_tuple_84)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1299; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_84);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_84));
- __pyx_k_codeobj_85 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_84, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_70, __pyx_n_s_64, 1299, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_85)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1299; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_k_tuple_86 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__on)); if (unlikely(!__pyx_k_tuple_86)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1299; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_86);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_86));
+ __pyx_k_codeobj_87 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_86, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_72, __pyx_n_s_66, 1299, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_87)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1299; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1308
* __RECURSIVE_STR = on
* u"""dump(_Element element not None)
*
*/
- __pyx_k_tuple_86 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__element)); if (unlikely(!__pyx_k_tuple_86)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1308; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_86);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_86));
- __pyx_k_codeobj_87 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_86, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_70, __pyx_n_s__dump, 1308, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_87)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1308; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_k_tuple_88 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__element)); if (unlikely(!__pyx_k_tuple_88)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1308; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_88);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_88));
+ __pyx_k_codeobj_89 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_72, __pyx_n_s__dump, 1308, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_89)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1308; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1352
* # Pickle support for objectified ElementTree
* return etree.ElementTree(fromstring(data))
*
*/
- __pyx_k_tuple_88 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__data)); if (unlikely(!__pyx_k_tuple_88)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1352; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_88);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_88));
- __pyx_k_codeobj_89 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_70, __pyx_n_s_34, 1352, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_89)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1352; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_k_tuple_90 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__data)); if (unlikely(!__pyx_k_tuple_90)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1352; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_90);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_90));
+ __pyx_k_codeobj_91 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_90, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_72, __pyx_n_s_36, 1352, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_91)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1352; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1363
* elementTreeReduceFunction, __unpickleElementTree)
* return (__unpickleElementTree, (etree.tostring(obj),))
*
*/
- __pyx_k_tuple_90 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__obj)); if (unlikely(!__pyx_k_tuple_90)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1363; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_90);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_90));
- __pyx_k_codeobj_91 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_90, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_70, __pyx_n_s_92, 1363, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_91)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1363; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_k_tuple_92 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__obj)); if (unlikely(!__pyx_k_tuple_92)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1363; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_92);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_92));
+ __pyx_k_codeobj_93 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_92, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_72, __pyx_n_s_94, 1363, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_93)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1363; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1458
* return None
* empty_pytype=None):
* u"""pyannotate(element_or_tree, ignore_old=False, ignore_xsi=False, empty_pytype=None)
*/
- __pyx_k_tuple_93 = PyTuple_Pack(5, ((PyObject *)__pyx_n_s__element_or_tree), ((PyObject *)__pyx_n_s__ignore_old), ((PyObject *)__pyx_n_s__ignore_xsi), ((PyObject *)__pyx_n_s__empty_pytype), ((PyObject *)__pyx_n_s__element)); if (unlikely(!__pyx_k_tuple_93)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1458; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_93);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_93));
- __pyx_k_codeobj_94 = (PyObject*)__Pyx_PyCode_New(4, 3, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_93, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_70, __pyx_n_s__pyannotate, 1458, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_94)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1458; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_k_tuple_95 = PyTuple_Pack(5, ((PyObject *)__pyx_n_s__element_or_tree), ((PyObject *)__pyx_n_s__ignore_old), ((PyObject *)__pyx_n_s__ignore_xsi), ((PyObject *)__pyx_n_s__empty_pytype), ((PyObject *)__pyx_n_s__element)); if (unlikely(!__pyx_k_tuple_95)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1458; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_95);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_95));
+ __pyx_k_codeobj_96 = (PyObject*)__Pyx_PyCode_New(4, 3, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_95, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_72, __pyx_n_s__pyannotate, 1458, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_96)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1458; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1481
* _annotate(element, 0, 1, ignore_xsi, ignore_old, None, empty_pytype)
* empty_type=None):
* u"""xsiannotate(element_or_tree, ignore_old=False, ignore_pytype=False, empty_type=None)
*/
- __pyx_k_tuple_95 = PyTuple_Pack(5, ((PyObject *)__pyx_n_s__element_or_tree), ((PyObject *)__pyx_n_s__ignore_old), ((PyObject *)__pyx_n_s__ignore_pytype), ((PyObject *)__pyx_n_s__empty_type), ((PyObject *)__pyx_n_s__element)); if (unlikely(!__pyx_k_tuple_95)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1481; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_95);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_95));
- __pyx_k_codeobj_96 = (PyObject*)__Pyx_PyCode_New(4, 3, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_95, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_70, __pyx_n_s__xsiannotate, 1481, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_96)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1481; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_k_tuple_97 = PyTuple_Pack(5, ((PyObject *)__pyx_n_s__element_or_tree), ((PyObject *)__pyx_n_s__ignore_old), ((PyObject *)__pyx_n_s__ignore_pytype), ((PyObject *)__pyx_n_s__empty_type), ((PyObject *)__pyx_n_s__element)); if (unlikely(!__pyx_k_tuple_97)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1481; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_97);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_97));
+ __pyx_k_codeobj_98 = (PyObject*)__Pyx_PyCode_New(4, 3, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_97, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_72, __pyx_n_s__xsiannotate, 1481, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_98)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1481; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1509
* _annotate(element, 1, 0, ignore_old, ignore_pytype, empty_type, None)
* empty_pytype=None, empty_type=None, annotate_xsi=0,
* annotate_pytype=1):
*/
- __pyx_k_tuple_97 = PyTuple_Pack(8, ((PyObject *)__pyx_n_s__element_or_tree), ((PyObject *)__pyx_n_s__ignore_old), ((PyObject *)__pyx_n_s__ignore_xsi), ((PyObject *)__pyx_n_s__empty_pytype), ((PyObject *)__pyx_n_s__empty_type), ((PyObject *)__pyx_n_s__annotate_xsi), ((PyObject *)__pyx_n_s__annotate_pytype), ((PyObject *)__pyx_n_s__element)); if (unlikely(!__pyx_k_tuple_97)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1509; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_97);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_97));
- __pyx_k_codeobj_98 = (PyObject*)__Pyx_PyCode_New(7, 6, 8, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_97, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_70, __pyx_n_s__annotate, 1509, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_98)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1509; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_k_tuple_99 = PyTuple_Pack(8, ((PyObject *)__pyx_n_s__element_or_tree), ((PyObject *)__pyx_n_s__ignore_old), ((PyObject *)__pyx_n_s__ignore_xsi), ((PyObject *)__pyx_n_s__empty_pytype), ((PyObject *)__pyx_n_s__empty_type), ((PyObject *)__pyx_n_s__annotate_xsi), ((PyObject *)__pyx_n_s__annotate_pytype), ((PyObject *)__pyx_n_s__element)); if (unlikely(!__pyx_k_tuple_99)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1509; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_99);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_99));
+ __pyx_k_codeobj_100 = (PyObject*)__Pyx_PyCode_New(7, 6, 8, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_99, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_72, __pyx_n_s__annotate, 1509, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_100)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1509; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1717
* cdef object _cleanup_namespaces = etree.cleanup_namespaces
* bint xsi_nil=False, bint cleanup_namespaces=False):
* u"""deannotate(element_or_tree, pytype=True, xsi=True, xsi_nil=False, cleanup_namespaces=False)
*/
- __pyx_k_tuple_99 = PyTuple_Pack(6, ((PyObject *)__pyx_n_s__element_or_tree), ((PyObject *)__pyx_n_s__pytype), ((PyObject *)__pyx_n_s__xsi), ((PyObject *)__pyx_n_s__xsi_nil), ((PyObject *)__pyx_n_s__cleanup_namespaces), ((PyObject *)__pyx_n_s__attribute_names)); if (unlikely(!__pyx_k_tuple_99)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1717; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_99);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_99));
- __pyx_k_codeobj_100 = (PyObject*)__Pyx_PyCode_New(5, 4, 6, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_99, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_70, __pyx_n_s__deannotate, 1717, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_100)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1717; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_k_tuple_101 = PyTuple_Pack(6, ((PyObject *)__pyx_n_s__element_or_tree), ((PyObject *)__pyx_n_s__pytype), ((PyObject *)__pyx_n_s__xsi), ((PyObject *)__pyx_n_s__xsi_nil), ((PyObject *)__pyx_n_s__cleanup_namespaces), ((PyObject *)__pyx_n_s__attribute_names)); if (unlikely(!__pyx_k_tuple_101)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1717; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_101);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_101));
+ __pyx_k_codeobj_102 = (PyObject*)__Pyx_PyCode_New(5, 4, 6, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_101, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_72, __pyx_n_s__deannotate, 1717, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_102)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1717; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1757
* objectify_parser = __DEFAULT_PARSER
* u"""set_default_parser(new_parser = None)
*
*/
- __pyx_k_tuple_101 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__new_parser)); if (unlikely(!__pyx_k_tuple_101)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1757; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_101);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_101));
- __pyx_k_codeobj_102 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_101, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_70, __pyx_n_s__set_default_parser, 1757, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_102)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1757; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_k_tuple_103 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__new_parser)); if (unlikely(!__pyx_k_tuple_103)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1757; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_103);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_103));
+ __pyx_k_codeobj_104 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_103, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_72, __pyx_n_s__set_default_parser, 1757, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_104)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1757; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1775
* raise TypeError, u"parser must inherit from lxml.etree.XMLParser"
* u"""makeparser(remove_blank_text=True, **kw)
*
*/
- __pyx_k_tuple_103 = PyTuple_Pack(3, ((PyObject *)__pyx_n_s__kw), ((PyObject *)__pyx_n_s__kw), ((PyObject *)__pyx_n_s__parser)); if (unlikely(!__pyx_k_tuple_103)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1775; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_103);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_103));
- __pyx_k_codeobj_104 = (PyObject*)__Pyx_PyCode_New(0, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_103, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_70, __pyx_n_s__makeparser, 1775, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_104)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1775; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_k_tuple_105 = PyTuple_Pack(3, ((PyObject *)__pyx_n_s__kw), ((PyObject *)__pyx_n_s__kw), ((PyObject *)__pyx_n_s__parser)); if (unlikely(!__pyx_k_tuple_105)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1775; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_105);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_105));
+ __pyx_k_codeobj_106 = (PyObject*)__Pyx_PyCode_New(0, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_105, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_72, __pyx_n_s__makeparser, 1775, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_106)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1775; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1802
* SubElement = etree.SubElement
* u"""fromstring(xml, parser=None, base_url=None)
*
*/
- __pyx_k_tuple_105 = PyTuple_Pack(3, ((PyObject *)__pyx_n_s__xml), ((PyObject *)__pyx_n_s__parser), ((PyObject *)__pyx_n_s__base_url)); if (unlikely(!__pyx_k_tuple_105)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1802; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_105);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_105));
- __pyx_k_codeobj_106 = (PyObject*)__Pyx_PyCode_New(3, 1, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_105, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_70, __pyx_n_s__fromstring, 1802, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_106)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1802; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_k_tuple_107 = PyTuple_Pack(3, ((PyObject *)__pyx_n_s__xml), ((PyObject *)__pyx_n_s__parser), ((PyObject *)__pyx_n_s__base_url)); if (unlikely(!__pyx_k_tuple_107)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1802; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_107);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_107));
+ __pyx_k_codeobj_108 = (PyObject*)__Pyx_PyCode_New(3, 1, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_107, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_72, __pyx_n_s__fromstring, 1802, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_108)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1802; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1818
* return _fromstring(xml, parser, base_url=base_url)
* u"""XML(xml, parser=None, base_url=None)
*
*/
- __pyx_k_tuple_107 = PyTuple_Pack(3, ((PyObject *)__pyx_n_s__xml), ((PyObject *)__pyx_n_s__parser), ((PyObject *)__pyx_n_s__base_url)); if (unlikely(!__pyx_k_tuple_107)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1818; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_107);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_107));
- __pyx_k_codeobj_108 = (PyObject*)__Pyx_PyCode_New(3, 1, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_107, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_70, __pyx_n_s__XML, 1818, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_108)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1818; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_k_tuple_109 = PyTuple_Pack(3, ((PyObject *)__pyx_n_s__xml), ((PyObject *)__pyx_n_s__parser), ((PyObject *)__pyx_n_s__base_url)); if (unlikely(!__pyx_k_tuple_109)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1818; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_109);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_109));
+ __pyx_k_codeobj_110 = (PyObject*)__Pyx_PyCode_New(3, 1, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_109, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_72, __pyx_n_s__XML, 1818, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_110)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1818; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1837
* _parse = etree.parse
* u"""parse(f, parser=None, base_url=None)
*
*/
- __pyx_k_tuple_109 = PyTuple_Pack(3, ((PyObject *)__pyx_n_s__f), ((PyObject *)__pyx_n_s__parser), ((PyObject *)__pyx_n_s__base_url)); if (unlikely(!__pyx_k_tuple_109)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1837; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_109);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_109));
- __pyx_k_codeobj_110 = (PyObject*)__Pyx_PyCode_New(3, 1, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_109, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_70, __pyx_n_s__parse, 1837, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_110)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1837; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_k_tuple_111 = PyTuple_Pack(3, ((PyObject *)__pyx_n_s__f), ((PyObject *)__pyx_n_s__parser), ((PyObject *)__pyx_n_s__base_url)); if (unlikely(!__pyx_k_tuple_111)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1837; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_111);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_111));
+ __pyx_k_codeobj_112 = (PyObject*)__Pyx_PyCode_New(3, 1, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_111, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_72, __pyx_n_s__parse, 1837, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_112)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1837; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1860
* E = ElementMaker()
* u"""Element(_tag, attrib=None, nsmap=None, _pytype=None, **_attributes)
*
*/
- __pyx_k_tuple_111 = PyTuple_Pack(6, ((PyObject *)__pyx_n_s___tag), ((PyObject *)__pyx_n_s__attrib), ((PyObject *)__pyx_n_s__nsmap), ((PyObject *)__pyx_n_s___pytype), ((PyObject *)__pyx_n_s___attributes), ((PyObject *)__pyx_n_s___attributes)); if (unlikely(!__pyx_k_tuple_111)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1860; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_111);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_111));
- __pyx_k_codeobj_112 = (PyObject*)__Pyx_PyCode_New(4, 1, 6, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_111, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_70, __pyx_n_s__Element, 1860, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_112)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1860; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_k_tuple_113 = PyTuple_Pack(6, ((PyObject *)__pyx_n_s___tag), ((PyObject *)__pyx_n_s__attrib), ((PyObject *)__pyx_n_s__nsmap), ((PyObject *)__pyx_n_s___pytype), ((PyObject *)__pyx_n_s___attributes), ((PyObject *)__pyx_n_s___attributes)); if (unlikely(!__pyx_k_tuple_113)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1860; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_113);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_113));
+ __pyx_k_codeobj_114 = (PyObject*)__Pyx_PyCode_New(4, 1, 6, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_113, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_72, __pyx_n_s__Element, 1860, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_114)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1860; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1879
* return _makeElement(_tag, None, _attributes, nsmap)
* **_attributes):
* u"""DataElement(_value, attrib=None, nsmap=None, _pytype=None, _xsi=None, **_attributes)
*/
- __pyx_k_tuple_113 = PyTuple_Pack(15, ((PyObject *)__pyx_n_s___value), ((PyObject *)__pyx_n_s__attrib), ((PyObject *)__pyx_n_s__nsmap), ((PyObject *)__pyx_n_s___pytype), ((PyObject *)__pyx_n_s___xsi), ((PyObject *)__pyx_n_s___attributes), ((PyObject *)__pyx_n_s___attributes), ((PyObject *)__pyx_n_s__dict_result), ((PyObject *)__pyx_n_s__temp), ((PyObject *)__pyx_n_s__prefix), ((PyObject *)__pyx_n_s__name), ((PyObject *)__pyx_n_s__ns), ((PyObject *)__pyx_n_s__strval), ((PyObject *)__pyx_n_s__stringify), ((PyObject *)__pyx_n_s__type_check)); if (unlikely(!__pyx_k_tuple_113)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1879; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_113);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_113));
- __pyx_k_codeobj_114 = (PyObject*)__Pyx_PyCode_New(5, 2, 15, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_113, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_70, __pyx_n_s__DataElement, 1879, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_114)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1879; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_k_tuple_115 = PyTuple_Pack(15, ((PyObject *)__pyx_n_s___value), ((PyObject *)__pyx_n_s__attrib), ((PyObject *)__pyx_n_s__nsmap), ((PyObject *)__pyx_n_s___pytype), ((PyObject *)__pyx_n_s___xsi), ((PyObject *)__pyx_n_s___attributes), ((PyObject *)__pyx_n_s___attributes), ((PyObject *)__pyx_n_s__dict_result), ((PyObject *)__pyx_n_s__temp), ((PyObject *)__pyx_n_s__prefix), ((PyObject *)__pyx_n_s__name), ((PyObject *)__pyx_n_s__ns), ((PyObject *)__pyx_n_s__strval), ((PyObject *)__pyx_n_s__stringify), ((PyObject *)__pyx_n_s__type_check)); if (unlikely(!__pyx_k_tuple_115)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1879; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_115);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_115));
+ __pyx_k_codeobj_116 = (PyObject*)__Pyx_PyCode_New(5, 2, 15, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_115, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_72, __pyx_n_s__DataElement, 1879, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_116)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1879; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":89
*
*
* cdef _parseObjectPathString(path):
*/
- __pyx_k_tuple_116 = PyTuple_Pack(3, Py_None, Py_None, __pyx_int_0); if (unlikely(!__pyx_k_tuple_116)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_k_tuple_116);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_116));
+ __pyx_k_tuple_118 = PyTuple_Pack(3, Py_None, Py_None, __pyx_int_0); if (unlikely(!__pyx_k_tuple_118)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_k_tuple_118);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_118));
__Pyx_RefNannyFinishContext();
return 0;
__pyx_L1_error:;
PyObject *__pyx_t_4 = NULL;
PyObject *__pyx_t_5 = NULL;
PyObject *(*__pyx_t_6)(PyObject *);
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
__Pyx_RefNannyDeclarations
#if CYTHON_REFNANNY
__Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny");
#endif
/*--- Module creation code ---*/
#if PY_MAJOR_VERSION < 3
- __pyx_m = Py_InitModule4(__Pyx_NAMESTR("objectify"), __pyx_methods, __Pyx_DOCSTR(__pyx_k_61), 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m);
+ __pyx_m = Py_InitModule4(__Pyx_NAMESTR("objectify"), __pyx_methods, __Pyx_DOCSTR(__pyx_k_63), 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m);
#else
__pyx_m = PyModule_Create(&__pyx_moduledef);
#endif
if (unlikely(!__pyx_m)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_d = PyModule_GetDict(__pyx_m); if (unlikely(!__pyx_d)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_d);
#if PY_MAJOR_VERSION >= 3
{
PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
if (__Pyx_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
/*--- Initialize various global constants etc. ---*/
if (unlikely(__Pyx_InitGlobals() < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ #if PY_MAJOR_VERSION < 3 && (__PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT)
+ if (__Pyx_init_sys_getdefaultencoding_params() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ #endif
if (__pyx_module_is_main_lxml__objectify) {
if (__Pyx_SetAttrString(__pyx_m, "__name__", __pyx_n_s____main__) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
}
__Pyx_INCREF(((PyObject *)__pyx_n_u__ObjectPath));
PyList_SET_ITEM(__pyx_t_1, 10, ((PyObject *)__pyx_n_u__ObjectPath));
__Pyx_GIVEREF(((PyObject *)__pyx_n_u__ObjectPath));
- __Pyx_INCREF(((PyObject *)__pyx_n_u_62));
- PyList_SET_ITEM(__pyx_t_1, 11, ((PyObject *)__pyx_n_u_62));
- __Pyx_GIVEREF(((PyObject *)__pyx_n_u_62));
+ __Pyx_INCREF(((PyObject *)__pyx_n_u_64));
+ PyList_SET_ITEM(__pyx_t_1, 11, ((PyObject *)__pyx_n_u_64));
+ __Pyx_GIVEREF(((PyObject *)__pyx_n_u_64));
__Pyx_INCREF(((PyObject *)__pyx_n_u__ObjectifiedElement));
PyList_SET_ITEM(__pyx_t_1, 12, ((PyObject *)__pyx_n_u__ObjectifiedElement));
__Pyx_GIVEREF(((PyObject *)__pyx_n_u__ObjectifiedElement));
- __Pyx_INCREF(((PyObject *)__pyx_n_u_63));
- PyList_SET_ITEM(__pyx_t_1, 13, ((PyObject *)__pyx_n_u_63));
- __Pyx_GIVEREF(((PyObject *)__pyx_n_u_63));
+ __Pyx_INCREF(((PyObject *)__pyx_n_u_65));
+ PyList_SET_ITEM(__pyx_t_1, 13, ((PyObject *)__pyx_n_u_65));
+ __Pyx_GIVEREF(((PyObject *)__pyx_n_u_65));
__Pyx_INCREF(((PyObject *)__pyx_n_u__PYTYPE_ATTRIBUTE));
PyList_SET_ITEM(__pyx_t_1, 14, ((PyObject *)__pyx_n_u__PYTYPE_ATTRIBUTE));
__Pyx_GIVEREF(((PyObject *)__pyx_n_u__PYTYPE_ATTRIBUTE));
__Pyx_INCREF(((PyObject *)__pyx_n_u__dump));
PyList_SET_ITEM(__pyx_t_1, 21, ((PyObject *)__pyx_n_u__dump));
__Pyx_GIVEREF(((PyObject *)__pyx_n_u__dump));
- __Pyx_INCREF(((PyObject *)__pyx_n_u_64));
- PyList_SET_ITEM(__pyx_t_1, 22, ((PyObject *)__pyx_n_u_64));
- __Pyx_GIVEREF(((PyObject *)__pyx_n_u_64));
+ __Pyx_INCREF(((PyObject *)__pyx_n_u_66));
+ PyList_SET_ITEM(__pyx_t_1, 22, ((PyObject *)__pyx_n_u_66));
+ __Pyx_GIVEREF(((PyObject *)__pyx_n_u_66));
__Pyx_INCREF(((PyObject *)__pyx_n_u__fromstring));
PyList_SET_ITEM(__pyx_t_1, 23, ((PyObject *)__pyx_n_u__fromstring));
__Pyx_GIVEREF(((PyObject *)__pyx_n_u__fromstring));
__Pyx_INCREF(((PyObject *)__pyx_n_u__set_default_parser));
PyList_SET_ITEM(__pyx_t_1, 29, ((PyObject *)__pyx_n_u__set_default_parser));
__Pyx_GIVEREF(((PyObject *)__pyx_n_u__set_default_parser));
- __Pyx_INCREF(((PyObject *)__pyx_n_u_65));
- PyList_SET_ITEM(__pyx_t_1, 30, ((PyObject *)__pyx_n_u_65));
- __Pyx_GIVEREF(((PyObject *)__pyx_n_u_65));
+ __Pyx_INCREF(((PyObject *)__pyx_n_u_67));
+ PyList_SET_ITEM(__pyx_t_1, 30, ((PyObject *)__pyx_n_u_67));
+ __Pyx_GIVEREF(((PyObject *)__pyx_n_u_67));
__Pyx_INCREF(((PyObject *)__pyx_n_u__xsiannotate));
PyList_SET_ITEM(__pyx_t_1, 31, ((PyObject *)__pyx_n_u__xsiannotate));
__Pyx_GIVEREF(((PyObject *)__pyx_n_u__xsiannotate));
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s____all__, ((PyObject *)__pyx_t_1)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 19; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s____all__, ((PyObject *)__pyx_t_1)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 19; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":30
__pyx_t_2 = __Pyx_Import(((PyObject *)__pyx_n_s__lxml), ((PyObject *)__pyx_t_1), 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
- __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__etree);
- if (__pyx_t_1 == NULL) {
- if (PyErr_ExceptionMatches(PyExc_AttributeError)) __Pyx_RaiseImportError(__pyx_n_s__etree);
- if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- }
+ __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s__etree); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__Pyx_INCREF(__pyx_t_1);
__Pyx_XGOTREF(__pyx_v_4lxml_9objectify_etree);
*
* cdef object re
*/
- __pyx_t_2 = PyObject_GetAttr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s____version__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s____version__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s____version__, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s____version__, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":37
*
* cdef object _typename(object t):
*/
- __pyx_t_2 = PyObject_GetAttr(__pyx_v_4lxml_9objectify_re, __pyx_n_s__compile); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_re, __pyx_n_s__compile); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_67), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_69), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__match); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s__match); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XGOTREF(__pyx_v_4lxml_9objectify_is_special_method);
*
* cdef object TREE_PYTYPE_NAME
*/
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__PYTYPE_ATTRIBUTE, Py_None) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__PYTYPE_ATTRIBUTE, Py_None) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":62
*
* u"""set_pytype_attribute_tag(attribute_tag=None)
* Change name and namespace of the XML attribute that holds Python type
*/
- __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_1set_pytype_attribute_tag, NULL, __pyx_n_s_71); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_1set_pytype_attribute_tag, NULL, __pyx_n_s_73); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s_65, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s_67, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":97
*
*
*/
- __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s_65); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_67); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
* cdef const_xmlChar* _XML_SCHEMA_NS = _xcstr(XML_SCHEMA_NS_UTF8)
*
*/
- __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_9objectify__unicodeAndUtf8(((PyObject *)__pyx_kp_u_72))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_9objectify__unicodeAndUtf8(((PyObject *)__pyx_kp_u_74))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
if (likely(PyTuple_CheckExact(__pyx_t_1))) {
PyObject* sequence = __pyx_t_1;
* cdef const_xmlChar* _XML_SCHEMA_INSTANCE_NS = _xcstr(XML_SCHEMA_INSTANCE_NS_UTF8)
*
*/
- __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_9objectify__unicodeAndUtf8(((PyObject *)__pyx_kp_u_73))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_9objectify__unicodeAndUtf8(((PyObject *)__pyx_kp_u_75))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
if (likely(PyTuple_CheckExact(__pyx_t_1))) {
PyObject* sequence = __pyx_t_1;
* cdef object XML_SCHEMA_INSTANCE_TYPE_ATTR = u"{%s}type" % XML_SCHEMA_INSTANCE_NS
*
*/
- __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_74), __pyx_v_4lxml_9objectify_XML_SCHEMA_INSTANCE_NS); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 111; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_76), __pyx_v_4lxml_9objectify_XML_SCHEMA_INSTANCE_NS); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 111; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_1));
__Pyx_XGOTREF(__pyx_v_4lxml_9objectify_XML_SCHEMA_INSTANCE_NIL_ATTR);
__Pyx_DECREF(__pyx_v_4lxml_9objectify_XML_SCHEMA_INSTANCE_NIL_ATTR);
*
*
*/
- __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_75), __pyx_v_4lxml_9objectify_XML_SCHEMA_INSTANCE_NS); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_77), __pyx_v_4lxml_9objectify_XML_SCHEMA_INSTANCE_NS); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_1));
__Pyx_XGOTREF(__pyx_v_4lxml_9objectify_XML_SCHEMA_INSTANCE_TYPE_ATTR);
__Pyx_DECREF(__pyx_v_4lxml_9objectify_XML_SCHEMA_INSTANCE_TYPE_ATTR);
* cdef int value = -1
* if s is not None:
*/
- __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_3__checkBool, NULL, __pyx_n_s_71); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 835; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_3__checkBool, NULL, __pyx_n_s_73); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 835; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s____checkBool, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 835; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s____checkBool, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 835; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1002
* return _lower_bool(b)
*
*/
- __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_7__lower_bool, NULL, __pyx_n_s_71); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1016; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_7__lower_bool, NULL, __pyx_n_s_73); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1016; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s____lower_bool, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1016; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s____lower_bool, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1016; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1025
* u"""pytypename(obj)
*
*/
- __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_9pytypename, NULL, __pyx_n_s_71); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1025; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_9pytypename, NULL, __pyx_n_s_73); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1025; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pytypename, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1025; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__pytypename, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1025; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1068
* u"""getRegisteredTypes()
*
*/
- __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_11getRegisteredTypes, NULL, __pyx_n_s_71); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1072; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_11getRegisteredTypes, NULL, __pyx_n_s_73); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1072; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__getRegisteredTypes, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1072; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__getRegisteredTypes, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1072; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1243
*/
__pyx_t_2 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1243; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
- __pyx_k_25 = __pyx_t_2;
+ __pyx_k_26 = __pyx_t_2;
__Pyx_GIVEREF(__pyx_t_2);
__pyx_t_2 = 0;
*/
__pyx_t_2 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1299; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
- __pyx_k_28 = __pyx_t_2;
+ __pyx_k_29 = __pyx_t_2;
__Pyx_GIVEREF(__pyx_t_2);
__pyx_t_2 = 0;
- __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_13enable_recursive_str, NULL, __pyx_n_s_71); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1299; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_13enable_recursive_str, NULL, __pyx_n_s_73); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1299; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s_64, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1299; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s_66, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1299; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1308
* u"""dump(_Element element not None)
*
*/
- __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_15dump, NULL, __pyx_n_s_71); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1308; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_15dump, NULL, __pyx_n_s_73); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1308; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__dump, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1308; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__dump, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1308; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1352
* return etree.ElementTree(fromstring(data))
*
*/
- __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_17__unpickleElementTree, NULL, __pyx_n_s_71); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1352; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_17__unpickleElementTree, NULL, __pyx_n_s_73); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1352; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s_34, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1352; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s_36, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1352; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1363
* return (__unpickleElementTree, (etree.tostring(obj),))
*
*/
- __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_19pickleReduceElementTree, NULL, __pyx_n_s_71); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1363; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_19pickleReduceElementTree, NULL, __pyx_n_s_73); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1363; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s_92, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1363; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s_94, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1363; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1366
* del pickleReduceElementTree
*
*/
- __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s_92); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1366; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_94); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1366; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1366; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
*
* ################################################################################
*/
- if (__Pyx_DelAttrString(__pyx_m, "pickleReduceElementTree") < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1367; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_94) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1367; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1458
* return None
*/
__pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1458; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_k_37 = __pyx_t_1;
+ __pyx_k_39 = __pyx_t_1;
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1458; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_k_38 = __pyx_t_1;
+ __pyx_k_40 = __pyx_t_1;
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
- __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_21pyannotate, NULL, __pyx_n_s_71); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1458; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_21pyannotate, NULL, __pyx_n_s_73); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1458; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pyannotate, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1458; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__pyannotate, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1458; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1481
*/
__pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1481; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_k_39 = __pyx_t_1;
+ __pyx_k_41 = __pyx_t_1;
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1481; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_k_40 = __pyx_t_1;
+ __pyx_k_42 = __pyx_t_1;
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
- __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_23xsiannotate, NULL, __pyx_n_s_71); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1481; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_23xsiannotate, NULL, __pyx_n_s_73); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1481; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__xsiannotate, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1481; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__xsiannotate, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1481; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1509
*/
__pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1509; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_k_41 = __pyx_t_1;
+ __pyx_k_43 = __pyx_t_1;
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1509; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- __pyx_k_42 = __pyx_t_1;
+ __pyx_k_44 = __pyx_t_1;
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
- __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_25annotate, NULL, __pyx_n_s_71); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1509; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_25annotate, NULL, __pyx_n_s_73); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1509; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__annotate, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1509; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__annotate, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1509; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1714
* cdef object _cleanup_namespaces = etree.cleanup_namespaces
*
*/
- __pyx_t_1 = PyObject_GetAttr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s__strip_attributes); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1714; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s__strip_attributes); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1714; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XGOTREF(__pyx_v_4lxml_9objectify__strip_attributes);
__Pyx_DECREF(__pyx_v_4lxml_9objectify__strip_attributes);
*
* def deannotate(element_or_tree, *, bint pytype=True, bint xsi=True,
*/
- __pyx_t_1 = PyObject_GetAttr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s__cleanup_namespaces); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1715; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s__cleanup_namespaces); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1715; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XGOTREF(__pyx_v_4lxml_9objectify__cleanup_namespaces);
__Pyx_DECREF(__pyx_v_4lxml_9objectify__cleanup_namespaces);
* 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 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_27deannotate, NULL, __pyx_n_s_71); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1717; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_27deannotate, NULL, __pyx_n_s_73); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1717; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__deannotate, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1717; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__deannotate, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1717; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1751
* __DEFAULT_PARSER.set_element_class_lookup( ObjectifyElementClassLookup() )
*
*/
- __pyx_t_1 = PyObject_GetAttr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s__XMLParser); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1751; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s__XMLParser); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1751; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1751; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_2));
*
* cdef object objectify_parser
*/
- __pyx_t_4 = PyObject_GetAttr(__pyx_v_4lxml_9objectify___DEFAULT_PARSER, __pyx_n_s_46); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1752; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify___DEFAULT_PARSER, __pyx_n_s_48); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1752; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_9objectify_ObjectifyElementClassLookup)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1752; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
* u"""set_default_parser(new_parser = None)
*
*/
- __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_29set_default_parser, NULL, __pyx_n_s_71); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1757; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_29set_default_parser, NULL, __pyx_n_s_73); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1757; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__set_default_parser, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1757; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__set_default_parser, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1757; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1775
* u"""makeparser(remove_blank_text=True, **kw)
*
*/
- __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_31makeparser, NULL, __pyx_n_s_71); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1775; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_31makeparser, NULL, __pyx_n_s_73); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1775; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__makeparser, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1775; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__makeparser, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1775; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1798
*
* SubElement = etree.SubElement
*/
- __pyx_t_2 = PyObject_GetAttr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s__fromstring); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1798; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s__fromstring); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1798; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__Pyx_XGOTREF(__pyx_v_4lxml_9objectify__fromstring);
__Pyx_DECREF(__pyx_v_4lxml_9objectify__fromstring);
*
* def fromstring(xml, parser=None, *, base_url=None):
*/
- __pyx_t_2 = PyObject_GetAttr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s__SubElement); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1800; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s__SubElement); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1800; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__SubElement, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1800; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__SubElement, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1800; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1802
* u"""fromstring(xml, parser=None, base_url=None)
*
*/
- __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_33fromstring, NULL, __pyx_n_s_71); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1802; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_33fromstring, NULL, __pyx_n_s_73); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1802; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__fromstring, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1802; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__fromstring, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1802; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1818
* u"""XML(xml, parser=None, base_url=None)
*
*/
- __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_35XML, NULL, __pyx_n_s_71); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1818; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_35XML, NULL, __pyx_n_s_73); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1818; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__XML, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1818; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__XML, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1818; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1835
*
* def parse(f, parser=None, *, base_url=None):
*/
- __pyx_t_2 = PyObject_GetAttr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s__parse); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1835; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s__parse); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1835; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__Pyx_XGOTREF(__pyx_v_4lxml_9objectify__parse);
__Pyx_DECREF(__pyx_v_4lxml_9objectify__parse);
* u"""parse(f, parser=None, base_url=None)
*
*/
- __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_37parse, NULL, __pyx_n_s_71); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1837; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_37parse, NULL, __pyx_n_s_73); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1837; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__parse, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1837; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__parse, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1837; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1852
*/
__pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_9objectify_ElementMaker)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1858; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__E, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1858; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__E, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1858; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1860
* u"""Element(_tag, attrib=None, nsmap=None, _pytype=None, **_attributes)
*
*/
- __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_39Element, NULL, __pyx_n_s_71); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1860; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_39Element, NULL, __pyx_n_s_73); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1860; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__Element, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1860; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__Element, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1860; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1879
* **_attributes):
* u"""DataElement(_value, attrib=None, nsmap=None, _pytype=None, _xsi=None, **_attributes)
*/
- __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_41DataElement, NULL, __pyx_n_s_71); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1879; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_41DataElement, NULL, __pyx_n_s_73); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1879; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s__DataElement, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1879; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s__DataElement, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1879; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":84
* ur"(\.?)\s*(?:\{([^}]*)\})?\s*([^.{}\[\]\s]+)\s*(?:\[\s*([-0-9]+)\s*\])?",
* re.U).match
*/
- __pyx_t_2 = PyObject_GetAttr(__pyx_v_4lxml_9objectify_re, __pyx_n_s__compile); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_re, __pyx_n_s__compile); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":86
*
* cdef object _RELATIVE_PATH_SEGMENT
*/
- __pyx_t_1 = PyObject_GetAttr(__pyx_v_4lxml_9objectify_re, __pyx_n_s__U); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_re, __pyx_n_s__U); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
- __Pyx_INCREF(((PyObject *)__pyx_kp_u_115));
- PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_kp_u_115));
- __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_115));
+ __Pyx_INCREF(((PyObject *)__pyx_kp_u_117));
+ PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_kp_u_117));
+ __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_117));
PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1);
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
- __pyx_t_4 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__match); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s__match); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XGOTREF(__pyx_v_4lxml_9objectify___MATCH_PATH_SEGMENT);
*
* cdef _parseObjectPathString(path):
*/
- __Pyx_INCREF(((PyObject *)__pyx_k_tuple_116));
+ __Pyx_INCREF(((PyObject *)__pyx_k_tuple_118));
__Pyx_XGOTREF(__pyx_v_4lxml_9objectify__RELATIVE_PATH_SEGMENT);
__Pyx_DECREF(__pyx_v_4lxml_9objectify__RELATIVE_PATH_SEGMENT);
- __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_116));
- __pyx_v_4lxml_9objectify__RELATIVE_PATH_SEGMENT = ((PyObject *)__pyx_k_tuple_116);
+ __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_118));
+ __pyx_v_4lxml_9objectify__RELATIVE_PATH_SEGMENT = ((PyObject *)__pyx_k_tuple_118);
/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1
* u"""The ``lxml.objectify`` module implements a Python object API for # <<<<<<<<<<<<<<
*/
__pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_4));
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s____test__, ((PyObject *)__pyx_t_4)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s____test__, ((PyObject *)__pyx_t_4)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
if (__Pyx_RegisterCleanup()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
goto __pyx_L0;
}
static void __Pyx_CleanupGlobals(void) {
- Py_CLEAR(__pyx_k_tuple_14);
- Py_CLEAR(__pyx_k_tuple_21);
+ Py_CLEAR(__pyx_k_slice_10);
+ Py_CLEAR(__pyx_k_tuple_15);
Py_CLEAR(__pyx_k_tuple_22);
Py_CLEAR(__pyx_k_tuple_23);
Py_CLEAR(__pyx_k_tuple_24);
- Py_CLEAR(__pyx_k_tuple_36);
- Py_CLEAR(__pyx_k_tuple_43);
- Py_CLEAR(__pyx_k_tuple_44);
- Py_CLEAR(__pyx_k_tuple_47);
- Py_CLEAR(__pyx_k_tuple_67);
- Py_CLEAR(__pyx_k_tuple_68);
- Py_CLEAR(__pyx_k_codeobj_69);
- Py_CLEAR(__pyx_k_tuple_76);
- Py_CLEAR(__pyx_k_codeobj_77);
+ Py_CLEAR(__pyx_k_tuple_25);
+ Py_CLEAR(__pyx_k_slice_35);
+ Py_CLEAR(__pyx_k_tuple_38);
+ Py_CLEAR(__pyx_k_tuple_45);
+ Py_CLEAR(__pyx_k_tuple_46);
+ Py_CLEAR(__pyx_k_tuple_49);
+ Py_CLEAR(__pyx_k_tuple_69);
+ Py_CLEAR(__pyx_k_tuple_70);
+ Py_CLEAR(__pyx_k_codeobj_71);
Py_CLEAR(__pyx_k_tuple_78);
Py_CLEAR(__pyx_k_codeobj_79);
Py_CLEAR(__pyx_k_tuple_80);
Py_CLEAR(__pyx_k_codeobj_89);
Py_CLEAR(__pyx_k_tuple_90);
Py_CLEAR(__pyx_k_codeobj_91);
- Py_CLEAR(__pyx_k_tuple_93);
- Py_CLEAR(__pyx_k_codeobj_94);
+ Py_CLEAR(__pyx_k_tuple_92);
+ Py_CLEAR(__pyx_k_codeobj_93);
Py_CLEAR(__pyx_k_tuple_95);
Py_CLEAR(__pyx_k_codeobj_96);
Py_CLEAR(__pyx_k_tuple_97);
Py_CLEAR(__pyx_k_codeobj_112);
Py_CLEAR(__pyx_k_tuple_113);
Py_CLEAR(__pyx_k_codeobj_114);
- Py_CLEAR(__pyx_k_tuple_116);
+ Py_CLEAR(__pyx_k_tuple_115);
+ Py_CLEAR(__pyx_k_codeobj_116);
+ Py_CLEAR(__pyx_k_tuple_118);
if (__pyx_code_cache.entries) {
__Pyx_CodeObjectCacheEntry* entries = __pyx_code_cache.entries;
int i, count = __pyx_code_cache.count;
Py_CLEAR(__pyx_v_4lxml_9objectify_etree);
__Pyx_CleanupGlobals();
/*--- Type import cleanup code ---*/
- Py_CLEAR(__pyx_ptype_4lxml_8includes_11etreepublic__ElementTree);
- Py_CLEAR(__pyx_ptype_4lxml_8includes_11etreepublic_ElementBase);
+ Py_CLEAR(__pyx_ptype_4lxml_8includes_11etreepublic_FallbackElementClassLookup);
Py_CLEAR(__pyx_ptype_4lxml_8includes_11etreepublic__ElementTagMatcher);
- Py_CLEAR(__pyx_ptype_4lxml_8includes_11etreepublic__Element);
+ Py_CLEAR(__pyx_ptype_4lxml_8includes_11etreepublic_ElementBase);
Py_CLEAR(__pyx_ptype_4lxml_8includes_11etreepublic_ElementClassLookup);
- Py_CLEAR(__pyx_ptype_4lxml_8includes_11etreepublic_FallbackElementClassLookup);
- Py_CLEAR(__pyx_ptype_4lxml_8includes_11etreepublic__ElementIterator);
+ Py_CLEAR(__pyx_ptype_4lxml_8includes_11etreepublic__ElementTree);
Py_CLEAR(__pyx_ptype_4lxml_8includes_11etreepublic__Document);
+ Py_CLEAR(__pyx_ptype_4lxml_8includes_11etreepublic__ElementIterator);
+ Py_CLEAR(__pyx_ptype_4lxml_8includes_11etreepublic__Element);
/*--- Builtin cleanup code ---*/
Py_CLEAR(__pyx_builtin_ValueError);
Py_CLEAR(__pyx_builtin_TypeError);
}
#endif /* CYTHON_REFNANNY */
-static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name) {
- PyObject *result;
- result = PyObject_GetAttr(dict, name);
- if (!result) {
- if (dict != __pyx_b) {
- PyErr_Clear();
- result = PyObject_GetAttr(__pyx_b, name);
- }
- if (!result) {
- PyErr_SetObject(PyExc_NameError, name);
- }
+static PyObject *__Pyx_GetBuiltinName(PyObject *name) {
+ PyObject* result = __Pyx_PyObject_GetAttrStr(__pyx_b, name);
+ if (unlikely(!result)) {
+ PyErr_Format(PyExc_NameError,
+#if PY_MAJOR_VERSION >= 3
+ "name '%U' is not defined", name);
+#else
+ "name '%s' is not defined", PyString_AS_STRING(name));
+#endif
}
return result;
}
}
}
+static CYTHON_INLINE PyObject *__Pyx_GetModuleGlobalName(PyObject *name) {
+ PyObject *result;
+#if CYTHON_COMPILING_IN_CPYTHON
+ result = PyDict_GetItem(__pyx_d, name);
+ if (result) {
+ Py_INCREF(result);
+ } else {
+#else
+ result = PyObject_GetItem(__pyx_d, name);
+ if (!result) {
+ PyErr_Clear();
+#endif
+ result = __Pyx_GetBuiltinName(name);
+ }
+ return result;
+}
+
static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) {
if (unlikely(!type)) {
PyErr_Format(PyExc_SystemError, "Missing type object");
}
value = type;
#if PY_VERSION_HEX < 0x02050000
- if (PyInstance_Check(type)) {
- type = (PyObject*) ((PyInstanceObject*)type)->in_class;
- Py_INCREF(type);
- }
- else {
- type = 0;
- PyErr_SetString(PyExc_TypeError,
- "raise: exception must be an old-style class or instance");
- goto raise_error;
- }
- #else
- type = (PyObject*) Py_TYPE(type);
+ if (PyInstance_Check(type)) {
+ type = (PyObject*) ((PyInstanceObject*)type)->in_class;
Py_INCREF(type);
- if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) {
- PyErr_SetString(PyExc_TypeError,
- "raise: exception class must be a subclass of BaseException");
- goto raise_error;
- }
+ } else {
+ type = 0;
+ PyErr_SetString(PyExc_TypeError,
+ "raise: exception must be an old-style class or instance");
+ goto raise_error;
+ }
+ #else
+ type = (PyObject*) Py_TYPE(type);
+ Py_INCREF(type);
+ if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) {
+ PyErr_SetString(PyExc_TypeError,
+ "raise: exception class must be a subclass of BaseException");
+ goto raise_error;
+ }
#endif
}
__Pyx_ErrRestore(type, value, tb);
else if (PyTuple_Check(value)) {
Py_INCREF(value);
args = value;
- }
- else
+ } else
args = PyTuple_Pack(1, value);
if (!args)
goto bad;
"raise: exception class must be a subclass of BaseException");
goto bad;
}
+#if PY_VERSION_HEX >= 0x03030000
+ if (cause) {
+#else
if (cause && cause != Py_None) {
+#endif
PyObject *fixed_cause;
- if (PyExceptionClass_Check(cause)) {
+ if (cause == Py_None) {
+ fixed_cause = NULL;
+ } else if (PyExceptionClass_Check(cause)) {
fixed_cause = PyObject_CallObject(cause, NULL);
if (fixed_cause == NULL)
goto bad;
- }
- else if (PyExceptionInstance_Check(cause)) {
+ } else if (PyExceptionInstance_Check(cause)) {
fixed_cause = cause;
Py_INCREF(fixed_cause);
- }
- else {
+ } else {
PyErr_SetString(PyExc_TypeError,
"exception causes must derive from "
"BaseException");
}
#endif
+static CYTHON_INLINE int __Pyx_PyObject_SetSlice(
+ PyObject* obj, PyObject* value, Py_ssize_t cstart, Py_ssize_t cstop,
+ PyObject** _py_start, PyObject** _py_stop, PyObject** _py_slice,
+ int has_cstart, int has_cstop, CYTHON_UNUSED int wraparound) {
+#if CYTHON_COMPILING_IN_CPYTHON
+ PyMappingMethods* mp;
+#if PY_MAJOR_VERSION < 3
+ PySequenceMethods* ms = Py_TYPE(obj)->tp_as_sequence;
+ if (likely(ms && ms->sq_ass_slice)) {
+ if (!has_cstart) {
+ if (_py_start && (*_py_start != Py_None)) {
+ cstart = __Pyx_PyIndex_AsSsize_t(*_py_start);
+ if ((cstart == (Py_ssize_t)-1) && PyErr_Occurred()) goto bad;
+ } else
+ cstart = 0;
+ }
+ if (!has_cstop) {
+ if (_py_stop && (*_py_stop != Py_None)) {
+ cstop = __Pyx_PyIndex_AsSsize_t(*_py_stop);
+ if ((cstop == (Py_ssize_t)-1) && PyErr_Occurred()) goto bad;
+ } else
+ cstop = PY_SSIZE_T_MAX;
+ }
+ if (wraparound && unlikely((cstart < 0) | (cstop < 0)) && likely(ms->sq_length)) {
+ Py_ssize_t l = ms->sq_length(obj);
+ if (likely(l >= 0)) {
+ if (cstop < 0) {
+ cstop += l;
+ if (cstop < 0) cstop = 0;
+ }
+ if (cstart < 0) {
+ cstart += l;
+ if (cstart < 0) cstart = 0;
+ }
+ } else {
+ if (PyErr_ExceptionMatches(PyExc_OverflowError))
+ PyErr_Clear();
+ else
+ goto bad;
+ }
+ }
+ return ms->sq_ass_slice(obj, cstart, cstop, value);
+ }
+#endif
+ mp = Py_TYPE(obj)->tp_as_mapping;
+ if (likely(mp && mp->mp_ass_subscript))
+#endif
+ {
+ int result;
+ PyObject *py_slice, *py_start, *py_stop;
+ if (_py_slice) {
+ py_slice = *_py_slice;
+ } else {
+ PyObject* owned_start = NULL;
+ PyObject* owned_stop = NULL;
+ if (_py_start) {
+ py_start = *_py_start;
+ } else {
+ if (has_cstart) {
+ owned_start = py_start = PyInt_FromSsize_t(cstart);
+ if (unlikely(!py_start)) goto bad;
+ } else
+ py_start = Py_None;
+ }
+ if (_py_stop) {
+ py_stop = *_py_stop;
+ } else {
+ if (has_cstop) {
+ owned_stop = py_stop = PyInt_FromSsize_t(cstop);
+ if (unlikely(!py_stop)) {
+ Py_XDECREF(owned_start);
+ goto bad;
+ }
+ } else
+ py_stop = Py_None;
+ }
+ py_slice = PySlice_New(py_start, py_stop, Py_None);
+ Py_XDECREF(owned_start);
+ Py_XDECREF(owned_stop);
+ if (unlikely(!py_slice)) goto bad;
+ }
+#if CYTHON_COMPILING_IN_CPYTHON
+ result = mp->mp_ass_subscript(obj, py_slice, value);
+#else
+ result = value ? PyObject_SetItem(obj, py_slice, value) : PyObject_DelItem(obj, py_slice);
+#endif
+ if (!_py_slice) {
+ Py_DECREF(py_slice);
+ }
+ return result;
+ }
+ PyErr_Format(PyExc_TypeError,
+ "'%.200s' object does not support slice %s",
+ Py_TYPE(obj)->tp_name, value ? "assignment" : "deletion");
+bad:
+ return -1;
+}
+
+static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j) {
+ PyObject *r;
+ if (!j) return NULL;
+ r = PyObject_GetItem(o, j);
+ Py_DECREF(j);
+ return r;
+}
+static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i,
+ int wraparound, int boundscheck) {
+#if CYTHON_COMPILING_IN_CPYTHON
+ if (wraparound & unlikely(i < 0)) i += PyList_GET_SIZE(o);
+ if ((!boundscheck) || likely((0 <= i) & (i < PyList_GET_SIZE(o)))) {
+ PyObject *r = PyList_GET_ITEM(o, i);
+ Py_INCREF(r);
+ return r;
+ }
+ return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
+#else
+ return PySequence_GetItem(o, i);
+#endif
+}
+static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i,
+ int wraparound, int boundscheck) {
+#if CYTHON_COMPILING_IN_CPYTHON
+ if (wraparound & unlikely(i < 0)) i += PyTuple_GET_SIZE(o);
+ if ((!boundscheck) || likely((0 <= i) & (i < PyTuple_GET_SIZE(o)))) {
+ PyObject *r = PyTuple_GET_ITEM(o, i);
+ Py_INCREF(r);
+ return r;
+ }
+ return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
+#else
+ return PySequence_GetItem(o, i);
+#endif
+}
+static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i,
+ int is_list, int wraparound, int boundscheck) {
+#if CYTHON_COMPILING_IN_CPYTHON
+ if (is_list || PyList_CheckExact(o)) {
+ Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyList_GET_SIZE(o);
+ if ((!boundscheck) || (likely((n >= 0) & (n < PyList_GET_SIZE(o))))) {
+ PyObject *r = PyList_GET_ITEM(o, n);
+ Py_INCREF(r);
+ return r;
+ }
+ }
+ else if (PyTuple_CheckExact(o)) {
+ Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyTuple_GET_SIZE(o);
+ if ((!boundscheck) || likely((n >= 0) & (n < PyTuple_GET_SIZE(o)))) {
+ PyObject *r = PyTuple_GET_ITEM(o, n);
+ Py_INCREF(r);
+ return r;
+ }
+ } else {
+ PySequenceMethods *m = Py_TYPE(o)->tp_as_sequence;
+ if (likely(m && m->sq_item)) {
+ if (wraparound && unlikely(i < 0) && likely(m->sq_length)) {
+ Py_ssize_t l = m->sq_length(o);
+ if (likely(l >= 0)) {
+ i += l;
+ } else {
+ if (PyErr_ExceptionMatches(PyExc_OverflowError))
+ PyErr_Clear();
+ else
+ return NULL;
+ }
+ }
+ return m->sq_item(o, i);
+ }
+ }
+#else
+ if (is_list || PySequence_Check(o)) {
+ return PySequence_GetItem(o, i);
+ }
+#endif
+ return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
+}
+
static double __Pyx__PyObject_AsDouble(PyObject* obj) {
PyObject* float_value;
#if CYTHON_COMPILING_IN_PYPY
float_value = PyNumber_Float(obj);
#else
- if (Py_TYPE(obj)->tp_as_number && Py_TYPE(obj)->tp_as_number->nb_float) {
- return PyFloat_AsDouble(obj);
+ PyNumberMethods *nb = Py_TYPE(obj)->tp_as_number;
+ if (likely(nb) && likely(nb->nb_float)) {
+ float_value = nb->nb_float(obj);
+ if (likely(float_value) && unlikely(!PyFloat_Check(float_value))) {
+ PyErr_Format(PyExc_TypeError,
+ "__float__ returned non-float (type %.200s)",
+ Py_TYPE(float_value)->tp_name);
+ Py_DECREF(float_value);
+ goto bad;
+ }
} else if (PyUnicode_CheckExact(obj) || PyBytes_CheckExact(obj)) {
#if PY_MAJOR_VERSION >= 3
float_value = PyFloat_FromString(obj);
return (double)-1;
}
+static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *o, PyObject *n) {
+#if CYTHON_COMPILING_IN_CPYTHON
+#if PY_MAJOR_VERSION >= 3
+ if (likely(PyUnicode_Check(n)))
+#else
+ if (likely(PyString_Check(n)))
+#endif
+ return __Pyx_PyObject_GetAttrStr(o, n);
+#endif
+ return PyObject_GetAttr(o, n);
+}
+
static CYTHON_INLINE PyObject *__Pyx_GetAttr3(PyObject *o, PyObject *n, PyObject *d) {
- PyObject *r = PyObject_GetAttr(o, n);
+ PyObject *r = __Pyx_GetAttr(o, n);
if (!r) {
if (!PyErr_ExceptionMatches(PyExc_AttributeError))
goto bad;
return NULL;
}
+static PyObject* __Pyx_PyDict_GetItemDefault(PyObject* d, PyObject* key, PyObject* default_value) {
+ PyObject* value;
+#if PY_MAJOR_VERSION >= 3
+ value = PyDict_GetItemWithError(d, key);
+ if (unlikely(!value)) {
+ if (unlikely(PyErr_Occurred()))
+ return NULL;
+ value = default_value;
+ }
+ Py_INCREF(value);
+#else
+ if (PyString_CheckExact(key) || PyUnicode_CheckExact(key) || PyInt_CheckExact(key)) {
+ value = PyDict_GetItem(d, key);
+ if (unlikely(!value)) {
+ value = default_value;
+ }
+ Py_INCREF(value);
+ } else {
+ if (default_value == Py_None)
+ default_value = NULL;
+ value = PyObject_CallMethodObjArgs(
+ d, __pyx_n_s__get, key, default_value, NULL);
+ }
+#endif
+ return value;
+}
+
+#if PY_MAJOR_VERSION >= 3
+static CYTHON_INLINE PyObject* __Pyx_PyDict_Items(PyObject* d) {
+ return PyObject_CallMethodObjArgs(d, __pyx_n_s__items, NULL);
+}
+#endif
+
static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname) {
PyErr_Format(PyExc_UnboundLocalError, "local variable '%s' referenced before assignment", varname);
}
+#if PY_MAJOR_VERSION >= 3
+static CYTHON_INLINE PyObject* __Pyx_PyDict_Values(PyObject* d) {
+ return PyObject_CallMethodObjArgs(d, __pyx_n_s__values, NULL);
+}
+#endif
+
static CYTHON_INLINE int __Pyx_CheckKeywordStrings(
PyObject *kwdict,
const char* function_name,
return 0;
}
+static CYTHON_INLINE PyObject* __Pyx_PyObject_GetSlice(
+ PyObject* obj, Py_ssize_t cstart, Py_ssize_t cstop,
+ PyObject** _py_start, PyObject** _py_stop, PyObject** _py_slice,
+ int has_cstart, int has_cstop, CYTHON_UNUSED int wraparound) {
+#if CYTHON_COMPILING_IN_CPYTHON
+ PyMappingMethods* mp;
+#if PY_MAJOR_VERSION < 3
+ PySequenceMethods* ms = Py_TYPE(obj)->tp_as_sequence;
+ if (likely(ms && ms->sq_slice)) {
+ if (!has_cstart) {
+ if (_py_start && (*_py_start != Py_None)) {
+ cstart = __Pyx_PyIndex_AsSsize_t(*_py_start);
+ if ((cstart == (Py_ssize_t)-1) && PyErr_Occurred()) goto bad;
+ } else
+ cstart = 0;
+ }
+ if (!has_cstop) {
+ if (_py_stop && (*_py_stop != Py_None)) {
+ cstop = __Pyx_PyIndex_AsSsize_t(*_py_stop);
+ if ((cstop == (Py_ssize_t)-1) && PyErr_Occurred()) goto bad;
+ } else
+ cstop = PY_SSIZE_T_MAX;
+ }
+ if (wraparound && unlikely((cstart < 0) | (cstop < 0)) && likely(ms->sq_length)) {
+ Py_ssize_t l = ms->sq_length(obj);
+ if (likely(l >= 0)) {
+ if (cstop < 0) {
+ cstop += l;
+ if (cstop < 0) cstop = 0;
+ }
+ if (cstart < 0) {
+ cstart += l;
+ if (cstart < 0) cstart = 0;
+ }
+ } else {
+ if (PyErr_ExceptionMatches(PyExc_OverflowError))
+ PyErr_Clear();
+ else
+ goto bad;
+ }
+ }
+ return ms->sq_slice(obj, cstart, cstop);
+ }
+#endif
+ mp = Py_TYPE(obj)->tp_as_mapping;
+ if (likely(mp && mp->mp_subscript))
+#endif
+ {
+ PyObject* result;
+ PyObject *py_slice, *py_start, *py_stop;
+ if (_py_slice) {
+ py_slice = *_py_slice;
+ } else {
+ PyObject* owned_start = NULL;
+ PyObject* owned_stop = NULL;
+ if (_py_start) {
+ py_start = *_py_start;
+ } else {
+ if (has_cstart) {
+ owned_start = py_start = PyInt_FromSsize_t(cstart);
+ if (unlikely(!py_start)) goto bad;
+ } else
+ py_start = Py_None;
+ }
+ if (_py_stop) {
+ py_stop = *_py_stop;
+ } else {
+ if (has_cstop) {
+ owned_stop = py_stop = PyInt_FromSsize_t(cstop);
+ if (unlikely(!py_stop)) {
+ Py_XDECREF(owned_start);
+ goto bad;
+ }
+ } else
+ py_stop = Py_None;
+ }
+ py_slice = PySlice_New(py_start, py_stop, Py_None);
+ Py_XDECREF(owned_start);
+ Py_XDECREF(owned_stop);
+ if (unlikely(!py_slice)) goto bad;
+ }
+#if CYTHON_COMPILING_IN_CPYTHON
+ result = mp->mp_subscript(obj, py_slice);
+#else
+ result = PyObject_GetItem(obj, py_slice);
+#endif
+ if (!_py_slice) {
+ Py_DECREF(py_slice);
+ }
+ return result;
+ }
+ PyErr_Format(PyExc_TypeError,
+ "'%.200s' object is unsliceable", Py_TYPE(obj)->tp_name);
+bad:
+ return NULL;
+}
+
static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb) {
PyObject *local_type, *local_value, *local_tb;
#if CYTHON_COMPILING_IN_CPYTHON
return -1;
}
+static CYTHON_INLINE int __Pyx_DelItem_Generic(PyObject *o, PyObject *j) {
+ int r;
+ if (!j) return -1;
+ r = PyObject_DelItem(o, j);
+ Py_DECREF(j);
+ return r;
+}
+static CYTHON_INLINE int __Pyx_DelItemInt_Fast(PyObject *o, Py_ssize_t i,
+ CYTHON_UNUSED int is_list, int wraparound) {
+#if CYTHON_COMPILING_IN_PYPY
+ if (is_list || PySequence_Check(o)) {
+ return PySequence_DelItem(o, i);
+ }
+#else
+ PySequenceMethods *m = Py_TYPE(o)->tp_as_sequence;
+ if (likely(m && m->sq_ass_item)) {
+ if (wraparound && unlikely(i < 0) && likely(m->sq_length)) {
+ Py_ssize_t l = m->sq_length(o);
+ if (likely(l >= 0)) {
+ i += l;
+ } else {
+ if (PyErr_ExceptionMatches(PyExc_OverflowError))
+ PyErr_Clear();
+ else
+ return -1;
+ }
+ }
+ return m->sq_ass_item(o, i, (PyObject *)NULL);
+ }
+#endif
+ return __Pyx_DelItem_Generic(o, PyInt_FromSsize_t(i));
+}
+
static void __Pyx_call_next_tp_dealloc(PyObject* obj, destructor current_tp_dealloc) {
PyTypeObject* type = Py_TYPE(obj);
while (type && type->tp_dealloc != current_tp_dealloc)
type->tp_clear(obj);
}
+static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name) {
+ PyObject* value = __Pyx_PyObject_GetAttrStr(module, name);
+ if (unlikely(!value) && PyErr_ExceptionMatches(PyExc_AttributeError)) {
+ PyErr_Format(PyExc_ImportError,
+ #if PY_MAJOR_VERSION < 3
+ "cannot import name %.230s", PyString_AS_STRING(name));
+ #else
+ "cannot import name %S", name);
+ #endif
+ }
+ return value;
+}
+
#ifndef __PYX_HAVE_RT_ImportModule
#define __PYX_HAVE_RT_ImportModule
static PyObject *__Pyx_ImportModule(const char *name) {
PyObject *empty_dict = 0;
PyObject *list;
#if PY_VERSION_HEX < 0x03030000
- PyObject *py_import = 0;
- py_import = __Pyx_GetAttrString(__pyx_b, "__import__");
+ PyObject *py_import;
+ py_import = __Pyx_PyObject_GetAttrStr(__pyx_b, __pyx_n_s____import__);
if (!py_import)
goto bad;
#endif
return module;
}
-static CYTHON_INLINE void __Pyx_RaiseImportError(PyObject *name) {
-#if PY_MAJOR_VERSION < 3
- PyErr_Format(PyExc_ImportError, "cannot import name %.230s",
- PyString_AsString(name));
-#else
- PyErr_Format(PyExc_ImportError, "cannot import name %S", name);
-#endif
-}
-
static CYTHON_INLINE unsigned char __Pyx_PyInt_AsUnsignedChar(PyObject* x) {
const unsigned char neg_one = (unsigned char)-1, const_zero = 0;
const int is_unsigned = neg_one > const_zero;
return (int)__Pyx_PyInt_AsLong(x);
}
+#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
+#if CYTHON_USE_PYLONG_INTERNALS
+#include "longintrepr.h"
+#endif
+#endif
static CYTHON_INLINE unsigned long __Pyx_PyInt_AsUnsignedLong(PyObject* x) {
const unsigned long neg_one = (unsigned long)-1, const_zero = 0;
const int is_unsigned = neg_one > const_zero;
-#if PY_VERSION_HEX < 0x03000000
+#if PY_MAJOR_VERSION < 3
if (likely(PyInt_Check(x))) {
long val = PyInt_AS_LONG(x);
if (is_unsigned && unlikely(val < 0)) {
#endif
if (likely(PyLong_Check(x))) {
if (is_unsigned) {
+#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
+#if CYTHON_USE_PYLONG_INTERNALS
+ if (sizeof(digit) <= sizeof(unsigned long)) {
+ switch (Py_SIZE(x)) {
+ case 0: return 0;
+ case 1: return (unsigned long) ((PyLongObject*)x)->ob_digit[0];
+ }
+ }
+#endif
+#endif
if (unlikely(Py_SIZE(x) < 0)) {
PyErr_SetString(PyExc_OverflowError,
"can't convert negative value to unsigned long");
}
return (unsigned long)PyLong_AsUnsignedLong(x);
} else {
+#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
+#if CYTHON_USE_PYLONG_INTERNALS
+ if (sizeof(digit) <= sizeof(unsigned long)) {
+ switch (Py_SIZE(x)) {
+ case 0: return 0;
+ case 1: return +(unsigned long) ((PyLongObject*)x)->ob_digit[0];
+ case -1: return -(unsigned long) ((PyLongObject*)x)->ob_digit[0];
+ }
+ }
+#endif
+#endif
return (unsigned long)PyLong_AsLong(x);
}
} else {
}
}
+#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
+#if CYTHON_USE_PYLONG_INTERNALS
+#include "longintrepr.h"
+#endif
+#endif
static CYTHON_INLINE unsigned PY_LONG_LONG __Pyx_PyInt_AsUnsignedLongLong(PyObject* x) {
const unsigned PY_LONG_LONG neg_one = (unsigned PY_LONG_LONG)-1, const_zero = 0;
const int is_unsigned = neg_one > const_zero;
-#if PY_VERSION_HEX < 0x03000000
+#if PY_MAJOR_VERSION < 3
if (likely(PyInt_Check(x))) {
long val = PyInt_AS_LONG(x);
if (is_unsigned && unlikely(val < 0)) {
#endif
if (likely(PyLong_Check(x))) {
if (is_unsigned) {
+#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
+#if CYTHON_USE_PYLONG_INTERNALS
+ if (sizeof(digit) <= sizeof(unsigned PY_LONG_LONG)) {
+ switch (Py_SIZE(x)) {
+ case 0: return 0;
+ case 1: return (unsigned PY_LONG_LONG) ((PyLongObject*)x)->ob_digit[0];
+ }
+ }
+#endif
+#endif
if (unlikely(Py_SIZE(x) < 0)) {
PyErr_SetString(PyExc_OverflowError,
"can't convert negative value to unsigned PY_LONG_LONG");
}
return (unsigned PY_LONG_LONG)PyLong_AsUnsignedLongLong(x);
} else {
+#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
+#if CYTHON_USE_PYLONG_INTERNALS
+ if (sizeof(digit) <= sizeof(unsigned PY_LONG_LONG)) {
+ switch (Py_SIZE(x)) {
+ case 0: return 0;
+ case 1: return +(unsigned PY_LONG_LONG) ((PyLongObject*)x)->ob_digit[0];
+ case -1: return -(unsigned PY_LONG_LONG) ((PyLongObject*)x)->ob_digit[0];
+ }
+ }
+#endif
+#endif
return (unsigned PY_LONG_LONG)PyLong_AsLongLong(x);
}
} else {
}
}
+#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
+#if CYTHON_USE_PYLONG_INTERNALS
+#include "longintrepr.h"
+#endif
+#endif
static CYTHON_INLINE long __Pyx_PyInt_AsLong(PyObject* x) {
const long neg_one = (long)-1, const_zero = 0;
const int is_unsigned = neg_one > const_zero;
-#if PY_VERSION_HEX < 0x03000000
+#if PY_MAJOR_VERSION < 3
if (likely(PyInt_Check(x))) {
long val = PyInt_AS_LONG(x);
if (is_unsigned && unlikely(val < 0)) {
#endif
if (likely(PyLong_Check(x))) {
if (is_unsigned) {
+#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
+#if CYTHON_USE_PYLONG_INTERNALS
+ if (sizeof(digit) <= sizeof(long)) {
+ switch (Py_SIZE(x)) {
+ case 0: return 0;
+ case 1: return (long) ((PyLongObject*)x)->ob_digit[0];
+ }
+ }
+#endif
+#endif
if (unlikely(Py_SIZE(x) < 0)) {
PyErr_SetString(PyExc_OverflowError,
"can't convert negative value to long");
}
return (long)PyLong_AsUnsignedLong(x);
} else {
+#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
+#if CYTHON_USE_PYLONG_INTERNALS
+ if (sizeof(digit) <= sizeof(long)) {
+ switch (Py_SIZE(x)) {
+ case 0: return 0;
+ case 1: return +(long) ((PyLongObject*)x)->ob_digit[0];
+ case -1: return -(long) ((PyLongObject*)x)->ob_digit[0];
+ }
+ }
+#endif
+#endif
return (long)PyLong_AsLong(x);
}
} else {
}
}
+#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
+#if CYTHON_USE_PYLONG_INTERNALS
+#include "longintrepr.h"
+#endif
+#endif
static CYTHON_INLINE PY_LONG_LONG __Pyx_PyInt_AsLongLong(PyObject* x) {
const PY_LONG_LONG neg_one = (PY_LONG_LONG)-1, const_zero = 0;
const int is_unsigned = neg_one > const_zero;
-#if PY_VERSION_HEX < 0x03000000
+#if PY_MAJOR_VERSION < 3
if (likely(PyInt_Check(x))) {
long val = PyInt_AS_LONG(x);
if (is_unsigned && unlikely(val < 0)) {
#endif
if (likely(PyLong_Check(x))) {
if (is_unsigned) {
+#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
+#if CYTHON_USE_PYLONG_INTERNALS
+ if (sizeof(digit) <= sizeof(PY_LONG_LONG)) {
+ switch (Py_SIZE(x)) {
+ case 0: return 0;
+ case 1: return (PY_LONG_LONG) ((PyLongObject*)x)->ob_digit[0];
+ }
+ }
+#endif
+#endif
if (unlikely(Py_SIZE(x) < 0)) {
PyErr_SetString(PyExc_OverflowError,
"can't convert negative value to PY_LONG_LONG");
}
return (PY_LONG_LONG)PyLong_AsUnsignedLongLong(x);
} else {
+#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
+#if CYTHON_USE_PYLONG_INTERNALS
+ if (sizeof(digit) <= sizeof(PY_LONG_LONG)) {
+ switch (Py_SIZE(x)) {
+ case 0: return 0;
+ case 1: return +(PY_LONG_LONG) ((PyLongObject*)x)->ob_digit[0];
+ case -1: return -(PY_LONG_LONG) ((PyLongObject*)x)->ob_digit[0];
+ }
+ }
+#endif
+#endif
return (PY_LONG_LONG)PyLong_AsLongLong(x);
}
} else {
}
}
+#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
+#if CYTHON_USE_PYLONG_INTERNALS
+#include "longintrepr.h"
+#endif
+#endif
static CYTHON_INLINE signed long __Pyx_PyInt_AsSignedLong(PyObject* x) {
const signed long neg_one = (signed long)-1, const_zero = 0;
const int is_unsigned = neg_one > const_zero;
-#if PY_VERSION_HEX < 0x03000000
+#if PY_MAJOR_VERSION < 3
if (likely(PyInt_Check(x))) {
long val = PyInt_AS_LONG(x);
if (is_unsigned && unlikely(val < 0)) {
#endif
if (likely(PyLong_Check(x))) {
if (is_unsigned) {
+#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
+#if CYTHON_USE_PYLONG_INTERNALS
+ if (sizeof(digit) <= sizeof(signed long)) {
+ switch (Py_SIZE(x)) {
+ case 0: return 0;
+ case 1: return (signed long) ((PyLongObject*)x)->ob_digit[0];
+ }
+ }
+#endif
+#endif
if (unlikely(Py_SIZE(x) < 0)) {
PyErr_SetString(PyExc_OverflowError,
"can't convert negative value to signed long");
}
return (signed long)PyLong_AsUnsignedLong(x);
} else {
+#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
+#if CYTHON_USE_PYLONG_INTERNALS
+ if (sizeof(digit) <= sizeof(signed long)) {
+ switch (Py_SIZE(x)) {
+ case 0: return 0;
+ case 1: return +(signed long) ((PyLongObject*)x)->ob_digit[0];
+ case -1: return -(signed long) ((PyLongObject*)x)->ob_digit[0];
+ }
+ }
+#endif
+#endif
return (signed long)PyLong_AsLong(x);
}
} else {
}
}
+#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
+#if CYTHON_USE_PYLONG_INTERNALS
+#include "longintrepr.h"
+#endif
+#endif
static CYTHON_INLINE signed PY_LONG_LONG __Pyx_PyInt_AsSignedLongLong(PyObject* x) {
const signed PY_LONG_LONG neg_one = (signed PY_LONG_LONG)-1, const_zero = 0;
const int is_unsigned = neg_one > const_zero;
-#if PY_VERSION_HEX < 0x03000000
+#if PY_MAJOR_VERSION < 3
if (likely(PyInt_Check(x))) {
long val = PyInt_AS_LONG(x);
if (is_unsigned && unlikely(val < 0)) {
#endif
if (likely(PyLong_Check(x))) {
if (is_unsigned) {
+#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
+#if CYTHON_USE_PYLONG_INTERNALS
+ if (sizeof(digit) <= sizeof(signed PY_LONG_LONG)) {
+ switch (Py_SIZE(x)) {
+ case 0: return 0;
+ case 1: return (signed PY_LONG_LONG) ((PyLongObject*)x)->ob_digit[0];
+ }
+ }
+#endif
+#endif
if (unlikely(Py_SIZE(x) < 0)) {
PyErr_SetString(PyExc_OverflowError,
"can't convert negative value to signed PY_LONG_LONG");
}
return (signed PY_LONG_LONG)PyLong_AsUnsignedLongLong(x);
} else {
+#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
+#if CYTHON_USE_PYLONG_INTERNALS
+ if (sizeof(digit) <= sizeof(signed PY_LONG_LONG)) {
+ switch (Py_SIZE(x)) {
+ case 0: return 0;
+ case 1: return +(signed PY_LONG_LONG) ((PyLongObject*)x)->ob_digit[0];
+ case -1: return -(signed PY_LONG_LONG) ((PyLongObject*)x)->ob_digit[0];
+ }
+ }
+#endif
+#endif
return (signed PY_LONG_LONG)PyLong_AsLongLong(x);
}
} else {
return 0;
}
+static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(char* c_str) {
+ return __Pyx_PyUnicode_FromStringAndSize(c_str, strlen(c_str));
+}
+static CYTHON_INLINE char* __Pyx_PyObject_AsString(PyObject* o) {
+ Py_ssize_t ignore;
+ return __Pyx_PyObject_AsStringAndSize(o, &ignore);
+}
+static CYTHON_INLINE char* __Pyx_PyObject_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
+#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT
+ if (
+#if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
+ __Pyx_sys_getdefaultencoding_not_ascii &&
+#endif
+ PyUnicode_Check(o)) {
+#if PY_VERSION_HEX < 0x03030000
+ char* defenc_c;
+ PyObject* defenc = _PyUnicode_AsDefaultEncodedString(o, NULL);
+ if (!defenc) return NULL;
+ defenc_c = PyBytes_AS_STRING(defenc);
+#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
+ {
+ char* end = defenc_c + PyBytes_GET_SIZE(defenc);
+ char* c;
+ for (c = defenc_c; c < end; c++) {
+ if ((unsigned char) (*c) >= 128) {
+ PyUnicode_AsASCIIString(o);
+ return NULL;
+ }
+ }
+ }
+#endif /*__PYX_DEFAULT_STRING_ENCODING_IS_ASCII*/
+ *length = PyBytes_GET_SIZE(defenc);
+ return defenc_c;
+#else /* PY_VERSION_HEX < 0x03030000 */
+ if (PyUnicode_READY(o) == -1) return NULL;
+#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
+ if (PyUnicode_IS_ASCII(o)) {
+ *length = PyUnicode_GET_DATA_SIZE(o);
+ return PyUnicode_AsUTF8(o);
+ } else {
+ PyUnicode_AsASCIIString(o);
+ return NULL;
+ }
+#else /* __PYX_DEFAULT_STRING_ENCODING_IS_ASCII */
+ return PyUnicode_AsUTF8AndSize(o, length);
+#endif /* __PYX_DEFAULT_STRING_ENCODING_IS_ASCII */
+#endif /* PY_VERSION_HEX < 0x03030000 */
+ } else
+#endif /* __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT */
+ {
+ char* result;
+ int r = PyBytes_AsStringAndSize(o, &result, length);
+ if (r < 0) {
+ return NULL;
+ } else {
+ return result;
+ }
+ }
+}
static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) {
int is_true = x == Py_True;
if (is_true | (x == Py_False) | (x == Py_None)) return is_true;
PyNumberMethods *m;
const char *name = NULL;
PyObject *res = NULL;
-#if PY_VERSION_HEX < 0x03000000
+#if PY_MAJOR_VERSION < 3
if (PyInt_Check(x) || PyLong_Check(x))
#else
if (PyLong_Check(x))
#endif
return Py_INCREF(x), x;
m = Py_TYPE(x)->tp_as_number;
-#if PY_VERSION_HEX < 0x03000000
+#if PY_MAJOR_VERSION < 3
if (m && m->nb_int) {
name = "int";
res = PyNumber_Int(x);
}
#endif
if (res) {
-#if PY_VERSION_HEX < 0x03000000
+#if PY_MAJOR_VERSION < 3
if (!PyInt_Check(res) && !PyLong_Check(res)) {
#else
if (!PyLong_Check(res)) {
}
static CYTHON_INLINE size_t __Pyx_PyInt_AsSize_t(PyObject* x) {
unsigned PY_LONG_LONG val = __Pyx_PyInt_AsUnsignedLongLong(x);
- if (unlikely(val == (unsigned PY_LONG_LONG)-1 && PyErr_Occurred())) {
- return (size_t)-1;
- } else if (unlikely(val != (unsigned PY_LONG_LONG)(size_t)val)) {
- PyErr_SetString(PyExc_OverflowError,
- "value too large to convert to size_t");
+ if (unlikely(val != (unsigned PY_LONG_LONG)(size_t)val)) {
+ if ((val != (unsigned PY_LONG_LONG)-1) || !PyErr_Occurred())
+ PyErr_SetString(PyExc_OverflowError,
+ "value too large to convert to size_t");
return (size_t)-1;
}
return (size_t)val;
c_read_callback = _readFileParser
c_callback_context = c_stream
+ orig_options = ctxt.options
with nogil:
if ctxt.html:
result = htmlparser.htmlCtxtReadIO(
result = xmlparser.xmlCtxtReadIO(
ctxt, c_read_callback, NULL, c_callback_context,
self._c_url, c_encoding, options)
+ ctxt.options = orig_options # work around libxml2 problem
self._close_file()
return result
if context is None:
if __DEFAULT_ENTITY_LOADER is NULL:
return NULL
- return __DEFAULT_ENTITY_LOADER(c_url, c_pubid, c_context)
+ with nogil:
+ # free the GIL as we might do serious I/O here (e.g. HTTP)
+ c_input = __DEFAULT_ENTITY_LOADER(c_url, c_pubid, c_context)
+ return c_input
try:
if c_url is NULL:
c_input.end = c_input.base + c_input.length
elif doc_ref._type == PARSER_DATA_FILENAME:
data = None
- c_input = xmlparser.xmlNewInputFromFile(
- c_context, _cstr(doc_ref._filename))
+ c_filename = _cstr(doc_ref._filename)
+ with nogil:
+ # free the GIL as we might do serious I/O here
+ c_input = xmlparser.xmlNewInputFromFile(
+ c_context, c_filename)
elif doc_ref._type == PARSER_DATA_FILE:
file_context = _FileReaderContext(doc_ref._file, context, url,
None, doc_ref._close_file)
if __DEFAULT_ENTITY_LOADER is NULL:
return NULL
- return __DEFAULT_ENTITY_LOADER(c_url, c_pubid, c_context)
+
+ with nogil:
+ # free the GIL as we might do serious I/O here (e.g. HTTP)
+ c_input = __DEFAULT_ENTITY_LOADER(c_url, c_pubid, c_context)
+ return c_input
cdef xmlparser.xmlExternalEntityLoader __DEFAULT_ENTITY_LOADER
__DEFAULT_ENTITY_LOADER = xmlparser.xmlGetExternalEntityLoader()
_ErrorLog error_log) except 0:
if filename is not None and \
ctxt.lastError.domain == xmlerror.XML_FROM_IO:
+ if isinstance(filename, bytes):
+ filename = _decodeFilenameWithLength(
+ <bytes>filename, len(<bytes>filename))
if ctxt.lastError.message is not NULL:
+ try:
+ message = (ctxt.lastError.message).decode('utf-8')
+ except UnicodeDecodeError:
+ # the filename may be in there => play safe
+ message = (ctxt.lastError.message).decode('iso8859-1')
message = u"Error reading file '%s': %s" % (
- filename, (ctxt.lastError.message).strip())
+ filename, message.strip())
else:
message = u"Error reading '%s'" % filename
raise IOError, message
__GLOBAL_PARSER_CONTEXT.initParserDict(pctxt)
c_text = python.PyUnicode_AS_DATA(utext)
+ orig_options = pctxt.options
with nogil:
if self._for_html:
result = htmlparser.htmlCtxtReadMemory(
result = xmlparser.xmlCtxtReadMemory(
pctxt, c_text, buffer_len, c_filename, _UNICODE_ENCODING,
self._parse_options)
+ pctxt.options = orig_options # work around libxml2 problem
return context._handleParseResultDoc(self, result, None)
finally:
else:
c_encoding = _cstr(self._default_encoding)
+ orig_options = pctxt.options
with nogil:
if self._for_html:
result = htmlparser.htmlCtxtReadMemory(
result = xmlparser.xmlCtxtReadMemory(
pctxt, c_text, c_len, c_filename,
c_encoding, self._parse_options)
+ pctxt.options = orig_options # work around libxml2 problem
return context._handleParseResultDoc(self, result, None)
finally:
cdef _ParserContext context
cdef xmlDoc* result
cdef xmlparser.xmlParserCtxt* pctxt
- cdef int orig_options
cdef char* c_encoding
result = NULL
xf.write_doctype('<!DOCTYPE root SYSTEM "some.dtd">')
# generate an element (the root element)
- with xf.Element('root'):
+ with xf.element('root'):
# write a complete Element into the open root element
xf.write(etree.Element('test'))
--- /dev/null
+"""
+Simple HTTP request dumper for tests in Python 2.5+.
+"""
+
+import sys
+from contextlib import contextmanager
+
+try:
+ import urlparse
+except ImportError:
+ # Python 3
+ import urllib.parse as urlparse
+
+
+@contextmanager
+def webserver(app, port=0, host=None):
+ """Context manager entry point for the 'with' statement.
+
+ Pass 0 as port number to dynamically allocate a free port.
+
+ Usage:
+
+ with webserver(wsgi_app_function, 8080) as host_url:
+ do_ws_calls(host_url)
+ """
+ server = build_web_server(app, port, host or '127.0.0.1')
+ host, port = server.socket.getsockname()
+
+ import threading
+ thread = threading.Thread(target=server.serve_forever,
+ kwargs={'poll_interval': 0.5})
+ thread.setDaemon(True)
+ thread.start()
+ try:
+ yield 'http://%s:%s/' % (host, port) # yield control to 'with' body
+ finally:
+ server.shutdown()
+
+
+try:
+ from SocketServer import ThreadingMixIn
+except ImportError:
+ # Python 3
+ from socketserver import ThreadingMixIn
+
+import wsgiref.simple_server as wsgiserver
+class WebServer(wsgiserver.WSGIServer, ThreadingMixIn):
+ """A web server that starts a new thread for each request.
+ """
+
+
+class _RequestHandler(wsgiserver.WSGIRequestHandler):
+ def get_stderr(self):
+ # don't write to stderr
+ return sys.stdout
+
+ def log_message(self, format, *args):
+ # message = "wsmock(%s) %s" % (self.address_string(), format % args)
+ pass # don't log messages
+
+
+def build_web_server(app, port, host=None):
+ server = wsgiserver.make_server(
+ host or '', port, app,
+ server_class=WebServer,
+ handler_class=_RequestHandler)
+ return server
+
+
+class HTTPRequestCollector(object):
+ def __init__(self, response_data, response_code=200, headers=()):
+ self.requests = []
+ self.response_code = response_code
+ self.response_data = response_data
+ self.headers = list(headers or ())
+
+ def __call__(self, environ, start_response):
+ self.requests.append((
+ environ.get('PATH_INFO'),
+ urlparse.parse_qsl(environ.get('QUERY_STRING'))))
+ start_response('%s OK' % self.response_code, self.headers)
+ return [self.response_data]
--- /dev/null
+# -*- coding: utf-8 -*-
+
+"""
+Web IO test cases that need Python 2.5+ (wsgiref)
+"""
+
+from __future__ import with_statement
+
+import unittest
+import textwrap
+import os
+import sys
+import gzip
+
+this_dir = os.path.dirname(__file__)
+if this_dir not in sys.path:
+ sys.path.insert(0, this_dir) # needed for Py3
+
+from .common_imports import (
+ etree, HelperTestCase, BytesIO, _bytes)
+from .dummy_http_server import webserver, HTTPRequestCollector
+
+
+class HttpIOTestCase(HelperTestCase):
+ etree = etree
+
+ def _parse_from_http(self, data, code=200, headers=None, parser=None):
+ handler = HTTPRequestCollector(data, code, headers)
+ with webserver(handler) as host_url:
+ tree = self.etree.parse(host_url + 'TEST', parser=parser)
+ self.assertEqual([('/TEST', [])], handler.requests)
+ return tree
+
+ def test_http_client(self):
+ tree = self._parse_from_http(_bytes('<root><a/></root>'))
+ self.assertEqual('root', tree.getroot().tag)
+ self.assertEqual('a', tree.getroot()[0].tag)
+
+ def test_http_client_404(self):
+ try:
+ self._parse_from_http(_bytes('<root/>'), code=404)
+ except IOError:
+ self.assertTrue(True)
+ else:
+ self.assertTrue(False, "expected IOError")
+
+ def test_http_client_gzip(self):
+ f = BytesIO()
+ gz = gzip.GzipFile(fileobj=f, mode='w', filename='test.xml')
+ gz.write(_bytes('<root><a/></root>'))
+ gz.close()
+ data = f.getvalue()
+ del f, gz
+
+ headers = [('Content-Encoding', 'gzip')]
+ tree = self._parse_from_http(data, headers=headers)
+ self.assertEqual('root', tree.getroot().tag)
+ self.assertEqual('a', tree.getroot()[0].tag)
+
+ def test_parser_input_mix(self):
+ data = _bytes('<root><a/></root>')
+ handler = HTTPRequestCollector(data)
+
+ with webserver(handler) as host_url:
+ tree = self.etree.parse(host_url)
+ root = tree.getroot()
+ self.assertEqual('a', root[0].tag)
+
+ root = self.etree.fromstring(data)
+ self.assertEqual('a', root[0].tag)
+
+ tree = self.etree.parse(host_url)
+ root = tree.getroot()
+ self.assertEqual('a', root[0].tag)
+
+ root = self.etree.fromstring(data)
+ self.assertEqual('a', root[0].tag)
+
+ root = self.etree.fromstring(data)
+ self.assertEqual('a', root[0].tag)
+
+ def test_network_dtd(self):
+ data = [_bytes(textwrap.dedent(s)) for s in [
+ # XML file
+ '''\
+ <?xml version="1.0"?>
+ <!DOCTYPE root SYSTEM "./file.dtd">
+ <root>&myentity;</root>
+ ''',
+ # DTD
+ '<!ENTITY myentity "DEFINED">',
+ ]]
+
+ responses = []
+ def handler(environ, start_response):
+ start_response('200 OK', [])
+ return [responses.pop()]
+
+ with webserver(handler) as host_url:
+ # DTD network loading enabled
+ responses = data[::-1]
+ tree = self.etree.parse(
+ host_url + 'dir/test.xml',
+ parser=self.etree.XMLParser(
+ load_dtd=True, no_network=False))
+ self.assertFalse(responses) # all read
+ root = tree.getroot()
+ self.assertEqual('DEFINED', root.text)
+
+ # DTD network loading disabled
+ responses = data[::-1]
+ try:
+ self.etree.parse(
+ host_url + 'dir/test.xml',
+ parser=self.etree.XMLParser(
+ load_dtd=True, no_network=True))
+ except self.etree.XMLSyntaxError:
+ self.assertTrue("myentity" in str(sys.exc_info()[1]))
+ else:
+ self.assertTrue(False)
+ self.assertEqual(1, len(responses)) # DTD not read
+
+
+def test_suite():
+ suite = unittest.TestSuite()
+ suite.addTests([unittest.makeSuite(HttpIOTestCase)])
+ return suite
+
+
+if __name__ == '__main__':
+ print('to test use test.py %s' % __file__)
expect_exc = TypeError
self.assertRaises(expect_exc, self.etree.parse, f)
+ def test_etree_parse_io_error(self):
+ # this is a directory name that contains characters beyond latin-1
+ dirnameEN = _str('Directory')
+ dirnameRU = _str('Каталог')
+ filename = _str('nosuchfile.xml')
+ try:
+ dn = tempfile.mkdtemp(prefix=dirnameEN)
+ self.assertRaises(IOError, self.etree.parse, os.path.join(dn, filename))
+ finally:
+ os.rmdir(dn)
+ try:
+ dn = tempfile.mkdtemp(prefix=dirnameRU)
+ self.assertRaises(IOError, self.etree.parse, os.path.join(dn, filename))
+ finally:
+ os.rmdir(dn)
+
class ETreeIOTestCase(_IOTestCaseBase):
etree = etree
if sys.version_info[:2] < (2,5):
# exclude tests that require the 'with' statement
- test_files = [ test_file for test_file in test_files
- if 'test_incremental_xmlfile.py' not in test_file ]
+ test_files = [
+ test_file for test_file in test_files
+ if 'test_incremental_xmlfile.py' not in test_file]
+
+ if sys.version_info[:2] < (2,6):
+ # exclude tests that require recent Python features
+ test_files = [
+ test_file for test_file in test_files
+ if 'test_http_io.py' not in test_file]
if cfg.list_tests or cfg.run_tests:
test_cases = get_test_cases(test_files, cfg, tracer=tracer)